我有一个PL/pgSQL
函数,该函数返回一些setof
行。我创建了一些单元测试,并使用pg
库连接到我的postgres数据库。万一出现与SQL
相关的错误,我只会得到错误消息,但是,当我从数据库控制台运行相同的查询时,我也会得到错误的详细信息以及失败的地方。
这是当单元测试由于SQL而失败时得到的:
error: structure of query does not match function result type
at Connection.parseE (node_modules/pg/lib/connection.js:604:11)
at Connection.parseMessage (node_modules/pg/lib/connection.js:401:19)
at Socket.<anonymous> (node_modules/pg/lib/connection.js:121:22)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:276:11)
at Socket.Readable.push (_stream_readable.js:210:10)
at TCP.onStreamRead (internal/stream_base_commons.js:166:17)
这就是我想要得到的:
ERROR: structure of query does not match function result type
Detail: Returned type bigint does not match expected type integer in column 3.
Where: PL/pgSQL function "GetCount"("TT_List"[]) line 15 at RETURN QUERY
问题:如何从JavaScript错误中获取detail
和where
?
注意:我在致电connection.query('select from "myFunction"')
时曾试图捕获该错误,但是我看到的唯一信息是连接已终止。