!6674 B兼容模式下执行show events报语法错误

Merge pull request !6674 from TinyBag/event
This commit is contained in:
opengauss_bot
2024-11-25 03:19:35 +00:00
committed by Gitee
5 changed files with 97 additions and 1 deletions

View File

@ -942,8 +942,25 @@ StmtResult *SearchEventInfo(ShowEventStmt *stmt)
StringInfoData buf;
initStringInfo(&buf);
appendStringInfo(&buf, "SELECT ");
char* intervalColName;
if (u_sess->attr.attr_sql.dolphin) {
intervalColName = "`interval`";
} else {
intervalColName = "interval";
}
appendStringInfo(&buf,
"job_name,nspname,log_user,priv_user,job_status,start_date,interval,end_date,enable,failure_msg ");
"job_name,"
"nspname,"
"log_user,"
"priv_user,"
"job_status,"
"start_date,"
"%s,"
"end_date,"
"enable,"
"failure_msg ",
intervalColName);
appendStringInfo(&buf, "FROM PG_JOB ");
/* Concatenate where clause */

View File

@ -0,0 +1,51 @@
create database event_db dbcompatibility 'B';
\c event_db
create schema event_s;
set current_schema = event_s;
set dolphin.b_compatibility to on;
create user event_a sysadmin password 'event_123';
create definer=event_a event e1 on schedule at '2023-01-16 21:05:40' disable do select 1;
select job_name, nspname from pg_job where dbname='event_b';
job_name | nspname
----------+---------
(0 rows)
show events in a;
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+------------+----------+----------+--------+-------------
(0 rows)
show events from a;
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+------------+----------+----------+--------+-------------
(0 rows)
show events like 'e';
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+------------+----------+----------+--------+-------------
(0 rows)
show events like 'e%';
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+--------------------------+----------+--------------------------+--------+-------------
e1 | event_s | event_a | event_a | s | Mon Jan 16 21:05:40 2023 | null | Sat Jan 01 08:00:00 4000 | f |
(1 row)
show events like 'e_';
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+--------------------------+----------+--------------------------+--------+-------------
e1 | event_s | event_a | event_a | s | Mon Jan 16 21:05:40 2023 | null | Sat Jan 01 08:00:00 4000 | f |
(1 row)
show events where job_name='e1';
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+--------------------------+----------+--------------------------+--------+-------------
e1 | event_s | event_a | event_a | s | Mon Jan 16 21:05:40 2023 | null | Sat Jan 01 08:00:00 4000 | f |
(1 row)
drop event if exists e1;
drop user if exists event_a;
reset current_schema;
drop schema event_s;
\c postgres
drop database if exists event_db;

View File

@ -1114,6 +1114,9 @@ test: inherits01
# show_warnings
test: show_warnings prevent_table_in_sys_schema create_tbl_init_td_check
# show_events
test: show_events
# test event trigger and object address
test: test_object_alter
test: event_trigger object_address

View File

@ -423,6 +423,8 @@ test: temp__4 obsscaninfo
test: create_seg_table
#test: copy#
# show_events
test: show_events
# ----------

View File

@ -0,0 +1,23 @@
create database event_db dbcompatibility 'B';
\c event_db
create schema event_s;
set current_schema = event_s;
set dolphin.b_compatibility to on;
create user event_a sysadmin password 'event_123';
create definer=event_a event e1 on schedule at '2023-01-16 21:05:40' disable do select 1;
select job_name, nspname from pg_job where dbname='event_b';
show events in a;
show events from a;
show events like 'e';
show events like 'e%';
show events like 'e_';
show events where job_name='e1';
drop event if exists e1;
drop user if exists event_a;
reset current_schema;
drop schema event_s;
\c postgres
drop database if exists event_db;