diff --git a/src/common/backend/parser/scan.l b/src/common/backend/parser/scan.l index 5fa0bac2c..9dcfd2843 100755 --- a/src/common/backend/parser/scan.l +++ b/src/common/backend/parser/scan.l @@ -913,7 +913,7 @@ other . yyerror("operator too long"); /* Convert "!=" operator to "<>" for compatibility */ - if (strcmp(yytext, "!=") == 0) + if (strcmp(yytext, "!=") == 0 || strcmp(yytext, "^=") == 0) { yylval->str = pstrdup("<>"); yyextra->is_hint_str = false; diff --git a/src/test/regress/expected/select.out b/src/test/regress/expected/select.out index 231525c55..aa0ee75aa 100644 --- a/src/test/regress/expected/select.out +++ b/src/test/regress/expected/select.out @@ -904,3 +904,9 @@ LINE 1: select xmin from t, ft1 where t.a=ft1.a; ^ drop schema syscolofforeign cascade; NOTICE: drop cascades to table t +-- test ^= +select 1 ^= 2; + ?column? +---------- + t +(1 row) diff --git a/src/test/regress/sql/select.sql b/src/test/regress/sql/select.sql index a803fcd45..0248d204c 100644 --- a/src/test/regress/sql/select.sql +++ b/src/test/regress/sql/select.sql @@ -270,3 +270,6 @@ select t.xmin from t, ft1 where t.a=ft1.a; select xmin from t, ft1 where t.a=ft1.a; drop schema syscolofforeign cascade; + +-- test ^= +select 1 ^= 2;