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..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 @@ -84,8 +84,8 @@ public String columnBatchTableName(String tableName) { @Override public CloseableIterator columnTableScan( - String columnTable, int[] projection, byte[] serializedFilters, - Set bucketIds) throws SQLException { + 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 97a5cff11..410cb9c0b 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 @@ -2960,7 +2960,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); @@ -2976,12 +2976,12 @@ 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 = 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,