【问题标题】:PostgreSQL calculated index for JSON value doesn't work in peewee?PostgreSQL 计算的 JSON 值索引在 peewee 中不起作用?
【发布时间】:2020-11-23 13:36:06
【问题描述】:

我正在使用 peewee 从 JSON 列中的值创建 PostgreSQL 计算索引。 这是代码

idx = Tweet.index(Tweet.data['x'], name='x')
Tweet.add_index(idx)

这会产生以下不起作用的 SQL。

CREATE INDEX IF NOT EXISTS "x" ON "tweet" ("data"->>'x')

根据 PostgreSQL 文档,JSON 表达式必须用 两组 括号括起来,如下所示:

CREATE INDEX IF NOT EXISTS "x" ON "tweet" (("data"->>'x'))

是我做错了什么,还是 Peewee 中的错误?我该如何解决?

【问题讨论】:

    标签: sql json postgresql peewee database-indexes


    【解决方案1】:

    这似乎是一个 postgres 错误,因为它是任意的。在这种情况下,只需使用 SQL() 帮助器显式添加索引:

    Tweet.add_index(SQL('create index ...'))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多