This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 0674b5a1eb0 Fix oracle show systemVariable syntax loose issue (#31365)
0674b5a1eb0 is described below
commit 0674b5a1eb049e3f27dad72aae1204860d481d17
Author: yydeng626 <[email protected]>
AuthorDate: Tue May 28 08:09:56 2024 +0800
Fix oracle show systemVariable syntax loose issue (#31365)
* fix oracle show systemVariable syntax loose issue
* fix sql parser error
* fix sql parser error
---
.../src/main/antlr4/imports/oracle/BaseRule.g4 | 3 +-
.../src/main/antlr4/imports/oracle/DALStatement.g4 | 77 +++-
.../src/main/antlr4/imports/oracle/Keyword.g4 | 456 +++++++++++++++++++++
3 files changed, 531 insertions(+), 5 deletions(-)
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 09fe2704bb3..e7350108a0e 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -334,7 +334,8 @@ unreservedWord3
| WIDTH_BUCKET | WRAPPED | XID | XMLAGG | XMLATTRIBUTES | XMLCAST |
XMLCDATA | XMLCOLATTVAL | XMLCOMMENT | XMLCONCAT | XMLDIFF
| XMLEXISTS | XMLEXISTS2 | XMLFOREST | XMLINDEX_REWRITE |
XMLINDEX_REWRITE_IN_SELECT | XMLINDEX_SEL_IDX_TBL | XMLISNODE
| XMLISVALID | XMLNAMESPACES | XMLPARSE | XMLPATCH | XMLPI | XMLQUERY |
XMLROOT | XMLSERIALIZE | XMLTABLE | XMLTOOBJECT
- | XMLTRANSFORM | XMLTRANSFORMBLOB | XML_DML_RWT_STMT | XPATHTABLE |
XS_SYS_CONTEXT | X_DYN_PRUNE | RESULT | TABLE | NUMBER | CHAR | SQLCODE
+ | XMLTRANSFORM | XMLTRANSFORMBLOB | XML_DML_RWT_STMT | XPATHTABLE |
XS_SYS_CONTEXT | X_DYN_PRUNE | RESULT | TABLE | NUMBER | CHAR
+ | SQLCODE | TAB | TERM | NUM
;
schemaName
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DALStatement.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DALStatement.g4
index 4eb41eba31c..cff93b1dc35 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DALStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DALStatement.g4
@@ -44,13 +44,82 @@ originalName
;
systemVariable
- : identifier
+ : (APPI | APPINFO)
+ | (ARRAY | ARRAYSIZE)
+ | (AUTO | AUTOCOMMIT)
+ | (AUTOP | AUTOPN)
+ | AUTORECOVERY
+ | (AUTOT | AUTOTRACE)
+ | (BLO | BLOCKTERMINATOR)
+ | (CMDS | CMDSEP)
+ | (COLINVI | COLINVISIBLE)
+ | COLSEP
+ | (CON | CONCAT)
+ | (COPYC | COPYCOMMIT)
+ | COPYTYPECHECK
+ | (DEF | DEFINE)
+ | DESCRIBE
+ | ECHO
+ | (EDITF | EDITFILE)
+ | (EMB | EMBEDDED)
+ | ERRORDETAILS
+ | (ERRORL | ERRORLOGGING)
+ | (ESC | ESCAPE)
+ | ESCCHAR
+ | (EXITCOMMIT | OMMIT)
+ | FEEDBACK
+ | FLAGGER
+ | (FLU | FLUSH)
+ | (HEADING | HEA)
+ | (HISTORY | HIST)
+ | INSTANCE
+ | JSONPRINT
+ | (LINESIZE | LIN)
+ | (LOBOFFSET | LOBOF)
+ | LOGSOURCE
+ | LONG
+ | LONGCHUNKSIZE
+ | (MARK | MARKUP)
+ | (NEWPAGE | NEWP)
+ | NULL
+ | (NUMFORMAT | NUMF)
+ | (NUMWIDTH | NUM)
+ | (PAGESIZE | PAGES)
+ | (PAUSE | PAU)
+ | RECSEP
+ | RECSEPCHAR
+ | ROWLIMIT
+ | ROWPREFETCH
+ | SECUREDCOL
+ | (SERVEROUTPUT | SERVEROUT)
+ | (SHIFTINOUT | SHIFT)
+ | (SHOWMODE | SHOW)
+ | (SQLBLANKLINES | SQLBL)
+ | (SQLCASE | SQLC)
+ | (SQLCONTINUE | SQLCO)
+ | (SQLNUMBER | SQLN)
+ | (SQLPLUSCOMPATIBILITY | SQLPLUSCOMPAT)
+ | (SQLPREFIX | SQLPRE)
+ | (SQLPROMPT | SQLP)
+ | (SQLTERMINATOR | SQLT)
+ | (STATEMENTCACHE | STATEMENTC)
+ | (SUFFIX | SUF)
+ | TAB
+ | (TERMOUT | TERM)
+ | (TIME | TI)
+ | (TIMING | TIMI)
+ | (TRIMOUT | TRIM)
+ | (TRIMSPOOL | TRIMS)
+ | (UNDERLINE | UND)
+ | (VERIFY | VER)
+ | (WRAP | WRA)
+ | (XMLOPTIMIZATIONCHECK | XMLOPT)
+ | XQUERY
;
showOptions
-// TODO refactor systemVariable sytax according to
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqpug/SET-system-variable-summary.html#GUID-A6A5ADFF-4119-4BA4-A13E-BC8D29166FAE
-// : systemVariable
- : ALL
+ : systemVariable
+ | ALL
| CON_ID
| CON_NAME
| EDITION
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
index e54bcb7faeb..138eb1bb72f 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
@@ -951,3 +951,459 @@ LRTRIM
GETLENGTH
: G E T L E N G T H
;
+
+APPI
+ : A P P I
+ ;
+
+APPINFO
+ : A P P I N F O
+ ;
+
+ARRAYSIZE
+ : A R R A Y S I Z E
+ ;
+
+AUTO
+ : A U T O
+ ;
+
+AUTOCOMMIT
+ : A U T O C O M M I T
+ ;
+
+AUTOP
+ : A U T O P
+ ;
+
+AUTOPN
+ : A U T O P N
+ ;
+
+AUTORECOVERY
+ : A U T O R E C O V E R Y
+ ;
+
+AUTOT
+ : A U T O T
+ ;
+
+AUTOTRACE
+ : A U T O T R A C E
+ ;
+
+BLO
+ : B L O
+ ;
+
+BLOCKTERMINATOR
+ : B L O C K T E R M I N A T O R
+ ;
+
+CMDS
+ : C M D S
+ ;
+
+CMDSEP
+ : C M D S E P
+ ;
+
+COLINVI
+ : C O L I N V I
+ ;
+
+COLINVISIBLE
+ : C O L I N V I S I B L E
+ ;
+
+COLSEP
+ : C O L S E P
+ ;
+
+CON
+ : C O N
+ ;
+
+CONCAT
+ : C O N C A T
+ ;
+
+COPYC
+ : C O P Y C
+ ;
+
+COPYCOMMIT
+ : C O P Y C O M M I T
+ ;
+
+COPYTYPECHECK
+ : C O P Y T Y P E C H E C K
+ ;
+
+DEF
+ : D E F
+ ;
+
+DEFINE
+ : D E F I N E
+ ;
+
+DESCRIBE
+ : D E S C R I B E
+ ;
+
+ECHO
+ : E C H O
+ ;
+
+EDITF
+ : E D I T F
+ ;
+
+EDITFILE
+ : E D I T F I L E
+ ;
+
+EMB
+ : E M B
+ ;
+
+EMBEDDED
+ : E M B E D D E D
+ ;
+
+ERRORDETAILS
+ : E R R O R D E T A I L S
+ ;
+
+ERRORL
+ : E R R O R L
+ ;
+
+ERRORLOGGING
+ : E R R O R L O G G I N G
+ ;
+
+ESC
+ : E S C
+ ;
+
+ESCAPE
+ : E S C A P E
+ ;
+
+ESCCHAR
+ : E S C C H A R
+ ;
+
+EXITCOMMIT
+ : E X I T C O M M I T
+ ;
+
+OMMIT
+ : O M M I T
+ ;
+
+FEEDBACK
+ : F E E D B A C K
+ ;
+
+FLAGGER
+ : F L A G G E R
+ ;
+
+FLU
+ : F L U
+ ;
+
+FLUSH
+ : F L U S H
+ ;
+
+HEADING
+ : H E A D I N G
+ ;
+
+HEA
+ : H E A
+ ;
+
+HISTORY
+ : H I S T O R Y
+ ;
+
+HIST
+ : H I S T
+ ;
+
+JSONPRINT
+ : J S O N P R I N T
+ ;
+
+LINESIZE
+ : L I N E S I Z E
+ ;
+
+LIN
+ : L I N
+ ;
+
+LOBOFFSET
+ : L O B O F F S E T
+ ;
+
+LOBOF
+ : L O B O F
+ ;
+
+LOGSOURCE
+ : L O G S O U R C E
+ ;
+
+LONG
+ : L O N G
+ ;
+
+LONGCHUNKSIZE
+ : L O N G C H U N K S I Z E
+ ;
+
+MARK
+ : M A R K
+ ;
+
+MARKUP
+ : M A R K U P
+ ;
+
+NEWPAGE
+ : N E W P A G E
+ ;
+
+NEWP
+ : N E W P
+ ;
+
+NUMFORMAT
+ : N U M F O R M A T
+ ;
+
+NUMF
+ : N U M F
+ ;
+
+NUMWIDTH
+ : N U M W I D T H
+ ;
+
+NUM
+ : N U M
+ ;
+
+PAGESIZE
+ : P A G E S I Z E
+ ;
+
+PAGES
+ : P A G E S
+ ;
+
+PAUSE
+ : P A U S E
+ ;
+
+PAU
+ : P A U
+ ;
+
+RECSEP
+ : R E C S E P
+ ;
+
+RECSEPCHAR
+ : R E C S E P C H A R
+ ;
+
+ROWLIMIT
+ : R O W L I M I T
+ ;
+
+ROWPREFETCH
+ : R O W P R E F E T C H
+ ;
+
+SECUREDCOL
+ : S E C U R E D C O L
+ ;
+
+SERVEROUTPUT
+ : S E R V E R O U T P U T
+ ;
+
+SERVEROUT
+ : S E R V E R O U T
+ ;
+
+SHIFTINOUT
+ : S H I F T I N O U T
+ ;
+
+SHIFT
+ : S H I F T
+ ;
+
+SHOWMODE
+ : S H O W M O D E
+ ;
+
+SQLBLANKLINES
+ : S Q L B L A N K L I N E S
+ ;
+
+SQLBL
+ : S Q L B L
+ ;
+
+SQLCASE
+ : S Q L C A S E
+ ;
+
+SQLC
+ : S Q L C
+ ;
+
+SQLCONTINUE
+ : S Q L C O N T I N U E
+ ;
+
+SQLCO
+ : S Q L C O
+ ;
+
+SQLNUMBER
+ : S Q L N U M B E R
+ ;
+
+SQLN
+ : S Q L N
+ ;
+
+SQLPLUSCOMPATIBILITY
+ : S Q L P L U S C O M P A T I B I L I T Y
+ ;
+
+SQLPLUSCOMPAT
+ : S Q L P L U S C O M P A T
+ ;
+
+SQLPREFIX
+ : S Q L P R E F I X
+ ;
+
+SQLPRE
+ : S Q L P R E
+ ;
+
+SQLPROMPT
+ : S Q L P R O M P T
+ ;
+
+SQLP
+ : S Q L P
+ ;
+
+SQLTERMINATOR
+ : S Q L T E R M I N A T O R
+ ;
+
+SQLT
+ : S Q L T
+ ;
+
+STATEMENTCACHE
+ : S T A T E M E N T C A C H E
+ ;
+
+STATEMENTC
+ : S T A T E M E N T C
+ ;
+
+SUFFIX
+ : S U F F I X
+ ;
+
+SUF
+ : S U F
+ ;
+
+TAB
+ : T A B
+ ;
+
+TERMOUT
+ : T E R M O U T
+ ;
+
+TERM
+ : T E R M
+ ;
+
+TI
+ : T I
+ ;
+
+TIMING
+ : T I M I N G
+ ;
+
+TIMI
+ : T I M I
+ ;
+
+TRIMOUT
+ : T R I M O U T
+ ;
+
+TRIMSPOOL
+ : T R I M S P O O L
+ ;
+
+TRIMS
+ : T R I M S
+ ;
+
+UNDERLINE
+ : U N D E R L I N E
+ ;
+
+UND
+ : U N D
+ ;
+
+VERIFY
+ : V E R I F Y
+ ;
+
+VER
+ : V E R
+ ;
+
+WRAP
+ : W R A P
+ ;
+
+WRA
+ : W R A
+ ;
+
+XMLOPTIMIZATIONCHECK
+ : X M L O P T I M I Z A T I O N C H E C K
+ ;
+
+XMLOPT
+ : X M L O P T
+ ;
+
+XQUERY
+ : X Q U E R Y
+ ;