You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hasura添加计算字段报错:operator does not exist: uuid = text

问题解决:operator does not exist: uuid = text

错误原因

你的u_pinned_posts表中user_id是uuid类型,但hasura_session ->> 'x-hasura-user-id'返回的是文本类型,直接用=比较两种不同类型会触发类型不匹配错误。

修复方案

需要把从session中取出的用户ID文本显式转换为uuid类型,在PostgreSQL中可以用::uuid语法实现类型转换。

修改后的完整函数代码:

CREATE OR REPLACE FUNCTION post_pinned_by_user(post_row p_posts, hasura_session json)
RETURNS boolean AS $$
SELECT EXISTS (
    SELECT 1
    FROM u_pinned_posts A
    WHERE A.user_id = (hasura_session ->> 'x-hasura-user-id')::uuid AND A.post_id = post_row.id
);
$$ LANGUAGE sql STABLE;

关键修改点

  • 将hasura_session ->> 'x-hasura-user-id'改为(hasura_session ->> 'x-hasura-user-id')::uuid,把文本类型的用户ID转换为uuid,和A.user_id的类型保持一致,这样就能正常执行比较操作。

内容的提问来源于stack exchange,提问作者Ali Özen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:39:17