merge show-events into 6.0.0
解决show events报语法错误的问题 Created-by: dodders Commit-by: laishenghao Merged-by: opengauss_bot Description: 【标题】解决show events报语法错误的问题 【实现内容】:解决show events报语法错误的问题 【根因分析】: B库下interval为关键字,导致语法解析错误 【实现方案】:在B库下对interval增加反引号。 【关联需求或issue】:https://gitcode.com/opengauss/openGauss-server/issues/7008 【开发自验报告】: 1. 请附上自验结果(内容或者截图)  2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例 是 3. 是否涉及资料修改,如是,在docs仓库补充资料 否 4. 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式) 不涉及 5. 是否考虑在线扩容等扩展场景 不涉及 6. 是否考虑异常场景/并发场景/前向兼容/性能场景 解决异常报错 7. 是否对其他模块产生影响 否 【其他说明】:NA See merge request: opengauss/openGauss-server!7894
This commit is contained in:
@ -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 */
|
||||
|
||||
56
src/test/regress/expected/show_events.out
Normal file
56
src/test/regress/expected/show_events.out
Normal 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;
|
||||
@ -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
|
||||
|
||||
@ -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#
|
||||
|
||||
|
||||
|
||||
25
src/test/regress/sql/show_events.sql
Normal file
25
src/test/regress/sql/show_events.sql
Normal 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;
|
||||
Reference in New Issue
Block a user