: Fix that deleting view will core when explain_perf_mode is not EXPLAIN_NORMAL.

Offering: openGaussDev

More detail: Fix that deleting view will core when explain_perf_mode is not EXPLAIN_NORMAL.

Match-id-e8eddf898bbef7bec3e1d746a29aaa49ded93ef6
This commit is contained in:
openGaussDev 2022-03-03 20:03:02 +08:00 committed by yanghao
parent c426a575e3
commit a4da772704
3 changed files with 21 additions and 0 deletions

View File

@ -454,6 +454,15 @@ void ExplainQuery(
*/
if (es.format == EXPLAIN_FORMAT_TEXT)
appendStringInfoString(es.str, "Query rewrites to nothing\n");
/*
* In centralized mode, non-stream plans only support EXPLAIN_NORMAL.
* So set explain_perf_mode to EXPLAIN_NORMAL here.
*/
if (t_thrd.explain_cxt.explain_perf_mode != EXPLAIN_NORMAL &&
!(IS_STREAM_PLAN && u_sess->exec_cxt.under_stream_runtime)) {
t_thrd.explain_cxt.explain_perf_mode = EXPLAIN_NORMAL;
}
} else {
ListCell* l = NULL;

View File

@ -1911,6 +1911,14 @@ create table test(a int);
create view v_test as select * from test;
CREATE OR REPLACE RULE v_delete as ON DELETE TO v_test DO INSTEAD NOTHING;
delete from v_test;
set explain_perf_mode=pretty;
explain delete from v_test;
QUERY PLAN
---------------------------
Query rewrites to nothing
(1 row)
reset explain_perf_mode;
drop table test cascade;
NOTICE: drop cascades to view v_test
-- end

View File

@ -424,6 +424,10 @@ create view v_test as select * from test;
CREATE OR REPLACE RULE v_delete as ON DELETE TO v_test DO INSTEAD NOTHING;
delete from v_test;
set explain_perf_mode=pretty;
explain delete from v_test;
reset explain_perf_mode;
drop table test cascade;
-- end