From d8cfc97dfd9aea98fb547f8572eaf821d5846237 Mon Sep 17 00:00:00 2001 From: PradeepSurale Date: Thu, 10 Jan 2019 15:28:02 +0530 Subject: [PATCH 1/3] Changes compatible to for v2 to call call_table_scan procedure. --- .../gemfire/internal/snappy/CallbackFactoryProvider.java | 7 ++++--- .../gemstone/gemfire/internal/snappy/StoreCallbacks.java | 2 +- .../internal/engine/ddl/catalog/GfxdSystemProcedures.java | 4 ++-- .../internal/impl/sql/catalog/GfxdDataDictionary.java | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java index 0eb3bae41..f97e5973f 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java @@ -83,9 +83,10 @@ public String columnBatchTableName(String tableName) { } @Override - public CloseableIterator columnTableScan( - String columnTable, int[] projection, byte[] serializedFilters, - Set bucketIds) throws SQLException { + public CloseableIterator columnTableScan(String qualifiedTable, int[] projection, + byte[] serializedFilters, + Set bucketIds, + boolean useKryoSerializer) throws SQLException { throw new UnsupportedOperationException("unexpected invocation for " + toString()); } diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/StoreCallbacks.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/StoreCallbacks.java index 492639b2a..aef92eba3 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/StoreCallbacks.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/StoreCallbacks.java @@ -60,7 +60,7 @@ Set createColumnBatch(BucketRegion region, long batchID, */ CloseableIterator columnTableScan(String qualifiedTable, int[] projection, byte[] serializedFilters, - Set bucketIds) throws SQLException; + Set bucketIds, boolean useKryoSerializer) throws SQLException; void registerCatalogSchemaChange(); diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java index a3c742a14..6fa68508c 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java @@ -2937,7 +2937,7 @@ public static void GET_COLUMN_TABLE_SCHEMA(String schema, String table, }; public static void COLUMN_TABLE_SCAN(String columnTable, String projection, - Blob filters, ResultSet[] result) throws SQLException { + Blob filters, Boolean useKryoSerializer, ResultSet[] result) throws SQLException { try { // split the projection into column indexes (1-based) final TIntArrayList columnsList = new TIntArrayList(4); @@ -2958,7 +2958,7 @@ public static void COLUMN_TABLE_SCAN(String columnTable, String projection, Set bucketIds = lcc.getBucketIdsForLocalExecution(); final CloseableIterator iter = CallbackFactoryProvider.getStoreCallbacks().columnTableScan( - columnTable, columns, batchFilters, bucketIds); + columnTable, columns, batchFilters, bucketIds, useKryoSerializer); if (GemFireXDUtils.TraceExecution) { SanityManager.DEBUG_PRINT(GfxdConstants.TRACE_EXECUTION, "COLUMN_TABLE_SCAN table=" + columnTable + diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/impl/sql/catalog/GfxdDataDictionary.java b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/impl/sql/catalog/GfxdDataDictionary.java index b0326bd60..d61d0c253 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/impl/sql/catalog/GfxdDataDictionary.java +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/impl/sql/catalog/GfxdDataDictionary.java @@ -2006,11 +2006,12 @@ private void createGfxdSystemProcedures(TransactionController tc, } { // COLUMN_TABLE_SCAN(String,String,String,Blob,ResultSet[]) - String[] arg_names = new String[] { "TABLE", "PROJECTION", "FILTERS" }; + String[] arg_names = new String[] { "TABLE", "PROJECTION", "FILTERS", "USE_KRYO_SERIALIZER" }; TypeDescriptor[] arg_types = new TypeDescriptor[] { DataTypeDescriptor.getCatalogType(Types.VARCHAR), DataTypeDescriptor.getCatalogType(Types.VARCHAR), - DataTypeDescriptor.getCatalogType(Types.BLOB) + DataTypeDescriptor.getCatalogType(Types.BLOB), + DataTypeDescriptor.getCatalogType(Types.BOOLEAN) }; super.createSystemProcedureOrFunction("COLUMN_TABLE_SCAN", sysUUID, arg_names, arg_types, 0, 1, RoutineAliasInfo.READS_SQL_DATA, null, From ed2f1bb9fc71ca6561558be291d5f6b9ee7cc76a Mon Sep 17 00:00:00 2001 From: PradeepSurale Date: Thu, 10 Jan 2019 18:31:17 +0530 Subject: [PATCH 2/3] Commented the free up the blob --- .../internal/engine/ddl/catalog/GfxdSystemProcedures.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java index 6fa68508c..f63076de1 100644 --- a/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java +++ b/gemfirexd/core/src/main/java/com/pivotal/gemfirexd/internal/engine/ddl/catalog/GfxdSystemProcedures.java @@ -2953,7 +2953,7 @@ public static void COLUMN_TABLE_SCAN(String columnTable, String projection, byte[] batchFilters = null; if (filters != null) { batchFilters = filters.getBytes(1, (int)filters.length()); - filters.free(); + // filters.free(); } Set bucketIds = lcc.getBucketIdsForLocalExecution(); final CloseableIterator iter = From dde179efa92d2a60c6ad2ad710c854bf166e7f52 Mon Sep 17 00:00:00 2001 From: PradeepSurale Date: Wed, 16 Jan 2019 16:42:06 +0530 Subject: [PATCH 3/3] Code alignment --- .../gemfire/internal/snappy/CallbackFactoryProvider.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java index f97e5973f..8f4308b75 100644 --- a/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java +++ b/gemfire-core/src/main/java/com/gemstone/gemfire/internal/snappy/CallbackFactoryProvider.java @@ -83,10 +83,9 @@ public String columnBatchTableName(String tableName) { } @Override - public CloseableIterator columnTableScan(String qualifiedTable, int[] projection, - byte[] serializedFilters, - Set bucketIds, - boolean useKryoSerializer) throws SQLException { + public CloseableIterator columnTableScan( + String qualifiedTable, int[] projection, byte[] serializedFilters, + Set bucketIds, boolean useKryoSerializer) throws SQLException { throw new UnsupportedOperationException("unexpected invocation for " + toString()); }