Результат запроса должен иметь тип 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\"))"

Некоторое время он работал отлично, но теперь сталкивается с этой ошибкой. Не уверен, как это исправить.

0 ответов

Другие вопросы по тегам