Результат запроса должен иметь тип DATUM, GROUPED_DATA или STREAM (получил FUNCTION)
Я пытаюсь создать составной индекс с помощью переосмысления запроса в моем коде Голанга. Я написал запрос, чтобы проверить, существует ли индекс и, если нет, создать составной индекс для таблицы.
table := rethink.DB(DBMeta).Table(TblKekData)
err := table.IndexList().Contains("UniqueID").
Do(rethink.Branch(rethink.Row, rethink.DB(DBMeta).Table(TblKekData), func() interface{} {
return []interface{}{table.
IndexCreateFunc("UniqueID", func(row rethink.Term) interface{} {
return []interface{}{row.Field(IndexResourceGroupID), row.Field(ID)}
})}
})).Exec(d.client.Executor)
if err != nil {
return nil, err
}
С этим блоком кода я получаю сообщение об ошибке в журналах следующим образом
ts=2018-01-12T17:27:04.623036909Z transport=gRPC component=metadata caller=logging.go:51 method=Retrieve took=5.754644ms correlation_id=f53ec206-66b8-46f8-962e-370acac9e5a4 timeout=false err="gorethink: Query result must be of type DATUM, GROUPED_DATA, or STREAM (got FUNCTION). in:\nr.Do(func(var_2 r.Term) r.Term { return r.Branch(r.Row, r.DB(\"key_protect_metadata\").Table(\"key_metadata\"), func( r.Term) r.Term { return [r.DB(\"key_protect_metadata\").Table(\"key_metadata\").IndexCreate(\"UniqueID\", func(var_1 r.Term) r.Term { return [var_1.Field(\"resource_group_id\"), var_1.Field(\"id\")] })] }) }, r.DB(\"key_protect_metadata\").Table(\"key_metadata\").IndexList().Contains(\"UniqueID\"))"
Некоторое время он работал отлично, но теперь сталкивается с этой ошибкой. Не уверен, как это исправить.