You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2018/07/11 20:11:34 UTC
[1/2] trafodion git commit: [TRAFODION-3131] Fix some reserved and
non-reserved word issues
Repository: trafodion
Updated Branches:
refs/heads/master 62353a2cd -> b4236db2c
[TRAFODION-3131] Fix some reserved and non-reserved word issues
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/8ed5ca20
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/8ed5ca20
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/8ed5ca20
Branch: refs/heads/master
Commit: 8ed5ca2070d28e6a331ded03ea1a02af5e15c932
Parents: d5b1668
Author: Dave Birdsall <db...@apache.org>
Authored: Tue Jul 10 21:51:28 2018 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Tue Jul 10 21:51:28 2018 +0000
----------------------------------------------------------------------
core/sql/common/ComResWords.cpp | 2 -
core/sql/common/NAString.cpp | 7 +-
core/sql/parser/ParKeyWords.cpp | 40 ++
core/sql/regress/core/EXPECTED037.SB | 876 +++++++++++++++++++++++++-----
core/sql/regress/core/TEST037 | 20 -
5 files changed, 790 insertions(+), 155 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/8ed5ca20/core/sql/common/ComResWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/ComResWords.cpp b/core/sql/common/ComResWords.cpp
index 8796f6b..49a66f9 100644
--- a/core/sql/common/ComResWords.cpp
+++ b/core/sql/common/ComResWords.cpp
@@ -242,7 +242,6 @@ const ComResWord ComResWords::resWords_[] = {
ComResWord("NATURAL", ANS_|RESWORD_),
ComResWord("NCHAR", ANS_|RESWORD_),
ComResWord("NCLOB", COMPAQ_|RESWORD_),
- ComResWord("NEW", POTANS_|RESWORD_|ALLOWOLDNEW_),
ComResWord("NEXT", ANS_|RESWORD_),
ComResWord("NO", ANS_|RESWORD_),
ComResWord("NONE", POTANS_|RESWORD_),
@@ -254,7 +253,6 @@ const ComResWord ComResWords::resWords_[] = {
ComResWord("OCTET_LENGTH", ANS_|RESWORD_),
ComResWord("OF", ANS_|RESWORD_|MPWORD_),
ComResWord("OFF", POTANS_|RESWORD_),
- ComResWord("OLD", POTANS_|RESWORD_|ALLOWOLDNEW_),
ComResWord("ON", ANS_|RESWORD_|MPWORD_),
ComResWord("ONLY", ANS_|RESWORD_),
ComResWord("OPEN", ANS_|RESWORD_|MPWORD_),
http://git-wip-us.apache.org/repos/asf/trafodion/blob/8ed5ca20/core/sql/common/NAString.cpp
----------------------------------------------------------------------
diff --git a/core/sql/common/NAString.cpp b/core/sql/common/NAString.cpp
index 5733837..c2c8d47 100644
--- a/core/sql/common/NAString.cpp
+++ b/core/sql/common/NAString.cpp
@@ -377,7 +377,7 @@ NAString LookupDefineName(const NAString &ns, NABoolean iterate)
// an ANSI, PotentialANSI, or Tandem reserved word.
NABoolean IsSqlReservedWord(const char *sqlText)
{
- return FALSE;
+ return ComResWords::isSqlReservedWord(sqlText,FALSE,0);
}
NABoolean IsCIdentifier(const char *id)
@@ -1137,6 +1137,7 @@ static NABoolean tokIsFuncOrParenKeyword(const NAString &sqlText,
"COS ", // Tandem-extension
"COSH ", // Tandem-extension
"COUNT ", // ANSI
+ "CRC32 ", // Trafodion extension
"CURDATE ", // Tandem-extension
"CURRENT ", // ANSI
"CURRENT_DATE ", // ANSI
@@ -1175,6 +1176,7 @@ static NABoolean tokIsFuncOrParenKeyword(const NAString &sqlText,
"LPAD ", // Tandem-extension
"LTRIM ", // Tandem-extension
"MAX ", // ANSI
+ "MD5 ", // Trafodion extension
"MIN ", // ANSI
"MINUTE ", // Datatype with scales/precisions/length
"MOD ", // Tandem-extension
@@ -1201,6 +1203,9 @@ static NABoolean tokIsFuncOrParenKeyword(const NAString &sqlText,
"RTRIM ", // Tandem-extension
"SECOND ", // Datatype with scales/precisions/length
"SESSION_USER ", // ANSI
+ "SHA ", // Trafodion extension
+ "SHA1 ", // Trafodion extension
+ "SHA2 ", // Trafodion extension
"SIGN ", // Tandem-extension
"SIN ", // Tandem-extension
"SINH ", // Tandem-extension
http://git-wip-us.apache.org/repos/asf/trafodion/blob/8ed5ca20/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ParKeyWords.cpp b/core/sql/parser/ParKeyWords.cpp
index 1e8b936..b8df6d3 100644
--- a/core/sql/parser/ParKeyWords.cpp
+++ b/core/sql/parser/ParKeyWords.cpp
@@ -42,6 +42,46 @@
// key words.
// 001103 EJF
+// Important notes for developers:
+//
+// If you are adding a keyword to Trafodion, you need to do the following:
+//
+// 1. Add it to the keyword table below. Use the appropriate flags in the
+// ParKeyWord object for your new keyword. (Note: Today the RESWORD_,
+// NONRESWORD_ and NONRESTOKEN_ flags are almost purely for documentation;
+// the real determination of whether a keyword is reserved or not depends
+// on how it is used in sqlparser.y. See point 3 below. Nevertheless,
+// it is useful documentation, and it might be used in the future, so
+// do try to get this right.)
+// 2. Add a token definition for it to the parser (sqlparser.y). Add
+// and/or change any productions as needed to use your new token.
+// 3. If your new keyword is *not* a reserved word (which is the usual case),
+// add it to the appropriate non-reserved word production in the parser.
+// That will allow the keyword to be used as a regular identifier in
+// contexts where keyword behavior is not intended. This avoids regressing
+// customer applications that might already be using that keyword as a
+// regular identifier. See sqlparser.y, productions nonreserved_word and
+// nonreserved_func_word.
+// 4. If your new keyword *is* a reserved word (this case should be rare),
+// add your keyword to the list of reserved words in ComResWords::resWords_
+// in common/ComResWords.cpp. This is important so that when an internal
+// representation of your keyword is used as an identifier, it will get
+// double quotes when converted to an external identifier. Failing to do
+// this will cause errors in some statements if your new keyword is used
+// as a delimited identifier.
+// 5. If your new keyword commonly has a parenthesis after it, and it is
+// most natural for the parenthesis to be placed right after the keyword
+// (as opposed to having a space between keyword and paranthesis), then
+// add it to the keywords table in function tokIsFuncOrParenKeyword in
+// common/NAString.cpp. An example of this case is a new function name.
+// If my new function is XYZ, it looks more natural to generate XYZ(1)
+// rather than XYZ (1) in generated SQL text. An example of a case where
+// you would *not* want to do this might be adding a new logical operator
+// such as XOR. (A OR B) XOR (C OR D) looks more natural than
+// (A OR B) XOR(C OR D). This is really an issue of esthetics rather than
+// correctness so this is not as critical as the previous four points.
+// 6. Add test cases to regress/core/TEST037 of your new keyword.
+
// The keyword table:
//
ParKeyWord ParKeyWords::keyWords_[] = {
http://git-wip-us.apache.org/repos/asf/trafodion/blob/8ed5ca20/core/sql/regress/core/EXPECTED037.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/core/EXPECTED037.SB b/core/sql/regress/core/EXPECTED037.SB
index a414e94..a14770c 100755
--- a/core/sql/regress/core/EXPECTED037.SB
+++ b/core/sql/regress/core/EXPECTED037.SB
@@ -38,7 +38,6 @@
+>, CONSTRAINT_SCHEMA int not null
+>, CONTROL int not null
+>, CURSOR_NAME int not null
-+>, CRC32 int not null
+>, DATA int not null
+>--,DATETIME int not null
+>, DATETIME_CODE int not null
@@ -76,7 +75,7 @@
>>invoke table_name;
-- Definition of Trafodion table TRAFODION.SCH.TABLE_NAME
--- Definition current Tue May 22 16:42:26 2018
+-- Definition current Tue Jul 10 20:07:07 2018
(
SYSKEY LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -116,7 +115,6 @@
, CONSTRAINT_SCHEMA INT NO DEFAULT NOT NULL NOT DROPPABLE
, CONTROL INT NO DEFAULT NOT NULL NOT DROPPABLE
, CURSOR_NAME INT NO DEFAULT NOT NULL NOT DROPPABLE
- , CRC32 INT NO DEFAULT NOT NULL NOT DROPPABLE
, DATA INT NO DEFAULT NOT NULL NOT DROPPABLE
, DATETIME_CODE INT NO DEFAULT NOT NULL NOT DROPPABLE
, DCOMPRESS INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -162,7 +160,6 @@
+>, LOW_VALUE int not null
+>, MAXSIZE int not null
+>, MBYTES int not null
-+>, MD5 int not null
+>, MESSAGE_LEN int not null
+>, MESSAGE_OCTET_LEN int not null
+>, MESSAGE_TEXT int not null
@@ -195,9 +192,6 @@
+>, SERIALIZABLE int not null
+>, SERIALWRITES int not null
+>, SERVER_NAME int not null
-+>, SHA int not null
-+>, SHA1 int not null
-+>, SHA2 int not null
+>, SHAPE int not null
+>, SHARE int not null
+>, SIDEINSERTS int not null
@@ -230,7 +224,7 @@
>>invoke system_name;
-- Definition of Trafodion table TRAFODION.SCH.SYSTEM_NAME
--- Definition current Tue May 22 16:42:31 2018
+-- Definition current Tue Jul 10 20:07:12 2018
(
SYSKEY LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -246,7 +240,6 @@
, LOW_VALUE INT NO DEFAULT NOT NULL NOT DROPPABLE
, MAXSIZE INT NO DEFAULT NOT NULL NOT DROPPABLE
, MBYTES INT NO DEFAULT NOT NULL NOT DROPPABLE
- , MD5 INT NO DEFAULT NOT NULL NOT DROPPABLE
, MESSAGE_LEN INT NO DEFAULT NOT NULL NOT DROPPABLE
, MESSAGE_OCTET_LEN INT NO DEFAULT NOT NULL NOT DROPPABLE
, MESSAGE_TEXT INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -279,9 +272,6 @@
, SERIALIZABLE INT NO DEFAULT NOT NULL NOT DROPPABLE
, SERIALWRITES INT NO DEFAULT NOT NULL NOT DROPPABLE
, SERVER_NAME INT NO DEFAULT NOT NULL NOT DROPPABLE
- , SHA INT NO DEFAULT NOT NULL NOT DROPPABLE
- , SHA1 INT NO DEFAULT NOT NULL NOT DROPPABLE
- , SHA2 INT NO DEFAULT NOT NULL NOT DROPPABLE
, SHAPE INT NO DEFAULT NOT NULL NOT DROPPABLE
, SHARE INT NO DEFAULT NOT NULL NOT DROPPABLE
, SIDEINSERTS INT NO DEFAULT NOT NULL NOT DROPPABLE
@@ -368,9 +358,14 @@ create view sqlerror as select usa from table_name;
>>create view sqlstate as select usa from table_name;
-*** ERROR[4001] Column USA is not found. Tables in scope: TRAFODION.SCH.TABLE_NAME. Default schema: TRAFODION.SCH.
+*** ERROR[3128] SQLSTATE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+create view sqlstate as select usa from table_name;
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
---- SQL operation failed with errors.
>>create view stddev as select usa from table_name;
*** ERROR[4001] Column USA is not found. Tables in scope: TRAFODION.SCH.TABLE_NAME. Default schema: TRAFODION.SCH.
@@ -386,9 +381,14 @@ create view table as select usa from table_name;
>>create view upshift as select usa from table_name;
-*** ERROR[4001] Column USA is not found. Tables in scope: TRAFODION.SCH.TABLE_NAME. Default schema: TRAFODION.SCH.
+*** ERROR[3128] UPSHIFT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+create view upshift as select usa from table_name;
+ ^ (19 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
---- SQL operation failed with errors.
>>create view variance as select usa from table_name;
*** ERROR[4001] Column USA is not found. Tables in scope: TRAFODION.SCH.TABLE_NAME. Default schema: TRAFODION.SCH.
@@ -408,27 +408,62 @@ create view table as select usa from table_name;
>>-- Expect error [3128]
>>prepare s1 from SELECT AFTER AFTER from (values(0)) AFTER(AFTER);
---- SQL command prepared.
+*** ERROR[3128] AFTER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT AFTER AFTER from (values(0)) AFTER(AFTER);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT ASYNC ASYNC from (values(0)) ASYNC(ASYNC);
---- SQL command prepared.
+*** ERROR[3128] ASYNC is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT ASYNC ASYNC from (values(0)) ASYNC(ASYNC);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT AT AT from (values(0)) AT(AT);
---- SQL command prepared.
+*** ERROR[3128] AT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT AT AT from (values(0)) AT(AT);
+ ^ (12 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT BEFORE BEFORE from (values(0)) BEFORE(BEFORE);
---- SQL command prepared.
+*** ERROR[3128] BEFORE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT BEFORE BEFORE from (values(0)) BEFORE(BEFORE);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT BIT_LENGTH BIT_LENGTH from (values(0)) BIT_LENGTH(BIT_LENGTH);
---- SQL command prepared.
+*** ERROR[3128] BIT_LENGTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT BIT_LENGTH BIT_LENGTH from (values(0)) BIT_LENGTH(BIT_LENGTH);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [15001]
>>prepare s1 from SELECT BOOLEAN BOOLEAN from (values(0)) BOOLEAN(BOOLEAN);
@@ -443,72 +478,170 @@ SELECT BOOLEAN BOOLEAN from (values(0)) BOOLEAN(BOOLEAN);
>>-- Expect error [3128]
>>prepare s1 from SELECT BREADTH BREADTH from (values(0)) BREADTH(BREADTH);
---- SQL command prepared.
+*** ERROR[3128] BREADTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT BREADTH BREADTH from (values(0)) BREADTH(BREADTH);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT COMPLETION COMPLETION from (values(0)) COMPLETION(COMPLETION);
---- SQL command prepared.
+*** ERROR[3128] COMPLETION is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT COMPLETION COMPLETION from (values(0)) COMPLETION(COMPLETION);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT CONNECT CONNECT from (values(0)) CONNECT(CONNECT);
---- SQL command prepared.
+*** ERROR[3128] CONNECT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT CONNECT CONNECT from (values(0)) CONNECT(CONNECT);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT CYCLE CYCLE from (values(0)) CYCLE(CYCLE);
---- SQL command prepared.
+*** ERROR[3128] CYCLE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT CYCLE CYCLE from (values(0)) CYCLE(CYCLE);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DEFERRABLE DEFERRABLE from (values(0)) DEFERRABLE(DEFERRABLE);
---- SQL command prepared.
+*** ERROR[3128] DEFERRABLE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DEFERRABLE DEFERRABLE from (values(0)) DEFERRABLE(DEFERRABLE);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DEFERRED DEFERRED from (values(0)) DEFERRED(DEFERRED);
---- SQL command prepared.
+*** ERROR[3128] DEFERRED is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DEFERRED DEFERRED from (values(0)) DEFERRED(DEFERRED);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DEPTH DEPTH from (values(0)) DEPTH(DEPTH);
---- SQL command prepared.
+*** ERROR[3128] DEPTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DEPTH DEPTH from (values(0)) DEPTH(DEPTH);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DICTIONARY DICTIONARY from (values(0)) DICTIONARY(DICTIONARY);
---- SQL command prepared.
+*** ERROR[3128] DICTIONARY is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DICTIONARY DICTIONARY from (values(0)) DICTIONARY(DICTIONARY);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DISCONNECT DISCONNECT from (values(0)) DISCONNECT(DISCONNECT);
---- SQL command prepared.
+*** ERROR[3128] DISCONNECT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DISCONNECT DISCONNECT from (values(0)) DISCONNECT(DISCONNECT);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DOMAIN DOMAIN from (values(0)) DOMAIN(DOMAIN);
---- SQL command prepared.
+*** ERROR[3128] DOMAIN is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DOMAIN DOMAIN from (values(0)) DOMAIN(DOMAIN);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT EACH EACH from (values(0)) EACH(EACH);
---- SQL command prepared.
+*** ERROR[3128] EACH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT EACH EACH from (values(0)) EACH(EACH);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT EQUALS EQUALS from (values(0)) EQUALS(EQUALS);
---- SQL command prepared.
+*** ERROR[3128] EQUALS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT EQUALS EQUALS from (values(0)) EQUALS(EQUALS);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT EXEC EXEC from (values(0)) EXEC(EXEC);
---- SQL command prepared.
+*** ERROR[3128] EXEC is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT EXEC EXEC from (values(0)) EXEC(EXEC);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT GENERAL GENERAL from (values(0)) GENERAL(GENERAL);
---- SQL command prepared.
+*** ERROR[3128] GENERAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT GENERAL GENERAL from (values(0)) GENERAL(GENERAL);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect SYNTAX error now that we use IDENTITY as a token
>>prepare s1 from SELECT IDENTITY IDENTITY from (values(0)) IDENTITY(IDENTITY);
@@ -523,22 +656,50 @@ SELECT IDENTITY IDENTITY from (values(0)) IDENTITY(IDENTITY);
>>-- Expect error [3128]
>>prepare s1 from SELECT INITIALLY INITIALLY from (values(0)) INITIALLY(INITIALLY);
---- SQL command prepared.
+*** ERROR[3128] INITIALLY is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT INITIALLY INITIALLY from (values(0)) INITIALLY(INITIALLY);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT INSENSITIVE INSENSITIVE from (values(0)) INSENSITIVE(INSENSITIVE);
---- SQL command prepared.
+*** ERROR[3128] INSENSITIVE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT INSENSITIVE INSENSITIVE from (values(0)) INSENSITIVE(INSENSITIVE);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT LEAVE LEAVE from (values(0)) LEAVE(LEAVE);
---- SQL command prepared.
+*** ERROR[3128] LEAVE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT LEAVE LEAVE from (values(0)) LEAVE(LEAVE);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT LESS LESS from (values(0)) LESS(LESS);
---- SQL command prepared.
+*** ERROR[3128] LESS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT LESS LESS from (values(0)) LESS(LESS);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect syntax error, LIMIT must be double quoted.
>>prepare s1 from SELECT LIMIT LIMIT from (values(0)) LIMIT(LIMIT);
@@ -553,12 +714,26 @@ SELECT LIMIT LIMIT from (values(0)) LIMIT(LIMIT);
>>-- Expect error [3128]
>>prepare s1 from SELECT LOOP LOOP from (values(0)) LOOP(LOOP);
---- SQL command prepared.
+*** ERROR[3128] LOOP is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT LOOP LOOP from (values(0)) LOOP(LOOP);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT MODIFY MODIFY from (values(0)) MODIFY(MODIFY);
---- SQL command prepared.
+*** ERROR[3128] MODIFY is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT MODIFY MODIFY from (values(0)) MODIFY(MODIFY);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT NEW NEW from (values(0)) NEW(NEW);
@@ -568,7 +743,14 @@ SELECT LIMIT LIMIT from (values(0)) LIMIT(LIMIT);
>>-- Expect error [3128]
>>prepare s1 from SELECT NEXT NEXT from (values(0)) NEXT(NEXT);
---- SQL command prepared.
+*** ERROR[3128] NEXT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT NEXT NEXT from (values(0)) NEXT(NEXT);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [15001]
>>prepare s1 from SELECT NONE NONE from (values(0)) NONE(NONE);
@@ -583,7 +765,14 @@ SELECT NONE NONE from (values(0)) NONE(NONE);
>>-- Expect error [3128]
>>prepare s1 from SELECT OBJECT OBJECT from (values(0)) OBJECT(OBJECT);
---- SQL command prepared.
+*** ERROR[3128] OBJECT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT OBJECT OBJECT from (values(0)) OBJECT(OBJECT);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT OID OID from (values(0)) OID(OID);
@@ -598,47 +787,110 @@ SELECT NONE NONE from (values(0)) NONE(NONE);
>>-- Expect error [3128]
>>prepare s1 from SELECT OPERATORS OPERATORS from (values(0)) OPERATORS(OPERATORS);
---- SQL command prepared.
+*** ERROR[3128] OPERATORS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT OPERATORS OPERATORS from (values(0)) OPERATORS(OPERATORS);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT OTHERS OTHERS from (values(0)) OTHERS(OTHERS);
---- SQL command prepared.
+*** ERROR[3128] OTHERS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT OTHERS OTHERS from (values(0)) OTHERS(OTHERS);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PAD PAD from (values(0)) PAD(PAD);
---- SQL command prepared.
+*** ERROR[3128] PAD is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PAD PAD from (values(0)) PAD(PAD);
+ ^ (14 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PARAMETERS PARAMETERS from (values(0)) PARAMETERS(PARAMETERS);
---- SQL command prepared.
+*** ERROR[3128] PARAMETERS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PARAMETERS PARAMETERS from (values(0)) PARAMETERS(PARAMETERS);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PENDANT PENDANT from (values(0)) PENDANT(PENDANT);
---- SQL command prepared.
+*** ERROR[3128] PENDANT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PENDANT PENDANT from (values(0)) PENDANT(PENDANT);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PREORDER PREORDER from (values(0)) PREORDER(PREORDER);
---- SQL command prepared.
+*** ERROR[3128] PREORDER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PREORDER PREORDER from (values(0)) PREORDER(PREORDER);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PRESERVE PRESERVE from (values(0)) PRESERVE(PRESERVE);
---- SQL command prepared.
+*** ERROR[3128] PRESERVE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PRESERVE PRESERVE from (values(0)) PRESERVE(PRESERVE);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PRIOR PRIOR from (values(0)) PRIOR(PRIOR);
---- SQL command prepared.
+*** ERROR[3128] PRIOR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PRIOR PRIOR from (values(0)) PRIOR(PRIOR);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PRIVATE PRIVATE from (values(0)) PRIVATE(PRIVATE);
---- SQL command prepared.
+*** ERROR[3128] PRIVATE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PRIVATE PRIVATE from (values(0)) PRIVATE(PRIVATE);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [15001]
>>prepare s1 from SELECT PROTECTED PROTECTED from (values(0)) PROTECTED(PROTECTED);
@@ -653,32 +905,74 @@ SELECT PROTECTED PROTECTED from (values(0)) PROTECTED(PROTECTED);
>>-- Expect error [3128]
>>prepare s1 from SELECT REF REF from (values(0)) REF(REF);
---- SQL command prepared.
+*** ERROR[3128] REF is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT REF REF from (values(0)) REF(REF);
+ ^ (14 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT REFERENCING REFERENCING from (values(0)) REFERENCING(REFERENCING);
---- SQL command prepared.
+*** ERROR[3128] REFERENCING is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT REFERENCING REFERENCING from (values(0)) REFERENCING(REFERENCING);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT RELATIVE RELATIVE from (values(0)) RELATIVE(RELATIVE);
---- SQL command prepared.
+*** ERROR[3128] RELATIVE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT RELATIVE RELATIVE from (values(0)) RELATIVE(RELATIVE);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT RESIGNAL RESIGNAL from (values(0)) RESIGNAL(RESIGNAL);
---- SQL command prepared.
+*** ERROR[3128] RESIGNAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT RESIGNAL RESIGNAL from (values(0)) RESIGNAL(RESIGNAL);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT RETURNS RETURNS from (values(0)) RETURNS(RETURNS);
---- SQL command prepared.
+*** ERROR[3128] RETURNS is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT RETURNS RETURNS from (values(0)) RETURNS(RETURNS);
+ ^ (14 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT ROUTINE ROUTINE from (values(0)) ROUTINE(ROUTINE);
---- SQL command prepared.
+*** ERROR[3128] ROUTINE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT ROUTINE ROUTINE from (values(0)) ROUTINE(ROUTINE);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT ROW ROW from (values(0)) ROW(ROW);
@@ -693,57 +987,134 @@ SELECT ROW ROW from (values(0)) ROW(ROW);
>>-- Expect error [3128]
>>prepare s1 from SELECT SAVEPOINT SAVEPOINT from (values(0)) SAVEPOINT(SAVEPOINT);
---- SQL command prepared.
+*** ERROR[3128] SAVEPOINT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SAVEPOINT SAVEPOINT from (values(0)) SAVEPOINT(SAVEPOINT);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SCROLL SCROLL from (values(0)) SCROLL(SCROLL);
---- SQL command prepared.
+*** ERROR[3128] SCROLL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SCROLL SCROLL from (values(0)) SCROLL(SCROLL);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SEARCH SEARCH from (values(0)) SEARCH(SEARCH);
---- SQL command prepared.
+*** ERROR[3128] SEARCH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SEARCH SEARCH from (values(0)) SEARCH(SEARCH);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SENSITIVE SENSITIVE from (values(0)) SENSITIVE(SENSITIVE);
---- SQL command prepared.
+*** ERROR[3128] SENSITIVE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SENSITIVE SENSITIVE from (values(0)) SENSITIVE(SENSITIVE);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SIGNAL SIGNAL from (values(0)) SIGNAL(SIGNAL);
---- SQL command prepared.
+*** ERROR[3128] SIGNAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SIGNAL SIGNAL from (values(0)) SIGNAL(SIGNAL);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SIMILAR SIMILAR from (values(0)) SIMILAR(SIMILAR);
---- SQL command prepared.
+*** ERROR[3128] SIMILAR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SIMILAR SIMILAR from (values(0)) SIMILAR(SIMILAR);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQLEXCEPTION SQLEXCEPTION from (values(0)) SQLEXCEPTION(SQLEXCEPTION);
---- SQL command prepared.
+*** ERROR[3128] SQLEXCEPTION is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQLEXCEPTION SQLEXCEPTION from (values(0)) SQLEXCEPTION(SQLEXCEPTION);
+ ^ (32 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQLSTATE SQLSTATE from (values(0)) SQLSTATE(SQLSTATE);
---- SQL command prepared.
+*** ERROR[3128] SQLSTATE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQLSTATE SQLSTATE from (values(0)) SQLSTATE(SQLSTATE);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQLWARNING SQLWARNING from (values(0)) SQLWARNING(SQLWARNING);
---- SQL command prepared.
+*** ERROR[3128] SQLWARNING is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQLWARNING SQLWARNING from (values(0)) SQLWARNING(SQLWARNING);
+ ^ (28 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT STRUCTURE STRUCTURE from (values(0)) STRUCTURE(STRUCTURE);
---- SQL command prepared.
+*** ERROR[3128] STRUCTURE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT STRUCTURE STRUCTURE from (values(0)) STRUCTURE(STRUCTURE);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SYSTEM_USER SYSTEM_USER from (values(0)) SYSTEM_USER(SYSTEM_USER);
---- SQL command prepared.
+*** ERROR[3128] SYSTEM_USER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SYSTEM_USER SYSTEM_USER from (values(0)) SYSTEM_USER(SYSTEM_USER);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TEMPORARY TEMPORARY from (values(0)) TEMPORARY(TEMPORARY);
@@ -758,37 +1129,86 @@ SELECT TEMPORARY TEMPORARY from (values(0)) TEMPORARY(TEMPORARY);
>>-- Expect error [3128]
>>prepare s1 from SELECT TEST TEST from (values(0)) TEST(TEST);
---- SQL command prepared.
+*** ERROR[3128] TEST is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TEST TEST from (values(0)) TEST(TEST);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT THERE THERE from (values(0)) THERE(THERE);
---- SQL command prepared.
+*** ERROR[3128] THERE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT THERE THERE from (values(0)) THERE(THERE);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TIMEZONE_HOUR TIMEZONE_HOUR from (values(0)) TIMEZONE_HOUR(TIMEZONE_HOUR);
---- SQL command prepared.
+*** ERROR[3128] TIMEZONE_HOUR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TIMEZONE_HOUR TIMEZONE_HOUR from (values(0)) TIMEZONE_HOUR(TIMEZONE_HOUR
+ ^ (34 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TIMEZONE_MINUTE TIMEZONE_MINUTE from (values(0)) TIMEZONE_MINUTE(TIMEZONE_MINUTE);
---- SQL command prepared.
+*** ERROR[3128] TIMEZONE_MINUTE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TIMEZONE_MINUTE TIMEZONE_MINUTE from (values(0)) TIMEZONE_MINUTE(TIMEZON
+ ^ (38 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TRANSLATION TRANSLATION from (values(0)) TRANSLATION(TRANSLATION);
---- SQL command prepared.
+*** ERROR[3128] TRANSLATION is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TRANSLATION TRANSLATION from (values(0)) TRANSLATION(TRANSLATION);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TRIGGER TRIGGER from (values(0)) TRIGGER(TRIGGER);
---- SQL command prepared.
+*** ERROR[3128] TRIGGER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TRIGGER TRIGGER from (values(0)) TRIGGER(TRIGGER);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT UNDER UNDER from (values(0)) UNDER(UNDER);
---- SQL command prepared.
+*** ERROR[3128] UNDER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT UNDER UNDER from (values(0)) UNDER(UNDER);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT USAGE USAGE from (values(0)) USAGE(USAGE);
@@ -803,152 +1223,362 @@ SELECT USAGE USAGE from (values(0)) USAGE(USAGE);
>>-- Expect error [3128]
>>prepare s1 from SELECT VARIABLE VARIABLE from (values(0)) VARIABLE(VARIABLE);
---- SQL command prepared.
+*** ERROR[3128] VARIABLE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT VARIABLE VARIABLE from (values(0)) VARIABLE(VARIABLE);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT VIRTUAL VIRTUAL from (values(0)) VIRTUAL(VIRTUAL);
---- SQL command prepared.
+*** ERROR[3128] VIRTUAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT VIRTUAL VIRTUAL from (values(0)) VIRTUAL(VIRTUAL);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT VISIBLE VISIBLE from (values(0)) VISIBLE(VISIBLE);
---- SQL command prepared.
+*** ERROR[3128] VISIBLE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT VISIBLE VISIBLE from (values(0)) VISIBLE(VISIBLE);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT WAIT WAIT from (values(0)) WAIT(WAIT);
---- SQL command prepared.
+*** ERROR[3128] WAIT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT WAIT WAIT from (values(0)) WAIT(WAIT);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT WHILE WHILE from (values(0)) WHILE(WHILE);
---- SQL command prepared.
+*** ERROR[3128] WHILE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT WHILE WHILE from (values(0)) WHILE(WHILE);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT ZONE ZONE from (values(0)) ZONE(ZONE);
---- SQL command prepared.
+*** ERROR[3128] ZONE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT ZONE ZONE from (values(0)) ZONE(ZONE);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT CAST CAST from (values(0)) CAST(CAST);
---- SQL command prepared.
+*** ERROR[3128] CAST is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT CAST CAST from (values(0)) CAST(CAST);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT CHARACTER_LENGTH CHARACTER_LENGTH from (values(0)) CHARACTER_LENGTH(CHARACTER_LENGTH);
---- SQL command prepared.
+*** ERROR[3128] CHARACTER_LENGTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT CHARACTER_LENGTH CHARACTER_LENGTH from (values(0)) CHARACTER_LENGTH(CHAR
+ ^ (40 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT CHAR_LENGTH CHAR_LENGTH from (values(0)) CHAR_LENGTH(CHAR_LENGTH);
---- SQL command prepared.
+*** ERROR[3128] CHAR_LENGTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT CHAR_LENGTH CHAR_LENGTH from (values(0)) CHAR_LENGTH(CHAR_LENGTH);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT DOUBLE DOUBLE from (values(0)) DOUBLE(DOUBLE);
---- SQL command prepared.
+*** ERROR[3128] DOUBLE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT DOUBLE DOUBLE from (values(0)) DOUBLE(DOUBLE);
+ ^ (20 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT ELSE ELSE from (values(0)) ELSE(ELSE);
---- SQL command prepared.
+*** ERROR[3128] ELSE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT ELSE ELSE from (values(0)) ELSE(ELSE);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT END END from (values(0)) END(END);
---- SQL command prepared.
+*** ERROR[3128] END is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT END END from (values(0)) END(END);
+ ^ (14 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT FLOAT FLOAT from (values(0)) FLOAT(FLOAT);
---- SQL command prepared.
+*** ERROR[3128] FLOAT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT FLOAT FLOAT from (values(0)) FLOAT(FLOAT);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT LOWER LOWER from (values(0)) LOWER(LOWER);
---- SQL command prepared.
+*** ERROR[3128] LOWER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT LOWER LOWER from (values(0)) LOWER(LOWER);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT MIN MIN from (values(0)) MIN(MIN);
---- SQL command prepared.
+*** ERROR[3128] MIN is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT MIN MIN from (values(0)) MIN(MIN);
+ ^ (14 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT NATIONAL NATIONAL from (values(0)) NATIONAL(NATIONAL);
---- SQL command prepared.
+*** ERROR[3128] NATIONAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT NATIONAL NATIONAL from (values(0)) NATIONAL(NATIONAL);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT NCHAR NCHAR from (values(0)) NCHAR(NCHAR);
---- SQL command prepared.
+*** ERROR[3128] NCHAR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT NCHAR NCHAR from (values(0)) NCHAR(NCHAR);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT OCTET_LENGTH OCTET_LENGTH from (values(0)) OCTET_LENGTH(OCTET_LENGTH);
---- SQL command prepared.
+*** ERROR[3128] OCTET_LENGTH is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT OCTET_LENGTH OCTET_LENGTH from (values(0)) OCTET_LENGTH(OCTET_LENGTH);
+ ^ (32 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT POSITION POSITION from (values(0)) POSITION(POSITION);
---- SQL command prepared.
+*** ERROR[3128] POSITION is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT POSITION POSITION from (values(0)) POSITION(POSITION);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT PRECISION PRECISION from (values(0)) PRECISION(PRECISION);
---- SQL command prepared.
+*** ERROR[3128] PRECISION is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT PRECISION PRECISION from (values(0)) PRECISION(PRECISION);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT REAL REAL from (values(0)) REAL(REAL);
---- SQL command prepared.
+*** ERROR[3128] REAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT REAL REAL from (values(0)) REAL(REAL);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SUBSTRING SUBSTRING from (values(0)) SUBSTRING(SUBSTRING);
---- SQL command prepared.
+*** ERROR[3128] SUBSTRING is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SUBSTRING SUBSTRING from (values(0)) SUBSTRING(SUBSTRING);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQL_FLOAT SQL_FLOAT from (values(0)) SQL_FLOAT(SQL_FLOAT);
---- SQL command prepared.
+*** ERROR[3128] SQL_FLOAT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQL_FLOAT SQL_FLOAT from (values(0)) SQL_FLOAT(SQL_FLOAT);
+ ^ (26 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQL_REAL SQL_REAL from (values(0)) SQL_REAL(SQL_REAL);
---- SQL command prepared.
+*** ERROR[3128] SQL_REAL is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQL_REAL SQL_REAL from (values(0)) SQL_REAL(SQL_REAL);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT SQL_VARCHAR SQL_VARCHAR from (values(0)) SQL_VARCHAR(SQL_VARCHAR);
---- SQL command prepared.
+*** ERROR[3128] SQL_VARCHAR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT SQL_VARCHAR SQL_VARCHAR from (values(0)) SQL_VARCHAR(SQL_VARCHAR);
+ ^ (30 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT TRIM TRIM from (values(0)) TRIM(TRIM);
---- SQL command prepared.
+*** ERROR[3128] TRIM is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT TRIM TRIM from (values(0)) TRIM(TRIM);
+ ^ (16 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT UPPER UPPER from (values(0)) UPPER(UPPER);
---- SQL command prepared.
+*** ERROR[3128] UPPER is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT UPPER UPPER from (values(0)) UPPER(UPPER);
+ ^ (18 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT UPSHIFT UPSHIFT from (values(0)) UPSHIFT(UPSHIFT);
---- SQL command prepared.
+*** ERROR[3128] UPSHIFT is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT UPSHIFT UPSHIFT from (values(0)) UPSHIFT(UPSHIFT);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT VARCHAR VARCHAR from (values(0)) VARCHAR(VARCHAR);
---- SQL command prepared.
+*** ERROR[3128] VARCHAR is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT VARCHAR VARCHAR from (values(0)) VARCHAR(VARCHAR);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect error [3128]
>>prepare s1 from SELECT VARYING VARYING from (values(0)) VARYING(VARYING);
---- SQL command prepared.
+*** ERROR[3128] VARYING is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT VARYING VARYING from (values(0)) VARYING(VARYING);
+ ^ (22 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect SYNTAX error
>>prepare s1 from SELECT COLLATE COLLATE from (values(0)) COLLATE(COLLATE);
@@ -1593,7 +2223,14 @@ SELECT ISOLATION ISOLATION from (values(0)) ISOLATION(ISOLATION);
>>-- Expect SYNTAX error
>>prepare s1 from SELECT LANGUAGE LANGUAGE from (values(0)) LANGUAGE(LANGUAGE);
---- SQL command prepared.
+*** ERROR[3128] LANGUAGE is a reserved word. It must be delimited by double-quotes to be used as an identifier.
+
+*** ERROR[15001] A syntax error occurred at or before:
+SELECT LANGUAGE LANGUAGE from (values(0)) LANGUAGE(LANGUAGE);
+ ^ (24 characters from start of SQL statement)
+
+*** ERROR[8822] The statement was not prepared.
+
>>
>>-- Expect SYNTAX error
>>prepare s1 from SELECT LAST LAST from (values(0)) LAST(LAST);
@@ -3251,11 +3888,6 @@ SELECT WORK WORK from (values(0)) WORK(WORK);
--- SQL command prepared.
>>
>>-- Expect success
->>prepare s1 from SELECT CRC32 CRC32 from (values(0)) CRC32(CRC32);
-
---- SQL command prepared.
->>
->>-- Expect success
>>prepare s1 from SELECT CURDATE CURDATE from (values(0)) CURDATE(CURDATE);
--- SQL command prepared.
@@ -3691,11 +4323,6 @@ SELECT DUAL DUAL from (values(0)) DUAL(DUAL);
--- SQL command prepared.
>>
>>-- Expect success
->>prepare s1 from SELECT MD5 MD5 from (values(0)) MD5(MD5);
-
---- SQL command prepared.
->>
->>-- Expect success
>>prepare s1 from SELECT MAXSIZE MAXSIZE from (values(0)) MAXSIZE(MAXSIZE);
--- SQL command prepared.
@@ -4096,21 +4723,6 @@ SELECT DUAL DUAL from (values(0)) DUAL(DUAL);
--- SQL command prepared.
>>
>>-- Expect success
->>prepare s1 from SELECT SHA SHA from (values(0)) SHA(SHA);
-
---- SQL command prepared.
->>
->>-- Expect success
->>prepare s1 from SELECT SHA1 SHA1 from (values(0)) SHA1(SHA1);
-
---- SQL command prepared.
->>
->>-- Expect success
->>prepare s1 from SELECT SHA2 SHA2 from (values(0)) SHA2(SHA2);
-
---- SQL command prepared.
->>
->>-- Expect success
>>prepare s1 from SELECT SHAPE SHAPE from (values(0)) SHAPE(SHAPE);
--- SQL command prepared.
http://git-wip-us.apache.org/repos/asf/trafodion/blob/8ed5ca20/core/sql/regress/core/TEST037
----------------------------------------------------------------------
diff --git a/core/sql/regress/core/TEST037 b/core/sql/regress/core/TEST037
index 370554c..c7c51c5 100755
--- a/core/sql/regress/core/TEST037
+++ b/core/sql/regress/core/TEST037
@@ -80,7 +80,6 @@ create table table_name
, CONSTRAINT_SCHEMA int not null
, CONTROL int not null
, CURSOR_NAME int not null
-, CRC32 int not null
, DATA int not null
--,DATETIME int not null
, DATETIME_CODE int not null
@@ -127,7 +126,6 @@ create table system_name
, LOW_VALUE int not null
, MAXSIZE int not null
, MBYTES int not null
-, MD5 int not null
, MESSAGE_LEN int not null
, MESSAGE_OCTET_LEN int not null
, MESSAGE_TEXT int not null
@@ -160,9 +158,6 @@ create table system_name
, SERIALIZABLE int not null
, SERIALWRITES int not null
, SERVER_NAME int not null
-, SHA int not null
-, SHA1 int not null
-, SHA2 int not null
, SHAPE int not null
, SHARE int not null
, SIDEINSERTS int not null
@@ -1306,9 +1301,6 @@ prepare s1 from SELECT COSH COSH from (values(0)) COSH(COSH);
prepare s1 from SELECT COST COST from (values(0)) COST(COST);
-- Expect success
-prepare s1 from SELECT CRC32 CRC32 from (values(0)) CRC32(CRC32);
-
--- Expect success
prepare s1 from SELECT CURDATE CURDATE from (values(0)) CURDATE(CURDATE);
-- Expect success
@@ -1567,9 +1559,6 @@ prepare s1 from SELECT LTRIM LTRIM from (values(0)) LTRIM(LTRIM);
prepare s1 from SELECT M M from (values(0)) M(M);
-- Expect success
-prepare s1 from SELECT MD5 MD5 from (values(0)) MD5(MD5);
-
--- Expect success
prepare s1 from SELECT MAXSIZE MAXSIZE from (values(0)) MAXSIZE(MAXSIZE);
-- Expect success
@@ -1810,15 +1799,6 @@ prepare s1 from SELECT SERIALWRITES SERIALWRITES from (values(0)) SERIALWRITES(S
prepare s1 from SELECT SERVER_NAME SERVER_NAME from (values(0)) SERVER_NAME(SERVER_NAME);
-- Expect success
-prepare s1 from SELECT SHA SHA from (values(0)) SHA(SHA);
-
--- Expect success
-prepare s1 from SELECT SHA1 SHA1 from (values(0)) SHA1(SHA1);
-
--- Expect success
-prepare s1 from SELECT SHA2 SHA2 from (values(0)) SHA2(SHA2);
-
--- Expect success
prepare s1 from SELECT SHAPE SHAPE from (values(0)) SHAPE(SHAPE);
-- Expect success
[2/2] trafodion git commit: Merge [TRAFODION-3131] PR 1637 Fix some
reserved/non-reserved word issues
Posted by db...@apache.org.
Merge [TRAFODION-3131] PR 1637 Fix some reserved/non-reserved word issues
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/b4236db2
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/b4236db2
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/b4236db2
Branch: refs/heads/master
Commit: b4236db2cf78f4737c601e7198fe0327c85e6678
Parents: 62353a2 8ed5ca2
Author: Dave Birdsall <db...@apache.org>
Authored: Wed Jul 11 20:09:59 2018 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Wed Jul 11 20:09:59 2018 +0000
----------------------------------------------------------------------
core/sql/common/ComResWords.cpp | 2 -
core/sql/common/NAString.cpp | 7 +-
core/sql/parser/ParKeyWords.cpp | 40 ++
core/sql/regress/core/EXPECTED037.SB | 876 +++++++++++++++++++++++++-----
core/sql/regress/core/TEST037 | 20 -
5 files changed, 790 insertions(+), 155 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/b4236db2/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------