From: | Clemens Ladisch <clemens(at)ladisch(dot)de> |
---|---|
To: | pgsql-odbc(at)postgresql(dot)org |
Subject: | Re: ODBC - Retrieving info messages - RAISE NOTICE |
Date: | 2018-02-10 10:18:54 |
Message-ID: | 7787c333-02bd-677f-d72f-fe40dd89a177@ladisch.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Wolfgang Apolinarski wrote:
> only the last message ("3") is retrieved, when a statement like
> DO $$
> RAISE NOTICE '1';
> RAISE NOTICE '2';
> RAISE NOTICE '3';
> END$$;
> is executed.
When receiving a notice from libpq, the driver calls QR_set_notice(),
which replaces any previous notice. To get all notices separated with
a semicolon, try using QR_add_notice() instead (see the patch below).
> Maybe this is a general constraint when using ODBC
In theory, the ODBC API (SQLGetDiagRec) would allow any number of
messages.
Regards,
Clemens
--- psqlodbc.orig/connection.c
+++ psqlodbc/connection.c
@@ -894,7 +894,7 @@ handle_pgres_error(ConnectionClass *self
{
if (QR_command_successful(res))
QR_set_rstatus(res, PORES_NONFATAL_ERROR); /* notice or warning */
- QR_set_notice(res, errmsg); /* will dup this string */
+ QR_add_notice(res, errmsg); /* will dup this string */
}
goto cleanup;
}
From | Date | Subject | |
---|---|---|---|
Next Message | Tobias Wendorff | 2018-02-12 17:44:32 | NUMERIC type makes trouble in MS Access |
Previous Message | Mario De Frutos | 2018-02-09 17:02:33 | Patch for an encoding bug in the derive_locale_encoding function |