groonga
groonga copied to clipboard
Unexpected token error with weight vector column
This issue is derived from #667.
What is problem?
When reference vector column is specified to dynamic column column[NAME].type with WITH_WEIGHT flag, outputting result fails.
Here is the test case:
#@on-error omit
plugin_register sharding
#@on-error default
plugin_register functions/vector
table_create Logs_20170415 TABLE_NO_KEY
column_create Logs_20170415 timestamp COLUMN_SCALAR Time
column_create Logs_20170415 price COLUMN_SCALAR UInt32
table_create Logs_20170416 TABLE_NO_KEY
column_create Logs_20170416 timestamp COLUMN_SCALAR Time
column_create Logs_20170416 price COLUMN_SCALAR UInt32
load --table Logs_20170415
[
{"timestamp": "2017/04/15 00:00:00", "price": 1000},
{"timestamp": "2017/04/15 01:00:00", "price": 900}
]
load --table Logs_20170416
[
{"timestamp": "2017/04/16 10:00:00", "price": 520},
{"timestamp": "2017/04/16 11:00:00", "price": 510},
{"timestamp": "2017/04/16 12:00:00", "price": 500}
]
table_create Vector TABLE_PAT_KEY UInt32
logical_select Logs \
--shard_key timestamp \
--columns[vector].stage initial \
--columns[vector].type Vector \
--columns[vector].flags COLUMN_VECTOR \
--columns[vector].value "vector_new(1, 2, 3)" \
--output_columns vector
logical_select Logs \
--shard_key timestamp \
--columns[vector].stage initial \
--columns[vector].type Vector \
--columns[vector].flags COLUMN_VECTOR|WITH_WEIGHT \
--columns[vector].value "vector_new(1, 2, 3)" \
--output_columns vector
The output is:
plugin_register sharding
[[0,0.0,0.0],true]
plugin_register functions/vector
[[0,0.0,0.0],true]
table_create Logs_20170415 TABLE_NO_KEY
[[0,0.0,0.0],true]
column_create Logs_20170415 timestamp COLUMN_SCALAR Time
[[0,0.0,0.0],true]
column_create Logs_20170415 price COLUMN_SCALAR UInt32
[[0,0.0,0.0],true]
table_create Logs_20170416 TABLE_NO_KEY
[[0,0.0,0.0],true]
column_create Logs_20170416 timestamp COLUMN_SCALAR Time
[[0,0.0,0.0],true]
column_create Logs_20170416 price COLUMN_SCALAR UInt32
[[0,0.0,0.0],true]
load --table Logs_20170415
[
{"timestamp": "2017/04/15 00:00:00", "price": 1000},
{"timestamp": "2017/04/15 01:00:00", "price": 900}
]
[[0,0.0,0.0],2]
load --table Logs_20170416
[
{"timestamp": "2017/04/16 10:00:00", "price": 520},
{"timestamp": "2017/04/16 11:00:00", "price": 510},
{"timestamp": "2017/04/16 12:00:00", "price": 500}
]
[[0,0.0,0.0],3]
table_create Vector TABLE_PAT_KEY UInt32
[[0,0.0,0.0],true]
logical_select Logs --shard_key timestamp --columns[vector].stage initial --columns[vector].type Vector --columns[vector].flags COLUMN_VECTOR --columns[vector].value "vector_new(1, 2, 3)" --output_columns vector
[
[
0,
0.0,
0.0
],
[
[
[
5
],
[
[
"vector",
"Vector"
]
],
[
[
1,
2,
3
]
],
[
[
1,
2,
3
]
],
[
[
1,
2,
3
]
],
[
[
1,
2,
3
]
],
[
[
1,
2,
3
]
]
]
]
]
logical_select Logs --shard_key timestamp --columns[vector].stage initial --columns[vector].type Vector --columns[vector].flags COLUMN_VECTOR|WITH_WEIGHT --columns[vector].value "vector_new(1, 2, 3)" --output_columns vector
failed to parse <json> content: 409: unexpected token at '{1:2}],[{1:2}],[{1:2}],[{1:2}],[{1:2}]]]]': <[[0,1492590575.464425,0.003045797348022461],[[[5],[["vector","Vector"]],[{1:2}],[{1:2}],[{1:2}],[{1:2}],[{1:2}]]]]>