解决show events抱语法错误的问题

This commit is contained in:
laishenghao
2025-06-11 17:54:51 +08:00
parent 250e5e7064
commit 548b1bf2bf
5 changed files with 91 additions and 4 deletions

View File

@ -942,8 +942,14 @@ StmtResult *SearchEventInfo(ShowEventStmt *stmt)
StringInfoData buf;
initStringInfo(&buf);
appendStringInfo(&buf, "SELECT ");
appendStringInfo(&buf,
"job_name,nspname,log_user,priv_user,job_status,start_date,interval,end_date,enable,failure_msg ");
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,%s,end_date,enable,failure_msg ",
intervalColName);
appendStringInfo(&buf, "FROM PG_JOB ");
/* Concatenate where clause */

View File

@ -0,0 +1,56 @@
create database event_db dbcompatibility 'B';
\c event_db
create schema event_s;
set current_schema = event_s;
set dolphin.b_compatibility to on;
show events;
job_name | schema_name | log_user | priv_user | job_status | start_date | interval | end_date | enable | failure_msg
----------+-------------+----------+-----------+------------+------------+----------+----------+--------+-------------
(0 rows)
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%';
--?.*
--?.*
--?.*
(1 row)
show events like 'e_';
--?.*
--?.*
--?.*
(1 row)
show events where job_name='e1';
--?.*
--?.*
--?.*
(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

@ -1105,7 +1105,7 @@ test: optimizing_index_scan_ustore
test: row_count_function
# test for inherit table
test: inherits01
test: inherits01 show_events
# show_warnings
test: show_warnings prevent_table_in_sys_schema create_tbl_init_td_check

View File

@ -417,7 +417,7 @@ test: partiton_pathkey_col_plan partiton_pathkey_col_randomexec partiton_pathkey
#test: create_function_1
test: create_table create_table_2 create_table_3
test: temp__4 obsscaninfo
test: create_seg_table
test: create_seg_table show_events
#test: copy#

View File

@ -0,0 +1,25 @@
create database event_db dbcompatibility 'B';
\c event_db
create schema event_s;
set current_schema = event_s;
set dolphin.b_compatibility to on;
show events;
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;