phoenix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sama...@apache.org
Subject phoenix git commit: PHOENIX-2326 Fix upgrade from 4.x to 4.6 and update MetadataProtocol with new versions
Date Fri, 16 Oct 2015 23:22:10 GMT
Repository: phoenix
Updated Branches:
  refs/heads/master cf1f6afaa -> 416c860f7


PHOENIX-2326 Fix upgrade from 4.x to 4.6 and update MetadataProtocol with new versions


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/416c860f
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/416c860f
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/416c860f

Branch: refs/heads/master
Commit: 416c860f7d9f3490d46169fa74656994b4fe27a8
Parents: cf1f6af
Author: Samarth <samarth@apache.org>
Authored: Fri Oct 16 16:21:58 2015 -0700
Committer: Samarth <samarth@apache.org>
Committed: Fri Oct 16 16:21:58 2015 -0700

----------------------------------------------------------------------
 .../phoenix/coprocessor/MetaDataProtocol.java   |  3 +-
 .../query/ConnectionQueryServicesImpl.java      | 13 +++++---
 .../apache/phoenix/schema/MetaDataClient.java   | 33 +++++++++++++++++---
 3 files changed, 38 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/416c860f/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
index 7d65eb2..7cc4123 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
@@ -62,7 +62,6 @@ public abstract class MetaDataProtocol extends MetaDataService {
 
     public static final long MIN_TABLE_TIMESTAMP = 0;
 
-    public static final long MIN_SYSTEM_TABLE_TIMESTAMP = MIN_TABLE_TIMESTAMP + 8;
     public static final int DEFAULT_MAX_META_DATA_VERSIONS = 1000;
     public static final int DEFAULT_MAX_STAT_DATA_VERSIONS = 3;
     public static final boolean DEFAULT_META_DATA_KEEP_DELETED_CELLS = true;
@@ -74,7 +73,7 @@ public abstract class MetaDataProtocol extends MetaDataService {
     public static final long MIN_SYSTEM_TABLE_TIMESTAMP_4_3_0 = MIN_TABLE_TIMESTAMP + 7;
     public static final long MIN_SYSTEM_TABLE_TIMESTAMP_4_5_0 = MIN_TABLE_TIMESTAMP + 8;
     public static final long MIN_SYSTEM_TABLE_TIMESTAMP_4_6_0 = MIN_TABLE_TIMESTAMP + 9;
-    
+    public static final long MIN_SYSTEM_TABLE_TIMESTAMP = MIN_SYSTEM_TABLE_TIMESTAMP_4_6_0;
     // TODO: pare this down to minimum, as we don't need duplicates for both table and column
errors, nor should we need
     // a different code for every type of error.
     // ENTITY_ALREADY_EXISTS, ENTITY_NOT_FOUND, NEWER_ENTITY_FOUND, ENTITY_NOT_IN_REGION,
CONCURRENT_MODIFICATION

http://git-wip-us.apache.org/repos/asf/phoenix/blob/416c860f/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
index f7d5920..b718089 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
@@ -1936,9 +1936,6 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices
implement
                                 long currentServerSideTableTimeStamp = e.getTable().getTimeStamp();
 
                                 String columnsToAdd = "";
-                                if (currentServerSideTableTimeStamp < MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_6_0)
{
-                                    columnsToAdd += PhoenixDatabaseMetaData.IS_ROW_TIMESTAMP
+ " " + PBoolean.INSTANCE.getSqlTypeName();
-                                }
                                 if(currentServerSideTableTimeStamp < MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_3_0)
{
                                     // We know that we always need to add the STORE_NULLS
column for 4.3 release
                                     columnsToAdd = ", " + PhoenixDatabaseMetaData.STORE_NULLS
+ " " + PBoolean.INSTANCE.getSqlTypeName();
@@ -1980,7 +1977,7 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices
implement
                                     // Ugh..need to assign to another local variable to keep
eclipse happy.
                                     PhoenixConnection newMetaConnection = addColumnsIfNotExists(metaConnection,
                                             PhoenixDatabaseMetaData.SYSTEM_CATALOG,
-                                            MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP,
columnsToAdd);
+                                            MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_3_0,
columnsToAdd);
                                     metaConnection = newMetaConnection;
                                 }
                                 
@@ -1989,7 +1986,7 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices
implement
                                             + PInteger.INSTANCE.getSqlTypeName();
                                     try {
                                         metaConnection = addColumn(metaConnection, PhoenixDatabaseMetaData.SYSTEM_CATALOG,
-                                                MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP,
columnsToAdd, false);
+                                                MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_5_0,
columnsToAdd, false);
                                         upgradeTo4_5_0(metaConnection);
                                     } catch (ColumnAlreadyExistsException ignored) {
                                         /* 
@@ -2018,6 +2015,12 @@ public class ConnectionQueryServicesImpl extends DelegateQueryServices
implement
                                         conn.close();
                                     }
                                 }
+                                if (currentServerSideTableTimeStamp < MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_6_0)
{
+                                    columnsToAdd = PhoenixDatabaseMetaData.IS_ROW_TIMESTAMP
+ " " + PBoolean.INSTANCE.getSqlTypeName();
+                                    metaConnection = addColumn(metaConnection, PhoenixDatabaseMetaData.SYSTEM_CATALOG,
+                                            MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_6_0,
columnsToAdd, false);
+                                }
+                                
                             }
                             int nSaltBuckets = ConnectionQueryServicesImpl.this.props.getInt(QueryServices.SEQUENCE_SALT_BUCKETS_ATTRIB,
                                     QueryServicesOptions.DEFAULT_SEQUENCE_TABLE_SALT_BUCKETS);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/416c860f/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
index 341b07d..77ca2c3 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
@@ -282,7 +282,9 @@ public class MetaDataClient {
             INDEX_STATE + "," +
             INDEX_DISABLE_TIMESTAMP +
             ") VALUES (?, ?, ?, ?, ?)";
-    private static final String INSERT_COLUMN =
+    //TODO: merge INSERT_COLUMN_CREATE_TABLE and INSERT_COLUMN_ALTER_TABLE column when
+    // the new major release is out.
+    private static final String INSERT_COLUMN_CREATE_TABLE =
         "UPSERT INTO " + SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_CATALOG_TABLE + "\"( " +
         TENANT_ID + "," +
         TABLE_SCHEM + "," +
@@ -304,6 +306,27 @@ public class MetaDataClient {
         COLUMN_DEF + "," +
         IS_ROW_TIMESTAMP + 
         ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+    private static final String INSERT_COLUMN_ALTER_TABLE =
+            "UPSERT INTO " + SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_CATALOG_TABLE + "\"(
" +
+            TENANT_ID + "," +
+            TABLE_SCHEM + "," +
+            TABLE_NAME + "," +
+            COLUMN_NAME + "," +
+            COLUMN_FAMILY + "," +
+            DATA_TYPE + "," +
+            NULLABLE + "," +
+            COLUMN_SIZE + "," +
+            DECIMAL_DIGITS + "," +
+            ORDINAL_POSITION + "," +
+            SORT_ORDER + "," +
+            DATA_TABLE_NAME + "," + // write this both in the column and table rows for access
by metadata APIs
+            ARRAY_SIZE + "," +
+            VIEW_CONSTANT + "," +
+            IS_VIEW_REFERENCED + "," +
+            PK_NAME + "," +  // write this both in the column and table rows for access by
metadata APIs
+            KEY_SEQ + "," +
+            COLUMN_DEF +
+            ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
     private static final String UPDATE_COLUMN_POSITION =
         "UPSERT INTO " + SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_CATALOG_TABLE + "\" ( " +
         TENANT_ID + "," +
@@ -681,7 +704,9 @@ public class MetaDataClient {
         } else {
             colUpsert.setString(18, column.getExpressionStr());
         }
-        colUpsert.setBoolean(19, column.isRowTimestamp());
+        if (colUpsert.getParameterMetaData().getParameterCount() > 18) {
+            colUpsert.setBoolean(19, column.isRowTimestamp());
+        }
         colUpsert.execute();
     }
 
@@ -1713,7 +1738,7 @@ public class MetaDataClient {
                 }
             }
 
-            PreparedStatement colUpsert = connection.prepareStatement(INSERT_COLUMN);
+            PreparedStatement colUpsert = connection.prepareStatement(INSERT_COLUMN_CREATE_TABLE);
             Map<String, PName> familyNames = Maps.newLinkedHashMap();
             boolean isPK = false;
             boolean rowTimeStampColumnAlreadyFound = false;
@@ -2485,7 +2510,7 @@ public class MetaDataClient {
                 }
 
                 int numPkColumnsAdded = 0;
-                PreparedStatement colUpsert = connection.prepareStatement(INSERT_COLUMN);
+                PreparedStatement colUpsert = connection.prepareStatement(INSERT_COLUMN_ALTER_TABLE);
 
                 List<PColumn> columns = Lists.newArrayListWithExpectedSize(columnDefs.size());
                 Set<String> colFamiliesForPColumnsToBeAdded = new LinkedHashSet<>();


Mime
View raw message