groonga icon indicating copy to clipboard operation
groonga copied to clipboard

Unexpected token error with weight vector column

Open kenhys opened this issue 8 years ago • 0 comments

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}]]]]>

kenhys avatar Apr 19 '17 08:04 kenhys