【发布时间】:2013-02-06 05:11:09
【问题描述】:
我使用 Postgres App 和 ssmode=disable 在本地运行 Postgres 9.2.2 服务器。所有表都按应有的方式创建,SELECT 查询按预期工作。
当我在Heroku 上创建一个 Postgres 实例(根据psql,ssmode=require,服务器是 9.1.6)时,一切正常,除了查询没有返回任何结果,而本地 postgres 实例返回。
具体查询是
SELECT * FROM "captcha" WHERE "cid" = $1 LIMIT $2
而cid/$1 的类型为character varying(20)。
当通过psql 连接到远程实例并手动执行查询时,行按预期返回。我只是不明白是什么可能导致这种不同的行为。
主要嫌疑人是我使用 bmizerany/pq 的驱动程序,但这种行为是否还有其他错误来源?
更新:
我用普通查询尝试过,结果相同:结果集中没有行
SELECT * FROM "captcha" WHERE "cid" = 'JQRPm6qRpYukXCiPUpHZ' LIMIT 1
更新 2:
它与bytea字段有关,下面的sn-p说明了在这两个PG版本https://gist.github.com/eaigner/5004468上执行时的问题
【问题讨论】:
-
您能打印出正在执行的确切查询吗?
-
“确切查询”是什么意思?我已经发布了准备好的声明。
-
这可能是一个愚蠢的问题,但如果您只执行
SELECT * FROM "captcha",您会在该结果集中看到正确的行吗? -
是的,当我使用
psql进行查询时,这是正确的行 -
不,即使我选择所有行也不会返回任何行。
标签: postgresql heroku go