Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
logical_range_filter: support dynamic columns
"initial" and "filtered" stages are only supported. TODO: * Add tests for cache * Document
- Loading branch information
Showing
20 changed files
with
954 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
94 changes: 94 additions & 0 deletions
94
test/command/suite/sharding/logical_range_filter/columns/stage/filtered/filter.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| plugin_register sharding | ||
| [[0,0.0,0.0],true] | ||
| table_create Logs_20170315 TABLE_NO_KEY | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170315 timestamp COLUMN_SCALAR Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170315 price COLUMN_SCALAR UInt32 | ||
| [[0,0.0,0.0],true] | ||
| table_create Logs_20170316 TABLE_NO_KEY | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170316 timestamp COLUMN_SCALAR Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170316 price COLUMN_SCALAR UInt32 | ||
| [[0,0.0,0.0],true] | ||
| table_create Logs_20170317 TABLE_NO_KEY | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170317 timestamp COLUMN_SCALAR Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170317 price COLUMN_SCALAR UInt32 | ||
| [[0,0.0,0.0],true] | ||
| load --table Logs_20170315 | ||
| [ | ||
| {"timestamp": "2017/03/15 00:00:00", "price": 1000}, | ||
| {"timestamp": "2017/03/15 01:00:00", "price": 900}, | ||
| {"timestamp": "2017/03/15 02:00:00", "price": 300} | ||
| ] | ||
| [[0,0.0,0.0],3] | ||
| load --table Logs_20170316 | ||
| [ | ||
| {"timestamp": "2017/03/16 10:00:00", "price": 530}, | ||
| {"timestamp": "2017/03/16 11:00:00", "price": 520}, | ||
| {"timestamp": "2017/03/16 12:00:00", "price": 110} | ||
| ] | ||
| [[0,0.0,0.0],3] | ||
| load --table Logs_20170317 | ||
| [ | ||
| {"timestamp": "2017/03/17 20:00:00", "price": 800}, | ||
| {"timestamp": "2017/03/17 21:00:00", "price": 400}, | ||
| {"timestamp": "2017/03/17 22:00:00", "price": 300} | ||
| ] | ||
| [[0,0.0,0.0],3] | ||
| table_create Times TABLE_PAT_KEY Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Times logs_20170315 COLUMN_INDEX Logs_20170315 timestamp | ||
| [[0,0.0,0.0],true] | ||
| column_create Times logs_20170316 COLUMN_INDEX Logs_20170316 timestamp | ||
| [[0,0.0,0.0],true] | ||
| column_create Times logs_20170317 COLUMN_INDEX Logs_20170317 timestamp | ||
| [[0,0.0,0.0],true] | ||
| log_level --level debug | ||
| [[0,0.0,0.0],true] | ||
| logical_range_filter Logs --shard_key timestamp --columns[filtered_id].stage filtered --columns[filtered_id].type UInt32 --columns[filtered_id].flags COLUMN_SCALAR --columns[filtered_id].value '_id' --filter 'price <= 900' --offset 1 --limit 3 --output_columns _id,filtered_id,price | ||
| [ | ||
| [ | ||
| 0, | ||
| 0.0, | ||
| 0.0 | ||
| ], | ||
| [ | ||
| [ | ||
| [ | ||
| "_id", | ||
| "UInt32" | ||
| ], | ||
| [ | ||
| "filtered_id", | ||
| "UInt32" | ||
| ], | ||
| [ | ||
| "price", | ||
| "UInt32" | ||
| ] | ||
| ], | ||
| [ | ||
| 3, | ||
| 3, | ||
| 300 | ||
| ], | ||
| [ | ||
| 1, | ||
| 1, | ||
| 530 | ||
| ], | ||
| [ | ||
| 2, | ||
| 2, | ||
| 520 | ||
| ] | ||
| ] | ||
| ] | ||
| #|d| [logical_range_filter][select] <Logs_20170315>: dynamic columns are used | ||
| #|d| [logical_range_filter][select] <Logs_20170316>: dynamic columns are used | ||
| log_level --level notice | ||
| [[0,0.0,0.0],true] |
56 changes: 56 additions & 0 deletions
56
test/command/suite/sharding/logical_range_filter/columns/stage/filtered/filter.test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| #@on-error omit | ||
| plugin_register sharding | ||
| #@on-error default | ||
|
|
||
| table_create Logs_20170315 TABLE_NO_KEY | ||
| column_create Logs_20170315 timestamp COLUMN_SCALAR Time | ||
| column_create Logs_20170315 price COLUMN_SCALAR UInt32 | ||
|
|
||
| table_create Logs_20170316 TABLE_NO_KEY | ||
| column_create Logs_20170316 timestamp COLUMN_SCALAR Time | ||
| column_create Logs_20170316 price COLUMN_SCALAR UInt32 | ||
|
|
||
| table_create Logs_20170317 TABLE_NO_KEY | ||
| column_create Logs_20170317 timestamp COLUMN_SCALAR Time | ||
| column_create Logs_20170317 price COLUMN_SCALAR UInt32 | ||
|
|
||
| load --table Logs_20170315 | ||
| [ | ||
| {"timestamp": "2017/03/15 00:00:00", "price": 1000}, | ||
| {"timestamp": "2017/03/15 01:00:00", "price": 900}, | ||
| {"timestamp": "2017/03/15 02:00:00", "price": 300} | ||
| ] | ||
|
|
||
| load --table Logs_20170316 | ||
| [ | ||
| {"timestamp": "2017/03/16 10:00:00", "price": 530}, | ||
| {"timestamp": "2017/03/16 11:00:00", "price": 520}, | ||
| {"timestamp": "2017/03/16 12:00:00", "price": 110} | ||
| ] | ||
|
|
||
| load --table Logs_20170317 | ||
| [ | ||
| {"timestamp": "2017/03/17 20:00:00", "price": 800}, | ||
| {"timestamp": "2017/03/17 21:00:00", "price": 400}, | ||
| {"timestamp": "2017/03/17 22:00:00", "price": 300} | ||
| ] | ||
|
|
||
| table_create Times TABLE_PAT_KEY Time | ||
| column_create Times logs_20170315 COLUMN_INDEX Logs_20170315 timestamp | ||
| column_create Times logs_20170316 COLUMN_INDEX Logs_20170316 timestamp | ||
| column_create Times logs_20170317 COLUMN_INDEX Logs_20170317 timestamp | ||
|
|
||
| #@add-important-log-levels debug | ||
| log_level --level debug | ||
| logical_range_filter Logs \ | ||
| --shard_key timestamp \ | ||
| --columns[filtered_id].stage filtered \ | ||
| --columns[filtered_id].type UInt32 \ | ||
| --columns[filtered_id].flags COLUMN_SCALAR \ | ||
| --columns[filtered_id].value '_id' \ | ||
| --filter 'price <= 900' \ | ||
| --offset 1 \ | ||
| --limit 3 \ | ||
| --output_columns _id,filtered_id,price | ||
| log_level --level notice | ||
| #@remove-important-log-levels debug |
25 changes: 25 additions & 0 deletions
25
...suite/sharding/logical_range_filter/columns/stage/filtered/no_hit/output_columns.expected
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| plugin_register sharding | ||
| [[0,0.0,0.0],true] | ||
| table_create Logs_20170315 TABLE_NO_KEY | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170315 timestamp COLUMN_SCALAR Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Logs_20170315 price COLUMN_SCALAR UInt32 | ||
| [[0,0.0,0.0],true] | ||
| load --table Logs_20170315 | ||
| [ | ||
| {"timestamp": "2017/03/15 00:00:00", "price": 1000}, | ||
| {"timestamp": "2017/03/15 01:00:00", "price": 900}, | ||
| {"timestamp": "2017/03/15 02:00:00", "price": 300} | ||
| ] | ||
| [[0,0.0,0.0],3] | ||
| table_create Times TABLE_PAT_KEY Time | ||
| [[0,0.0,0.0],true] | ||
| column_create Times logs_20170315 COLUMN_INDEX Logs_20170315 timestamp | ||
| [[0,0.0,0.0],true] | ||
| log_level --level debug | ||
| [[0,0.0,0.0],true] | ||
| logical_range_filter Logs --shard_key timestamp --columns[price_with_tax].stage filtered --columns[price_with_tax].type UInt32 --columns[price_with_tax].flags COLUMN_SCALAR --columns[price_with_tax].value 'price * 1.08' --min "2017/04/01 00:00:00" --offset 1 --limit 3 --output_columns price,price_with_tax | ||
| [[0,0.0,0.0],[[["price","UInt32"],["price_with_tax","UInt32"]]]] | ||
| log_level --level notice | ||
| [[0,0.0,0.0],true] |
32 changes: 32 additions & 0 deletions
32
...and/suite/sharding/logical_range_filter/columns/stage/filtered/no_hit/output_columns.test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| #@on-error omit | ||
| plugin_register sharding | ||
| #@on-error default | ||
|
|
||
| table_create Logs_20170315 TABLE_NO_KEY | ||
| column_create Logs_20170315 timestamp COLUMN_SCALAR Time | ||
| column_create Logs_20170315 price COLUMN_SCALAR UInt32 | ||
|
|
||
| load --table Logs_20170315 | ||
| [ | ||
| {"timestamp": "2017/03/15 00:00:00", "price": 1000}, | ||
| {"timestamp": "2017/03/15 01:00:00", "price": 900}, | ||
| {"timestamp": "2017/03/15 02:00:00", "price": 300} | ||
| ] | ||
|
|
||
| table_create Times TABLE_PAT_KEY Time | ||
| column_create Times logs_20170315 COLUMN_INDEX Logs_20170315 timestamp | ||
|
|
||
| #@add-important-log-levels debug | ||
| log_level --level debug | ||
| logical_range_filter Logs \ | ||
| --shard_key timestamp \ | ||
| --columns[price_with_tax].stage filtered \ | ||
| --columns[price_with_tax].type UInt32 \ | ||
| --columns[price_with_tax].flags COLUMN_SCALAR \ | ||
| --columns[price_with_tax].value 'price * 1.08' \ | ||
| --min "2017/04/01 00:00:00" \ | ||
| --offset 1 \ | ||
| --limit 3 \ | ||
| --output_columns price,price_with_tax | ||
| log_level --level notice | ||
| #@remove-important-log-levels debug |
Oops, something went wrong.