@@ -1228,7 +1228,6 @@ describe('QueryOrchestrator', () => {
12281228 expect ( result . data [ 0 ] ) . not . toMatch ( / o r d e r s _ h 2 0 2 1 0 5 3 0 0 0 / ) ;
12291229 expect ( result . data [ 0 ] ) . toMatch ( / o r d e r s _ h 2 0 2 1 0 5 3 1 0 0 / ) ;
12301230 expect ( result . data [ 0 ] ) . toMatch ( / o r d e r s _ h 2 0 2 1 0 6 0 1 0 0 _ u o z k y a u r _ d 0 0 4 i q 5 1 / ) ;
1231- expect ( externalMockDriver . tablesObj . find ( t => t . tableName . indexOf ( 'stb_pre_aggregations.orders_h2021060100' ) !== - 1 ) . sealAt ) . toBe ( '2021-06-01T00:59:59.999Z' ) ;
12321231
12331232 result = await queryOrchestrator . fetchQuery ( query ( [ '2021-05-31T00:00:00.000' , '2021-05-31T23:59:59.999' ] ) ) ;
12341233 console . log ( JSON . stringify ( result , null , 2 ) ) ;
@@ -1242,6 +1241,44 @@ describe('QueryOrchestrator', () => {
12421241 expect ( result . data [ 0 ] ) . toMatch ( / o r d e r s _ h 2 0 2 1 0 6 0 1 0 0 _ u o z k y a u r _ d 0 0 4 i q 5 1 / ) ;
12431242 } ) ;
12441243
1244+ test ( 'real-time sealing partitions' , async ( ) => {
1245+ const query = ( matchedTimeDimensionDateRange ) => ( {
1246+ query : 'SELECT * FROM stb_pre_aggregations.orders_d' ,
1247+ values : [ ] ,
1248+ cacheKeyQueries : {
1249+ queries : [ ]
1250+ } ,
1251+ preAggregations : [ {
1252+ preAggregationsSchema : 'stb_pre_aggregations' ,
1253+ tableName : 'stb_pre_aggregations.orders_d' ,
1254+ loadSql : [
1255+ 'CREATE TABLE stb_pre_aggregations.orders_d AS SELECT * FROM public.orders WHERE timestamp >= ? AND timestamp <= ?' ,
1256+ [ '__FROM_PARTITION_RANGE' , '__TO_PARTITION_RANGE' ]
1257+ ] ,
1258+ invalidateKeyQueries : [ [ 'SELECT CASE WHEN NOW() > ? THEN NOW() END as now' , [ '__TO_PARTITION_RANGE' ] , {
1259+ renewalThreshold : 1 ,
1260+ updateWindowSeconds : 86400 ,
1261+ renewalThresholdOutsideUpdateWindow : 86400 ,
1262+ incremental : true
1263+ } ] ] ,
1264+ partitionInvalidateKeyQueries : [ ] ,
1265+ preAggregationStartEndQueries : [
1266+ [ 'SELECT MIN(timestamp) FROM orders' , [ ] ] ,
1267+ [ 'SELECT \'2021-05-31\'' , [ ] ] ,
1268+ ] ,
1269+ external : true ,
1270+ partitionGranularity : 'day' ,
1271+ timezone : 'UTC' ,
1272+ matchedTimeDimensionDateRange
1273+ } ] ,
1274+ requestId : 'real-time sealing partitions' ,
1275+ external : true ,
1276+ } ) ;
1277+ const result = await queryOrchestrator . fetchQuery ( query ( ) ) ;
1278+ console . log ( JSON . stringify ( result , null , 2 ) ) ;
1279+ expect ( externalMockDriver . tablesObj . find ( t => t . tableName . indexOf ( 'stb_pre_aggregations.orders_d20210531' ) !== - 1 ) . sealAt ) . toBe ( '2021-05-31T23:59:59.999Z' ) ;
1280+ } ) ;
1281+
12451282 test ( 'loadRefreshKeys' , async ( ) => {
12461283 const preAggregationsLoadCacheByDataSource = { } ;
12471284 const preAggregationExternalRefreshKey = {
0 commit comments