From 3f0c7e656205ab5cfe456307241bd039ea20f047 Mon Sep 17 00:00:00 2001 From: Ken Domino Date: Thu, 19 Dec 2024 15:27:00 -0500 Subject: [PATCH] [plsql] Fix for 4357 (#4359) * Fix for 4357. * Fixed bad changes for PR. * I didn't check in the right grammar change! * I didn't check in the right example, either! * Added the "no ambiguity" example. --- sql/plsql/PlSqlParser.g4 | 2 +- sql/plsql/examples/4357-not-ambig.sql | 1 + sql/plsql/examples/4357.sql | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 sql/plsql/examples/4357-not-ambig.sql create mode 100644 sql/plsql/examples/4357.sql diff --git a/sql/plsql/PlSqlParser.g4 b/sql/plsql/PlSqlParser.g4 index 44785afbff..ae2c416226 100644 --- a/sql/plsql/PlSqlParser.g4 +++ b/sql/plsql/PlSqlParser.g4 @@ -7400,7 +7400,7 @@ constant | MINUTE | SECOND ) ('(' (UNSIGNED_INTEGER | bind_variable) (',' (UNSIGNED_INTEGER | bind_variable))? ')')? ( - TO (DAY | HOUR | MINUTE | SECOND ('(' (UNSIGNED_INTEGER | bind_variable) ')')?) + TO (MONTH | DAY | HOUR | MINUTE | SECOND ('(' (UNSIGNED_INTEGER | bind_variable) ')')?) )? | numeric | DATE quoted_string diff --git a/sql/plsql/examples/4357-not-ambig.sql b/sql/plsql/examples/4357-not-ambig.sql new file mode 100644 index 0000000000..540e733dce --- /dev/null +++ b/sql/plsql/examples/4357-not-ambig.sql @@ -0,0 +1 @@ +select interval '0 02:30:00' day to second; \ No newline at end of file diff --git a/sql/plsql/examples/4357.sql b/sql/plsql/examples/4357.sql new file mode 100644 index 0000000000..5b83cbc3bc --- /dev/null +++ b/sql/plsql/examples/4357.sql @@ -0,0 +1,6 @@ +CREATE TABLE CUSTOMERS_TEST ( + id NUMBER PRIMARY KEY, + CUSTOMER_MEMBERSHIP_DURATION INTERVAL YEAR TO MONTH, + CUSTOMER_CALL_DURATION INTERVAL DAY TO SECOND(2) +); +INSERT INTO CUSTOMERS_TEST (ID,CUSTOMER_MEMBERSHIP_DURATION,CUSTOMER_CALL_DURATION) VALUES (1, INTERVAL '1-6' YEAR TO MONTH, INTERVAL '0 02:30:00' DAY TO SECOND(2));