如何在Golang中获取Postgresql过程警告消息

时间:2017-02-06 14:22:04

标签: postgresql go plpgsql

在运行存储过程时,该过程可能会引发警告消息。

有没有办法在Golang中使用Postgresql驱动程序(https://github.com/lib/pq)获取这些消息?

2 个答案:

答案 0 :(得分:2)

答案似乎是否定。

在我的测试中,Postgres服务器似乎没有发送带有结果的警告。即使它确实如此,返回错误以及sql.Result最多也会令人困惑,并且需要进行lib/pq修改。在函数中引发错误会返回错误,但(显然)没有结果。

如果这是一个关键要求(并且您的功能可以支持它),您可以考虑使用notification channel。请记住,这会将您的代码绑定到Postgres。

-

这是我使用的功能:

CREATE OR REPLACE function fugo() RETURNS bool as $$ BEGIN RAISE WARNING 'My function notice.' USING errcode = '01000'; return TRUE; END;$$ language 'plpgsql';

答案 1 :(得分:1)

对于datePickerDialog.getDatePicker().init(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DAY_OF_MONTH), null); 驱动程序,答案为“仍然否”。 有关详细信息,请参见open issuesources

与此同时,另一个驱动程序https://github.com/jackc/pgx支持当前(v4)版本的消息,请参见https://godoc.org/github.com/jackc/pgconn#Notice和更早的版本(请参见https://github.com/jackc/pgx/blob/v3/conn.go#L54