postgres pgjwt中的Concat导致错误
Concat in postgres pgjwt resulting in error
我正在尝试使用 pgjwt function 但是当我连接文本时我得到了奇怪的结果。谁能解释一下这里发生了什么。
select sign ('"{foo": "bar"}', 'secret', 'HS512'); -- Works fine
select sign ('"{foo": "bar"}', 'secret', 'HS' || '512'); -- Works fine
select sign ('"{foo": "bar"}', 'sec' || 'ret', 'HS512'); -- Works fine
select sign ('"{fo' || 'o": "bar"}', 'secret', 'HS512'); -- Error
select sign ('"{foo":' || ' "bar"}', 'secret', 'HS512'); -- Error
select sign ('"{foo": "b' || 'ar"}', 'secret', 'HS512'); -- Error
select sign ('{}', 'sec' || 'ret', 'HS512'); -- Works fine
select sign ('{' || '}', 'sec' || 'ret', 'HS512'); -- Error
我得到的错误是:
ERROR: function sign (text, unknown, unknown) does not exist
您正在使用串联将 JSON 对象拆分为两个 text
类型的字符串。
之后的演员应该可以完成工作,我相信:
select sign (('"{foo":' || ' "bar"}')::json, 'secret', 'HS512');
我正在尝试使用 pgjwt function 但是当我连接文本时我得到了奇怪的结果。谁能解释一下这里发生了什么。
select sign ('"{foo": "bar"}', 'secret', 'HS512'); -- Works fine
select sign ('"{foo": "bar"}', 'secret', 'HS' || '512'); -- Works fine
select sign ('"{foo": "bar"}', 'sec' || 'ret', 'HS512'); -- Works fine
select sign ('"{fo' || 'o": "bar"}', 'secret', 'HS512'); -- Error
select sign ('"{foo":' || ' "bar"}', 'secret', 'HS512'); -- Error
select sign ('"{foo": "b' || 'ar"}', 'secret', 'HS512'); -- Error
select sign ('{}', 'sec' || 'ret', 'HS512'); -- Works fine
select sign ('{' || '}', 'sec' || 'ret', 'HS512'); -- Error
我得到的错误是:
ERROR: function sign (text, unknown, unknown) does not exist
您正在使用串联将 JSON 对象拆分为两个 text
类型的字符串。
之后的演员应该可以完成工作,我相信:
select sign (('"{foo":' || ' "bar"}')::json, 'secret', 'HS512');