Re: ODBC - Retrieving info messages - RAISE NOTICE

"Inoue, Hiroshi" <[email protected]>
Newsgroups gmane.comp.db.postgresql.odbc
Message-ID <[email protected]>
Hi,

On 2018/02/10 19:18, Clemens Ladisch wrote:
> 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).

I would take care of the patch.

Thanks.
Hiroshi Inoue

>
>> 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;
>   	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.