非互換
Fujitsu Enterprise Postgres 17では、SQL文のステートメント出力が以下のように改善されました。
複数SQL文を一括で依頼された場合の、監査ログにはSQL文単位にステートメントが出力されるように改善されました。
入力:EXECUTE E'\t\n\r CREATE TABLE ' || table_name || E' (""weird name"" INT)\t\n\r ; DROP table ' || table_name;
改行文字等の不要な文字や一括で指定された複数のSQL文が各ログに出力されていました。
監査ログの出力:
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,2,CREATE TABLE,,TABLE,public.do_table,,"
^M CREATE TABLE do_table (""weird name"" INT)
^M ; DROP table do_table"
,<none>
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,3,DROP TABLE,,TABLE,public.do_table,,"
^M CREATE TABLE do_table (""weird name"" INT)
^M ; DROP table do_table"
,<none>
改行文字等の不要な文字は削除され、監査対象のSQL分だけがログに出力されるようになります。
監査ログ:
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,2,CREATE TABLE,,TABLE,public.do_table,,
"CREATE TABLE do_table (""weird name"" INT)"
,<none>
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,3,DROP TABLE,,TABLE,public.do_table,,
DROP table do_table
,<none>
監査ログに出力されるSQL文単位のステートメントで、文末の";"が出力されないようになりました。
SQL文の末尾には";"が出力されていました。
監査ログ:
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,2,CREATE TABLE,,TABLE,public.do_table,,"CREATE TABLE do_table (""weird name"" INT);",<none>
SQL文の末尾には";"が出力されなくなりました。
監査ログ:
NOTICE: AUDIT: SESSION,DDL,,[local],,pg_regress/compound_statements,,foo,,1,2,CREATE TABLE,,TABLE,public.do_table,,"CREATE TABLE do_table (""weird name"" INT)",<none>
対処方法
ありません。