gpt4 book ai didi

string - 非常奇怪的列字符串 "single-quote-comment-brace-time-char"- postgres 选择中的错误替换 - 可能仅与 JDBC 相关

转载 作者:行者123 更新时间:2023-11-29 13:24:03 25 4
gpt4 key购买 nike

如果您曾经遇到过类似的事情并且竭尽全力找出问题所在 - 简而言之:

--'
select '{t'::text

text
-----
TIME

???

最佳答案

多么令人讨厌的 bug 和有趣的是这会导致数据真正困惑!seems to be known since 9.1 ,可能仅与 JDBC 驱动程序有关,并且也发生在我们的 9.3 中!:

到目前为止,这里有一些我发现的更多细节(用于帮助在您的代码中或最终由“源代码黑客”找到并修复此临时问题;)),示例代码如下:

  • 单引号必须出现在选择上方的单行或多行注释中的某处(例如--'/*'*/, -- foo 很酷)
  • 明确给出的字符串必须包含{t{d 以被TIMEDATE 替换>分别
  • 其中一个字符串必须明确(也可能隐含)类型text
  • 必须在同一字符串或其他字符串中的某处使用右括号才能继续此替换(例如,select 'foo } bar')
  • 注释中的右大括号再次禁用该行为(例如 --})

.

--'
select '{t'::text

union all select '{ta}'
union all select '{tfoo bar'

-- these are untouched
union all select '{ t}'
union all select 'foo { t}'

-- there seems to be an opening/closing "{" "}" match behaviour behind
-- it since the 2nd row below
union all select '{t'
union all select '{ta}'
union all select '{tfoo bar'

-- also "d" seems to be a "trigger"
union all select '}{d}'

-- a closing brace in a comment seems to disable it completely again
union all select '{d'
union all select '{d'
-- }
union all select 'a}{d}'

text
------------
TIME
{ta
TIME foo bar
{ t
foo { t}
TIME
{ta
TIME foo bar
DATE
DATE
{d
a}{d}

关于string - 非常奇怪的列字符串 "single-quote-comment-brace-time-char"- postgres 选择中的错误替换 - 可能仅与 JDBC 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37004277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com