暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

exists condition copy到gsql 回显异常

适用范围

openGauss 5.0.0 and later

问题概述

exists condition copy到gsql 回显异常 1. gsql执行回显异常 drop table matched; drop table t_ext_buy; CREATE TABLE matched ( code character varying(12) NOT NULL, source_id numeric NOT NULL, source_account numeric NOT NULL, program_id character varying(12) NOT NULL, transaction_date timestamp without time zone NOT NULL, transaction_numeric numeric NOT NULL, value1 numeric NOT NULL, function1 numeric NOT NULL, indicator_1 character varying(1), indicator_2 character varying(1), comments_1 character varying(52), comments_2 character varying(52) ) WITH (orientation=row, compression=no); ALTER TABLE matched ADD CONSTRAINT matched_pk PRIMARY KEY (code, source_id, source_account, program_id, transaction_date, transaction_numeric, value1, function1); CREATE TABLE t_ext_buy ( code character varying(12), source_id numeric, source_account numeric, program_id character varying(12), transaction_date timestamp without time zone, transaction_numeric numeric, value1 numeric, function1 numeric, indicator character varying(1), comments character varying(50) ) WITH (orientation=row, compression=no); [omm@og1 ~]$ gsql -d postgres -r -U team1 -W Root_1234 gsql ((openGauss 5.0.1 build 4b650ff4) compiled at 2023-08-25 18:03:57 commit 0 last mr debug) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=> select b.code, openGauss-> b.source_id, openGauss-> b.source_account, openGauss-> b.program_id, openGauss-> b.transaction_date, openGauss-> b.transaction_numeric, openGauss-> b.value1, openGauss-> b.function1, openGauss-> b.indicator, openGauss-> b.comments openGauss-> from t_ext_buy b openGauss-> where exists (select 1 from matched m openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> where m.code openGauss(> where m.code = b.code openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.source_id = b.source_id openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.source_account = b.source_account openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.program_id = b.program_id openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.transaction_date = b.transaction_date openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.transaction_numeric = b.transaction_numeric openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.value1 openGauss(> and m.value1 = b.value1 openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.function1 = b.function1); code | source_id | source_account | program_id | transaction_date | transaction_numeric | value1 | function1 | indicator | comments ------+-----------+----------------+------------+------------------+---------------------+--------+-----------+-----------+---------- (0 rows) openGauss=> \q [omm@og1 ~]$ 2. gsql执行sql文件回显正常 [omm@og1 ~]$ cat /home/omm/query2.sql select b.code, b.source_id, b.source_account, b.program_id, b.transaction_date, b.transaction_numeric, b.value1, b.function1, b.indicator, b.comments from t_ext_buy b where exists (select 1 from matched m where m.code = b.code and m.source_id = b.source_id and m.source_account = b.source_account and m.program_id = b.program_id and m.transaction_date = b.transaction_date and m.transaction_numeric = b.transaction_numeric and m.value1 = b.value1 and m.function1 = b.function1); [omm@og1 ~]$ [omm@og1 ~]$ gsql -d postgres -r -U team1 -W Root_1234 -f /home/omm/query2.sql code | source_id | source_account | program_id | transaction_date | transaction_numeric | value1 | function1 | indicator | comments ------+-----------+----------------+------------+------------------+---------------------+--------+-----------+-----------+---------- (0 rows) total time: 3 ms [omm@og1 ~]$ 3. pg15 测试结果 [postgres@pg15 ~]$ psql psql (15.0) Type "help" for help. postgres=# postgres=# CREATE TABLE matched ( postgres(# code character varying(12) NOT NULL, postgres(# source_id numeric NOT NULL, postgres(# source_account numeric NOT NULL, postgres(# program_id character varying(12) NOT NULL, postgres(# transaction_date timestamp without time zone NOT NULL, postgres(# transaction_numeric numeric NOT NULL, postgres(# value1 numeric NOT NULL, postgres(# function1 numeric NOT NULL, postgres(# indicator_1 character varying(1), postgres(# indicator_2 character varying(1), postgres(# comments_1 character varying(52), postgres(# comments_2 character varying(52) postgres(# ); ALTER TABLE matched ADD CONSTRAINT matched_pk PRIMARY KEY (code, source_id, source_account, program_id, transaction_date, transaction_numeric, value1, function1); CREATE TABLE t_ext_buy ( code character varying(12), source_id numeric, source_account numeric, program_id character varying(12), transaction_date timestamp without time zone, transaction_numeric numeric, value1 numeric, function1 numeric, indicator character varying(1), comments character varying(50) ); select b.code, b.source_id, b.source_account, b.program_id, b.transaction_date, b.transaction_numeric, b.value1, b.function1, b.indicator, b.comments from t_ext_buy b where exists (select 1 from matched m where m.code = b.code and m.source_id = b.source_id and m.source_account = b.source_account and m.program_id = b.program_id and m.transaction_date = b.transaction_date and m.transaction_numeric = b.transaction_numeric and m.value1 = b.value1 and m.function1 = b.function1);CREATE TABLE postgres=# ALTER TABLE matched ADD CONSTRAINT matched_pk PRIMARY KEY (code, source_id, source_account, program_id, transaction_date, transaction_numeric, value1, function1); ALTER TABLE postgres=# postgres=# CREATE TABLE t_ext_buy ( postgres(# code character varying(12), postgres(# source_id numeric, postgres(# source_account numeric, postgres(# program_id character varying(12), postgres(# transaction_date timestamp without time zone, postgres(# transaction_numeric numeric, postgres(# value1 numeric, postgres(# function1 numeric, postgres(# indicator character varying(1), postgres(# comments character varying(50) postgres(# ); CREATE TABLE postgres=# postgres=# select b.code, postgres-# b.source_id, postgres-# b.source_account, postgres-# b.program_id, postgres-# b.transaction_date, postgres-# b.transaction_numeric, postgres-# b.value1, postgres-# b.function1, postgres-# b.indicator, postgres-# b.comments postgres-# from t_ext_buy b postgres-# where exists (select 1 from matched m postgres(# postgres(# postgres(# postgres(# where m.code postgres(# where m.code = b.code postgres(# postgres(# and m.source_id = b.source_id postgres(# postgres(# and m.source_account = b.source_account postgres(# postgres(# and m.program_id = b.program_id postgres(# postgres(# and m.transaction_date = b.transaction_date postgres(# postgres(# and m.transaction_numeric = b.transaction_numeric postgres(# postgres(# and m.value1 postgres(# and m.value1 = b.value1 postgres(# postgres(# and m.function1 = b.function1); code | source_id | source_account | program_id | transaction_date | transaction_numeric | value1 | function1 | indicator | comments ------+-----------+----------------+------------+------------------+---------------------+--------+-----------+-----------+---------- (0 rows) postgres=#

问题原因

readline后的补全能力的问题。测试一下不在-r是否与pg表现一致

解决方案

不在-r时,显示结果正常 [omm@og1 team1]$ gsql -d postgres -U team1 -W Root_1234 gsql ((openGauss 5.0.1 build 4b650ff4) compiled at 2023-08-25 18:03:57 commit 0 last mr debug) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=> select b.code, b.source_id, b.source_account, b.program_id, b.transaction_date, b.transaction_numeric, openGauss-> openGauss-> openGauss-> openGauss-> openGauss-> openGauss-> b.value1, b.function1, openGauss-> openGauss-> b.indicator, b.comments openGauss-> openGauss-> from t_ext_buy b openGauss-> where exists (select 1 from matched m where m.code = b.code openGauss(> openGauss(> and m.source_id = b.source_id and m.source_account = b.source_account openGauss(> openGauss(> and m.program_id = b.program_id openGauss(> and m.transaction_date = b.transaction_date openGauss(> and m.transaction_numeric = b.transaction_numeric and m.value1 = b.value1 openGauss(> openGauss(> and m.function1 = b.function1); ^CCancel request sent ERROR: canceling statement due to user request openGauss=> \q [omm@og1 team1]$ gsql -d postgres -r -U team1 -W Root_1234 gsql ((openGauss 5.0.1 build 4b650ff4) compiled at 2023-08-25 18:03:57 commit 0 last mr debug) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=> select b.code, b.source_id, b.source_account, b.program_id, b.transaction_date, b.transaction_numeric, openGauss-> b.source_id, openGauss-> b.source_account, openGauss-> b.program_id, openGauss-> b.transaction_date, openGauss-> b.transaction_numeric, openGauss-> b.value1, openGauss-> b.function1, openGauss-> b.indicator, openGauss-> b.comments openGauss-> from t_ext_buy b openGauss-> where exists (select 1 from matched m openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> where m.code openGauss(> where m.code = b.code openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.source_id = b.source_id openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.source_account = b.source_account openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.program_id = b.program_id openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.transaction_date = b.transaction_date openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.transaction_numeric = b.transaction_numeric openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.value1 openGauss(> and m.value1 = b.value1 openGauss(> ABORT BEGIN CLUSTER CREATE DELETE FROM END GRANT LOCK REASSIGN RESET SECURITY LABEL START UPDATE ALTER CALL COMMENT CURSOR DISCARD EXECUTE INSERT MOVE REFRESH REVOKE SELECT TABLE VACUUM ANALYSE CHECKPOINT COMMIT DEALLOCATE DO EXPLAIN LISTEN NOTIFY REINDEX ROLLBACK SET TRUNCATE VALUES ANALYZE CLOSE COPY DECLARE DROP FETCH LOAD PREPARE RELEASE SAVEPOINT SHOW UNLISTEN WITH openGauss(> and m.function1 = b.function1); ^CCancel request sent ERROR: canceling statement due to user request openGauss=> \q [omm@og1 team1]$

回归通过

image.png

参考文档

https://gitee.com/opengauss/openGauss-server/issues/I7XS9S
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论