Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit403bd6a

Browse files
committed
Fix crash when trying to display a NOTIFY rule action.
Fixes oversight in commit2ffa740.Per report from Josh Kupershmidt.I think we've broken this case before, so let's add a regression testthis time.
1 parent6563fb2 commit403bd6a

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

‎src/backend/utils/adt/ruleutils.c

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2564,14 +2564,19 @@ set_deparse_for_query(deparse_namespace *dpns, Query *query,
25642564
dpns->rtable_columns=lappend(dpns->rtable_columns,
25652565
palloc0(sizeof(deparse_columns)));
25662566

2567-
/* Detect whether global uniqueness of USING names is needed */
2568-
dpns->unique_using=has_unnamed_full_join_using((Node*)query->jointree);
2567+
/* If it's a utility query, it won't have a jointree */
2568+
if (query->jointree)
2569+
{
2570+
/* Detect whether global uniqueness of USING names is needed */
2571+
dpns->unique_using=
2572+
has_unnamed_full_join_using((Node*)query->jointree);
25692573

2570-
/*
2571-
* Select names for columns merged by USING, via a recursive pass over the
2572-
* query jointree.
2573-
*/
2574-
set_using_names(dpns, (Node*)query->jointree);
2574+
/*
2575+
* Select names for columns merged by USING, via a recursive pass over
2576+
* the query jointree.
2577+
*/
2578+
set_using_names(dpns, (Node*)query->jointree);
2579+
}
25752580

25762581
/*
25772582
* Now assign remaining column aliases for each RTE. We do this in a

‎src/test/regress/expected/rules.out

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2573,6 +2573,7 @@ select * from rules_log;
25732573
11 | 13 | new
25742574
(12 rows)
25752575

2576+
create rule r3 as on delete to rules_src do notify rules_src_deletion;
25762577
\d+ rules_src
25772578
Table "public.rules_src"
25782579
Column | Type | Modifiers | Storage | Stats target | Description
@@ -2584,6 +2585,9 @@ Rules:
25842585
ON UPDATE TO rules_src DO INSERT INTO rules_log (f1, f2, tag) VALUES (old.f1,old.f2,'old'::text), (new.f1,new.f2,'new'::text)
25852586
r2 AS
25862587
ON UPDATE TO rules_src DO VALUES (old.f1,old.f2,'old'::text), (new.f1,new.f2,'new'::text)
2588+
r3 AS
2589+
ON DELETE TO rules_src DO
2590+
NOTIFY rules_src_deletion
25872591
Has OIDs: no
25882592

25892593
--

‎src/test/regress/sql/rules.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -970,6 +970,7 @@ create rule r2 as on update to rules_src do also
970970
update rules_srcset f2= f2/10;
971971
select*from rules_src;
972972
select*from rules_log;
973+
createruler3ason delete to rules_src do notify rules_src_deletion;
973974
\d+ rules_src
974975

975976
--

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp