This is an automated email from the ASF dual-hosted git repository.

totalo 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 86a358740fa Fix PostgreSQL and openGauss time extract function parse 
error (#16879)
86a358740fa is described below

commit 86a358740fa8b933f4871b074ddc924962d0e400
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Sat Apr 16 20:37:40 2022 +0800

    Fix PostgreSQL and openGauss time extract function parse error (#16879)
    
    * Fix PostgreSQL and openGauss time extract function parse error
    
    * fix unit test
---
 .../src/main/antlr4/imports/opengauss/BaseRule.g4  |  3 ++
 .../src/main/antlr4/imports/postgresql/BaseRule.g4 |  3 ++
 .../resources/case/dml/select-special-function.xml | 14 ++++++
 .../sql/supported/dml/select-special-function.xml  |  1 +
 .../main/resources/sql/unsupported/unsupported.xml | 50 ----------------------
 5 files changed, 21 insertions(+), 50 deletions(-)

diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
index 516a33284d6..63c6091ce43 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
@@ -244,6 +244,7 @@ unreservedWord
     | INSERT
     | INSTEAD
     | INVOKER
+    | INTERVAL
     | ISOLATION
     | KEY
     | LABEL
@@ -395,6 +396,8 @@ unreservedWord
     | TRUSTED
     | TYPE
     | TYPES
+    | TIME
+    | TIMESTAMP
     | UESCAPE
     | UNBOUNDED
     | UNCOMMITTED
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
index 213bbe5e94a..43e8bbb550f 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
@@ -245,6 +245,7 @@ unreservedWord
     | INSERT
     | INSTEAD
     | INVOKER
+    | INTERVAL
     | ISOLATION
     | KEY
     | LABEL
@@ -396,6 +397,8 @@ unreservedWord
     | TRUSTED
     | TYPE
     | TYPES
+    | TIME
+    | TIMESTAMP
     | UESCAPE
     | UNBOUNDED
     | UNCOMMITTED
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
index 5455de00ce4..1c2b133b10a 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
@@ -153,4 +153,18 @@
             </expression-projection>
         </projections>
     </select>
+
+    <select sql-case-id="select_with_extract_function">
+        <projections start-index="7" stop-index="56">
+            <expression-projection text="EXTRACT(YEAR FROM TIMESTAMP 
'2001-02-16 20:38:40')" start-index="7" stop-index="56">
+                <expr>
+                    <function function-name="EXTRACT" start-index="7" 
stop-index="56" text="EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40')">
+                        <parameter>
+                            <literal-expression value="2001-02-16 20:38:40" 
start-index="25" stop-index="55"/>
+                        </parameter>
+                    </function>
+                </expr>
+            </expression-projection>
+        </projections>
+    </select>
 </sql-parser-test-cases>
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
index 5d29273a519..a31d12c3323 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
@@ -29,4 +29,5 @@
     <sql-case id="select_weight_string" value="SELECT WEIGHT_STRING('bar')" 
db-types="MySQL" />
     <sql-case id="select_values" value="SELECT VALUES(order_id) FROM t_order" 
db-types="MySQL" />
     <sql-case id="select_current_user_brackets" value="SELECT CURRENT_USER()" 
db-types="MySQL" />
+    <sql-case id="select_with_extract_function" value="SELECT EXTRACT(YEAR 
FROM TIMESTAMP '2001-02-16 20:38:40')" db-types="PostgreSQL,openGauss" />
 </sql-cases>
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
index 983da3f7416..39e492f589f 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
@@ -5531,7 +5531,6 @@
     <sql-case id="insert_by_postgresql_source_test_case37" value="INSERT INTO 
VARBIT_TABLE VALUES (B&apos;010101&apos;);" db-types="PostgreSQL"/>
     <sql-case id="insert_by_postgresql_source_test_case38" value="INSERT INTO 
VARBIT_TABLE VALUES (B&apos;01010101010&apos;);" db-types="PostgreSQL"/>
     <sql-case id="insert_by_postgresql_source_test_case39" value="INSERT INTO 
VARBIT_TABLE VALUES (B&apos;101011111010&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="insert_by_postgresql_source_test_case40" value="INSERT INTO 
ab1 SELECT     generate_series(1,10),     generate_series(1,10),     
generate_series(&apos;2020-10-01&apos;::timestamp, 
&apos;2020-10-10&apos;::timestamp, interval &apos;1 day&apos;),     
generate_series(&apos;2020-10-01&apos;::timestamptz, 
&apos;2020-10-10&apos;::timestamptz, interval &apos;1 day&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="insert_by_postgresql_source_test_case44" value="INSERT INTO 
abbrev_abort_uuids DEFAULT VALUES;" db-types="PostgreSQL"/>
     <sql-case id="insert_by_postgresql_source_test_case45" value="INSERT INTO 
abbrev_abort_uuids DEFAULT VALUES;" db-types="PostgreSQL"/>
     <sql-case id="insert_by_postgresql_source_test_case49" value="INSERT INTO 
arrtest (a, b[1:2], c, d[1:2])    VALUES (&apos;{}&apos;, &apos;{3,4}&apos;, 
&apos;{foo,bar}&apos;, &apos;{bar,foo}&apos;);" db-types="PostgreSQL"/>
@@ -5865,10 +5864,6 @@
     <sql-case id="select_by_postgresql_source_test_case3" value="SELECT        
p::text || &apos;,&apos; || i::text || &apos;:&apos; ||                 CASE 
WHEN f THEN COALESCE(v::text, &apos;NULL&apos;) ELSE &apos;-&apos; END as row,  
   logging_agg_nonstrict(v) filter(where f) over wnd as nstrict_filt,      
logging_agg_nonstrict_initcond(v) filter(where f) over wnd as 
nstrict_init_filt,        logging_agg_strict(v::text) filter(where f) over wnd 
as strict_filt,    logging_agg_strict_initcond(v) filter(where f) over wnd  
[...]
     <sql-case id="select_by_postgresql_source_test_case4" value="SELECT        
p::text || &apos;,&apos; || i::text || &apos;:&apos; || COALESCE(v::text, 
&apos;NULL&apos;) AS row,     logging_agg_nonstrict(v) over wnd as nstrict,   
logging_agg_nonstrict_initcond(v) over wnd as nstrict_init,     
logging_agg_strict(v::text) over wnd as strict,         
logging_agg_strict_initcond(v) over wnd as strict_init FROM (VALUES     (1, 1, 
NULL),   (1, 2, &apos;a&apos;),  (1, 3, &apos;b&apos;),  (1, 4, NULL),   (1, 5, 
NULL),  [...]
     <sql-case id="select_by_postgresql_source_test_case5" value="SELECT   
(SELECT n      FROM (VALUES (1)) AS x,           (SELECT n FROM 
generate_series(1,10) AS n              ORDER BY n LIMIT 1 OFFSET s-1) AS y) AS 
z   FROM generate_series(1,10) AS s;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case6" value="SELECT   str, 
  interval,   date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp 
&apos;0055-06-17 BC&apos;) AS equal FROM (   VALUES   (&apos;week&apos;, 
&apos;7 d&apos;),   (&apos;day&apos;, &apos;1 d&apos;),   (&apos;hour&apos;, 
&apos;1 h&apos;),   (&apos;minute&apos;, &apos;1 m&apos;),   
(&apos;second&apos;, &apos;1 s&apos;),   (&apos;millisecond&apos;, &apos;1 
ms&apos;),   (&apos;microsecond&apos;, &apos;1 u [...]
-    <sql-case id="select_by_postgresql_source_test_case7" value="SELECT   str, 
  interval,   date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp 
&apos;2000-01-01 BC&apos;) AS equal FROM (   VALUES   (&apos;week&apos;, 
&apos;7 d&apos;),   (&apos;day&apos;, &apos;1 d&apos;),   (&apos;hour&apos;, 
&apos;1 h&apos;),   (&apos;minute&apos;, &apos;1 m&apos;),   
(&apos;second&apos;, &apos;1 s&apos;),   (&apos;millisecond&apos;, &apos;1 
ms&apos;),   (&apos;microsecond&apos;, &apos;1 u [...]
-    <sql-case id="select_by_postgresql_source_test_case8" value="SELECT   str, 
  interval,   date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp 
&apos;2001-01-01&apos;) AS equal FROM (   VALUES   (&apos;week&apos;, &apos;7 
d&apos;),   (&apos;day&apos;, &apos;1 d&apos;),   (&apos;hour&apos;, &apos;1 
h&apos;),   (&apos;minute&apos;, &apos;1 m&apos;),   (&apos;second&apos;, 
&apos;1 s&apos;),   (&apos;millisecond&apos;, &apos;1 ms&apos;),   
(&apos;microsecond&apos;, &apos;1 us&a [...]
-    <sql-case id="select_by_postgresql_source_test_case9" value="SELECT   str, 
  interval,   date_trunc(str, ts) = date_bin(interval::interval, ts, timestamp 
&apos;2020-03-02&apos;) AS equal FROM (   VALUES   (&apos;week&apos;, &apos;7 
d&apos;),   (&apos;day&apos;, &apos;1 d&apos;),   (&apos;hour&apos;, &apos;1 
h&apos;),   (&apos;minute&apos;, &apos;1 m&apos;),   (&apos;second&apos;, 
&apos;1 s&apos;),   (&apos;millisecond&apos;, &apos;1 ms&apos;),   
(&apos;microsecond&apos;, &apos;1 us&a [...]
     <sql-case id="select_by_postgresql_source_test_case10" value="SELECT   
str,   interval,   date_trunc(str, ts, &apos;Australia/Sydney&apos;) = 
date_bin(interval::interval, ts, timestamp with time zone 
&apos;2001-01-01+11&apos;) AS equal FROM (   VALUES   (&apos;day&apos;, &apos;1 
d&apos;),   (&apos;hour&apos;, &apos;1 h&apos;),   (&apos;minute&apos;, &apos;1 
m&apos;),   (&apos;second&apos;, &apos;1 s&apos;),   (&apos;millisecond&apos;, 
&apos;1 ms&apos;),   (&apos;microsecond&apos;, &a [...]
     <sql-case id="select_by_postgresql_source_test_case11" value="SELECT  
thousand             FROM onek WHERE thousand &lt; 5                 ORDER BY 
thousand FETCH FIRST 1 ROW WITH TIES FOR UPDATE SKIP LOCKED;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case12" value="SELECT  
thousand             FROM onek WHERE thousand &lt; 5                 ORDER BY 
thousand FETCH FIRST 1 ROW WITH TIES;" db-types="PostgreSQL"/>
@@ -6085,12 +6080,6 @@
     <sql-case id="select_by_postgresql_source_test_case224" value="SELECT * 
FROM (VALUES (1),(2),(3)) v(r), ROWS FROM( rngfunc_sql(10+r,13), 
rngfunc_mat(10+r,13) );" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case225" value="SELECT * 
FROM (VALUES (1),(2),(3)) v(r), ROWS FROM( rngfunc_sql(10+r,13), 
rngfunc_mat(11,11) );" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case226" value="SELECT * 
FROM (VALUES (1),(2),(3)) v(r), ROWS FROM( rngfunc_sql(11,11), 
rngfunc_mat(10+r,13) );" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case227" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 &lt; interval &apos;@ 1 day&apos;;" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case228" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 &lt;= interval &apos;@ 5 
hours&apos;;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case229" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 &lt;&gt; interval &apos;@ 10 
days&apos;;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case230" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 = interval &apos;@ 34 years&apos;;" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case231" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 &gt; interval &apos;@ 3 seconds 
ago&apos;;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case232" value="SELECT * 
FROM INTERVAL_TBL    WHERE INTERVAL_TBL.f1 &gt;= interval &apos;@ 1 
month&apos;;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case233" value="SELECT * 
FROM ROWS FROM(generate_series(10,11), get_users()) WITH ORDINALITY;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case234" value="SELECT * 
FROM ROWS FROM(get_users(), generate_series(10,11)) WITH ORDINALITY;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case235" value="SELECT * 
FROM box_temp WHERE f1 &amp;&lt; &apos;(10,4.333334),(5,100)&apos;;" 
db-types="PostgreSQL"/>
@@ -6183,12 +6172,10 @@
     <sql-case id="select_by_postgresql_source_test_case322" value="SELECT 
DATE_TRUNC(&apos;CENTURY&apos;, DATE &apos;0055-08-10 BC&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case323" value="SELECT 
DATE_TRUNC(&apos;CENTURY&apos;, DATE &apos;1970-03-20&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case324" value="SELECT 
DATE_TRUNC(&apos;CENTURY&apos;, DATE &apos;2004-08-10&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case325" value="SELECT 
DATE_TRUNC(&apos;CENTURY&apos;, TIMESTAMP &apos;1970-03-20 
04:30:00.00000&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case326" value="SELECT 
DATE_TRUNC(&apos;DECADE&apos;, DATE &apos;0002-12-31 BC&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case327" value="SELECT 
DATE_TRUNC(&apos;DECADE&apos;, DATE &apos;0004-12-25&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case328" value="SELECT 
DATE_TRUNC(&apos;DECADE&apos;, DATE &apos;1993-12-25&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case329" value="SELECT 
DATE_TRUNC(&apos;MILLENNIUM&apos;, DATE &apos;1970-03-20&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case330" value="SELECT 
DATE_TRUNC(&apos;MILLENNIUM&apos;, TIMESTAMP &apos;1970-03-20 
04:30:00.00000&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case331" value="SELECT 
DISTINCT p1.proargtypes[0]::regtype, p2.proargtypes[0]::regtype FROM pg_proc AS 
p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND     p1.prosrc = p2.prosrc AND     
p1.prolang = 12 AND p2.prolang = 12 AND     p1.prokind != &apos;a&apos; AND 
p2.prokind != &apos;a&apos; AND     p1.prosrc NOT LIKE 
E&apos;range\\_constructor_&apos; AND     p2.prosrc NOT LIKE 
E&apos;range\\_constructor_&apos; AND     p1.prosrc NOT LIKE E&apos [...]
     <sql-case id="select_by_postgresql_source_test_case332" value="SELECT 
DISTINCT p1.proargtypes[1]::regtype, p2.proargtypes[1]::regtype FROM pg_proc AS 
p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND     p1.prosrc = p2.prosrc AND     
p1.prolang = 12 AND p2.prolang = 12 AND     p1.prokind != &apos;a&apos; AND 
p2.prokind != &apos;a&apos; AND     p1.prosrc NOT LIKE 
E&apos;range\\_constructor_&apos; AND     p2.prosrc NOT LIKE 
E&apos;range\\_constructor_&apos; AND     p1.prosrc NOT LIKE E&apos [...]
     <sql-case id="select_by_postgresql_source_test_case333" value="SELECT 
DISTINCT p1.proargtypes[2]::regtype, p2.proargtypes[2]::regtype FROM pg_proc AS 
p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND     p1.prosrc = p2.prosrc AND     
p1.prolang = 12 AND p2.prolang = 12 AND     p1.prokind != &apos;a&apos; AND 
p2.prokind != &apos;a&apos; AND     (p1.proargtypes[2] &lt; p2.proargtypes[2]) 
ORDER BY 1, 2;" db-types="PostgreSQL"/>
@@ -6231,13 +6218,8 @@
     <sql-case id="select_by_postgresql_source_test_case370" value="SELECT 
EXTRACT(CENTURY FROM DATE &apos;1901-01-01&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case371" value="SELECT 
EXTRACT(CENTURY FROM DATE &apos;2000-12-31&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case372" value="SELECT 
EXTRACT(CENTURY FROM DATE &apos;2001-01-01&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case373" value="SELECT 
EXTRACT(CENTURY FROM INTERVAL &apos;-100 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case374" value="SELECT 
EXTRACT(CENTURY FROM INTERVAL &apos;-99 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case375" value="SELECT 
EXTRACT(CENTURY FROM INTERVAL &apos;100 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case376" value="SELECT 
EXTRACT(CENTURY FROM INTERVAL &apos;99 y&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case377" value="SELECT 
EXTRACT(DAY           FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case378" value="SELECT 
EXTRACT(DAY           FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case379" value="SELECT 
EXTRACT(DAY         FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case380" value="SELECT 
EXTRACT(DAY         FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case381" value="SELECT 
EXTRACT(DAY FROM DATE &apos;-infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case382" value="SELECT 
EXTRACT(DAY FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
@@ -6250,27 +6232,19 @@
     <sql-case id="select_by_postgresql_source_test_case389" value="SELECT 
EXTRACT(DECADE FROM DATE &apos;0011-01-01 BC&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case390" value="SELECT 
EXTRACT(DECADE FROM DATE &apos;0012-12-31 BC&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case391" value="SELECT 
EXTRACT(DECADE FROM DATE &apos;1994-12-25&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case392" value="SELECT 
EXTRACT(DECADE FROM INTERVAL &apos;-100 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case393" value="SELECT 
EXTRACT(DECADE FROM INTERVAL &apos;-99 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case394" value="SELECT 
EXTRACT(DECADE FROM INTERVAL &apos;100 y&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case395" value="SELECT 
EXTRACT(DECADE FROM INTERVAL &apos;99 y&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case396" value="SELECT 
EXTRACT(DOW           FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case397" value="SELECT 
EXTRACT(DOW           FROM DATE &apos;2020-08-16&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case398" value="SELECT 
EXTRACT(DOW           FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case399" value="SELECT 
EXTRACT(DOY           FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case400" value="SELECT 
EXTRACT(DOY           FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case401" value="SELECT 
EXTRACT(EPOCH         FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case402" value="SELECT 
EXTRACT(EPOCH       FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case403" value="SELECT 
EXTRACT(EPOCH       FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case404" value="SELECT 
EXTRACT(EPOCH      FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case405" value="SELECT 
EXTRACT(EPOCH FROM DATE        &apos;1970-01-01&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case406" value="SELECT 
EXTRACT(EPOCH FROM DATE &apos;-infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case407" value="SELECT 
EXTRACT(EPOCH FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case408" value="SELECT 
EXTRACT(FORTNIGHT   FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case409" value="SELECT 
EXTRACT(FORTNIGHT   FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case410" value="SELECT 
EXTRACT(FORTNIGHT FROM INTERVAL &apos;2 days&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case411" value="SELECT 
EXTRACT(HOUR          FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case412" value="SELECT 
EXTRACT(HOUR        FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case413" value="SELECT 
EXTRACT(HOUR        FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case414" value="SELECT 
EXTRACT(ISODOW        FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case415" value="SELECT 
EXTRACT(ISODOW        FROM DATE &apos;2020-08-16&apos;);" 
db-types="PostgreSQL"/>
@@ -6292,23 +6266,18 @@
     <sql-case id="select_by_postgresql_source_test_case431" value="SELECT 
EXTRACT(MILLENNIUM FROM DATE &apos;2000-12-31&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case432" value="SELECT 
EXTRACT(MILLENNIUM FROM DATE &apos;2001-01-01&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case433" value="SELECT 
EXTRACT(MILLENNIUM FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case434" value="SELECT 
EXTRACT(MILLISECOND FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case435" value="SELECT 
EXTRACT(MILLISECOND FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case436" value="SELECT 
EXTRACT(MILLISECONDS  FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case437" value="SELECT 
EXTRACT(MINUTE        FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case438" value="SELECT 
EXTRACT(MINUTE      FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case439" value="SELECT 
EXTRACT(MINUTE      FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case440" value="SELECT 
EXTRACT(MONTH         FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case441" value="SELECT 
EXTRACT(MONTH         FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case442" value="SELECT 
EXTRACT(QUARTER       FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case443" value="SELECT 
EXTRACT(QUARTER       FROM DATE &apos;infinity&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case444" value="SELECT 
EXTRACT(SECOND        FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case445" value="SELECT 
EXTRACT(SECOND      FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case446" value="SELECT 
EXTRACT(SECOND      FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case447" value="SELECT 
EXTRACT(TIMEZONE      FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case448" value="SELECT 
EXTRACT(TIMEZONE    FROM TIME &apos;2020-05-26 13:30:25.575401&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case449" value="SELECT 
EXTRACT(TIMEZONE    FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04:30&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case450" value="SELECT 
EXTRACT(TIMEZONE FROM INTERVAL &apos;2 days&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case451" value="SELECT 
EXTRACT(TIMEZONE_H    FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case452" value="SELECT 
EXTRACT(TIMEZONE_HOUR   FROM TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04:30&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case453" value="SELECT 
EXTRACT(TIMEZONE_M    FROM DATE &apos;2020-08-11&apos;);" 
db-types="PostgreSQL"/>
@@ -6633,24 +6602,14 @@
     <sql-case id="select_by_postgresql_source_test_case778" value="SELECT d1 
as &quot;timestamp&quot;,    date_part( &apos;quarter&apos;, d1) AS quarter, 
date_part( &apos;msec&apos;, d1) AS msec,    date_part( &apos;usec&apos;, d1) 
AS usec    FROM TIMESTAMP_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case779" value="SELECT d1 
as timestamptz,    date_part( &apos;isoyear&apos;, d1) AS isoyear, date_part( 
&apos;week&apos;, d1) AS week,    date_part( &apos;isodow&apos;, d1) AS isodow, 
date_part( &apos;dow&apos;, d1) AS dow,    date_part( &apos;doy&apos;, d1) AS 
doy    FROM TIMESTAMPTZ_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case780" value="SELECT d1 
as timestamptz,    date_part( &apos;quarter&apos;, d1) AS quarter, date_part( 
&apos;msec&apos;, d1) AS msec,    date_part( &apos;usec&apos;, d1) AS usec    
FROM TIMESTAMPTZ_TBL;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case781" value="SELECT 
date_bin(&apos;-2 days&apos;::interval, timestamp &apos;1970-01-01 
01:00:00&apos; , timestamp &apos;1970-01-01 00:00:00&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case782" value="SELECT 
date_bin(&apos;-2 days&apos;::interval, timestamp with time zone 
&apos;1970-01-01 01:00:00+00&apos; , timestamp with time zone &apos;1970-01-01 
00:00:00+00&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case783" value="SELECT 
date_bin(&apos;0 days&apos;::interval, timestamp &apos;1970-01-01 
01:00:00&apos; , timestamp &apos;1970-01-01 00:00:00&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case784" value="SELECT 
date_bin(&apos;0 days&apos;::interval, timestamp with time zone 
&apos;1970-01-01 01:00:00+00&apos; , timestamp with time zone &apos;1970-01-01 
00:00:00+00&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case785" value="SELECT 
date_bin(&apos;5 min&apos;::interval, timestamp &apos;2020-02-01 
01:01:01&apos;, timestamp &apos;2020-02-01 00:02:30&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case786" value="SELECT 
date_bin(&apos;5 months&apos;::interval, timestamp &apos;2020-02-01 
01:01:01&apos;, timestamp &apos;2001-01-01&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case787" value="SELECT 
date_bin(&apos;5 months&apos;::interval, timestamp with time zone 
&apos;2020-02-01 01:01:01+00&apos;, timestamp with time zone 
&apos;2001-01-01+00&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case788" value="SELECT 
date_bin(&apos;5 years&apos;::interval,  timestamp &apos;2020-02-01 
01:01:01&apos;, timestamp &apos;2001-01-01&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case789" value="SELECT 
date_bin(&apos;5 years&apos;::interval,  timestamp with time zone 
&apos;2020-02-01 01:01:01+00&apos;, timestamp with time zone 
&apos;2001-01-01+00&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case790" value="SELECT 
date_part(&apos;epoch&apos;,       TIME &apos;2020-05-26 
13:30:25.575401&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case791" value="SELECT 
date_part(&apos;epoch&apos;,       TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case792" value="SELECT 
date_part(&apos;microsecond&apos;, TIME &apos;2020-05-26 
13:30:25.575401&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case793" value="SELECT 
date_part(&apos;microsecond&apos;, TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case794" value="SELECT 
date_part(&apos;millisecond&apos;, TIME &apos;2020-05-26 
13:30:25.575401&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case795" value="SELECT 
date_part(&apos;millisecond&apos;, TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case796" value="SELECT 
date_part(&apos;second&apos;,      TIME &apos;2020-05-26 
13:30:25.575401&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case797" value="SELECT 
date_part(&apos;second&apos;,      TIME WITH TIME ZONE &apos;2020-05-26 
13:30:25.575401-04&apos;);" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case798" value="SELECT 
date_trunc( &apos;week&apos;, timestamp &apos;2004-02-29 15:44:17.71393&apos; ) 
AS week_trunc;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case799" value="SELECT 
date_trunc( &apos;week&apos;, timestamp with time zone &apos;2004-02-29 
15:44:17.71393&apos; ) AS week_trunc;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case800" value="SELECT 
date_trunc(&apos;day&apos;, timestamp with time zone &apos;2001-02-16 
20:38:40+00&apos;, &apos;Australia/Sydney&apos;) as sydney_trunc;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case801" value="SELECT 
date_trunc(&apos;day&apos;, timestamp with time zone &apos;2001-02-16 
20:38:40+00&apos;, &apos;GMT&apos;) as gmt_trunc;" db-types="PostgreSQL"/>
@@ -6662,19 +6621,16 @@
     <sql-case id="select_by_postgresql_source_test_case807" value="SELECT 
encode(overlay(E&apos;Th\\000omas&apos;::bytea placing 
E&apos;Th\\001omas&apos;::bytea from 2),&apos;escape&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case808" value="SELECT 
encode(overlay(E&apos;Th\\000omas&apos;::bytea placing 
E&apos;\\002\\003&apos;::bytea from 5 for 3),&apos;escape&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case809" value="SELECT 
encode(overlay(E&apos;Th\\000omas&apos;::bytea placing 
E&apos;\\002\\003&apos;::bytea from 8),&apos;escape&apos;);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case810" value="SELECT 
extract(epoch from interval &apos;1000000000 days&apos;);" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case811" value="SELECT 
f.f1, @f.f1 AS abs_f1    FROM FLOAT8_TBL f;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case812" value="SELECT 
f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case813" value="SELECT 
f.f1, |/f.f1 AS sqrt_f1    FROM FLOAT8_TBL f    WHERE f.f1 &gt; 
&apos;0.0&apos;;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case814" value="SELECT 
f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case815" value="SELECT f1 + 
time &apos;00:01&apos; AS &quot;Illegal&quot; FROM TIME_TBL;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case816" value="SELECT f1 + 
time with time zone &apos;00:01&apos; AS &quot;Illegal&quot; FROM TIMETZ_TBL;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case817" value="SELECT f1 
AS open_path, polygon( pclose(f1)) AS polygon    FROM PATH_TBL    WHERE 
isopen(f1);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case818" value="SELECT f1 
as &quot;date&quot;,     date_part(&apos;year&apos;, f1) AS year,     
date_part(&apos;month&apos;, f1) AS month,     date_part(&apos;day&apos;, f1) 
AS day,     date_part(&apos;quarter&apos;, f1) AS quarter,     
date_part(&apos;decade&apos;, f1) AS decade,     date_part(&apos;century&apos;, 
f1) AS century,     date_part(&apos;millennium&apos;, f1) AS millennium,     
date_part(&apos;isoyear&apos;, f1) AS isoyear,  [...]
     <sql-case id="select_by_postgresql_source_test_case819" value="SELECT f1,  
   EXTRACT(MICROSECOND FROM f1) AS MICROSECOND,     EXTRACT(MILLISECOND FROM 
f1) AS MILLISECOND,     EXTRACT(SECOND FROM f1) AS SECOND,     EXTRACT(MINUTE 
FROM f1) AS MINUTE,     EXTRACT(HOUR FROM f1) AS HOUR,     EXTRACT(DAY FROM f1) 
AS DAY,     EXTRACT(MONTH FROM f1) AS MONTH,     EXTRACT(QUARTER FROM f1) AS 
QUARTER,     EXTRACT(YEAR FROM f1) AS YEAR,     EXTRACT(DECADE FROM f1) AS 
DECADE,     EXTRACT(CENTUR [...]
     <sql-case id="select_by_postgresql_source_test_case820" value="SELECT f1,  
   date_part(&apos;microsecond&apos;, f1) AS microsecond,     
date_part(&apos;millisecond&apos;, f1) AS millisecond,     
date_part(&apos;second&apos;, f1) AS second,     date_part(&apos;epoch&apos;, 
f1) AS epoch     FROM INTERVAL_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case821" value="SELECT f1, 
@-@ f1 FROM PATH_TBL;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case822" value="SELECT f1, 
f1::INTERVAL DAY TO MINUTE AS &quot;minutes&quot;,   (f1 + INTERVAL &apos;1 
month&apos;)::INTERVAL MONTH::INTERVAL YEAR AS &quot;years&quot;   FROM 
interval_tbl;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case823" value="SELECT f1, 
f1::box FROM POLYGON_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case824" value="SELECT f1, 
f1::path FROM POLYGON_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case825" value="SELECT f1, 
f1::polygon FROM CIRCLE_TBL WHERE f1 &gt;= &apos;&lt;(0,0),1&gt;&apos;;" 
db-types="PostgreSQL"/>
@@ -6699,7 +6655,6 @@
     <sql-case id="select_by_postgresql_source_test_case846" value="SELECT i AS 
inet, host(i), text(i), family(i) FROM INET_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case847" value="SELECT i 
FROM inet_tbl WHERE i &lt;&lt; &apos;192.168.1.0/24&apos;::cidr ORDER BY i;" 
db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case848" value="SELECT i 
FROM inet_tbl WHERE i &lt;&lt; &apos;192.168.1.0/24&apos;::cidr ORDER BY i;" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case849" value="SELECT i,   
     to_char(i * interval &apos;1mon&apos;, &apos;rm&apos;),        to_char(i * 
interval &apos;1mon&apos;, &apos;RM&apos;)     FROM generate_series(-13, 13) 
i;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case850" value="SELECT i, 
c,   i &lt; c AS lt, i &lt;= c AS le, i = c AS eq,   i &gt;= c AS ge, i &gt; c 
AS gt, i &lt;&gt; c AS ne,   i &lt;&lt; c AS sb, i &lt;&lt;= c AS sbe,   i 
&gt;&gt; c AS sup, i &gt;&gt;= c AS spe,   i &amp;&amp; c AS ovr   FROM 
INET_TBL;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case851" value="SELECT i, 
~i AS &quot;~i&quot; FROM inet_tbl;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case852" value="SELECT 
i,SUM(v::money) OVER (ORDER BY i ROWS BETWEEN CURRENT ROW AND UNBOUNDED 
FOLLOWING)   FROM 
(VALUES(1,&apos;1.10&apos;),(2,&apos;2.20&apos;),(3,NULL),(4,NULL)) t(i,v);" 
db-types="PostgreSQL"/>
@@ -6768,9 +6723,6 @@
     <sql-case id="select_by_postgresql_source_test_case915" value="SELECT 
jsonb_path_query_first(&apos;[{&quot;a&quot;: 1}, {&quot;a&quot;: 2}, 
{&quot;a&quot;: 3}, {&quot;a&quot;: 5}]&apos;, &apos;$[*].a ? (@ &gt; $min 
&amp;&amp; @ &lt; $max)&apos;, vars =&gt; &apos;{&quot;min&quot;: 1, 
&quot;max&quot;: 4}&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case916" value="SELECT 
jsonb_path_query_first(&apos;[{&quot;a&quot;: 1}, {&quot;a&quot;: 2}, 
{&quot;a&quot;: 3}, {&quot;a&quot;: 5}]&apos;, &apos;$[*].a ? (@ &gt; $min 
&amp;&amp; @ &lt; $max)&apos;, vars =&gt; &apos;{&quot;min&quot;: 3, 
&quot;max&quot;: 4}&apos;);" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case917" value="SELECT 
jsonb_path_query_first(&apos;[{&quot;a&quot;: 1}, {&quot;a&quot;: 2}, 
{}]&apos;, &apos;strict $[*].a&apos;, silent =&gt; true);" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case918" value="SELECT 
justify_days(interval &apos;6 months 36 days 5 hours 4 minutes 3 seconds&apos;) 
as &quot;7 mons 6 days 5 hours 4 mins 3 seconds&quot;;" db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case919" value="SELECT 
justify_hours(interval &apos;6 months 3 days 52 hours 3 minutes 2 
seconds&apos;) as &quot;6 mons 5 days 4 hours 3 mins 2 seconds&quot;;" 
db-types="PostgreSQL"/>
-    <sql-case id="select_by_postgresql_source_test_case920" value="SELECT 
justify_interval(interval &apos;1 month -1 hour&apos;) as &quot;1 month -1 
hour&quot;;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case921" value="SELECT l.s, 
b.f1 FROM LINE_TBL l, BOX_TBL b WHERE l.s ?# b.f1;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case922" value="SELECT l.s, 
b.f1 FROM LSEG_TBL l, BOX_TBL b WHERE l.s ?# b.f1;" db-types="PostgreSQL"/>
     <sql-case id="select_by_postgresql_source_test_case923" value="SELECT l.s, 
b.f1, l.s ## b.f1 FROM LINE_TBL l, BOX_TBL b;" db-types="PostgreSQL"/>
@@ -8482,12 +8434,10 @@
     <sql-case id="low_select_by_postgresql_source_test_case322" value="select 
length(md5((f1[1]).c2)) from dest;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case323" value="select 
length(md5((f1[1]).c2)) from dest;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case324" value="select 
md5(&apos;&apos;::bytea) = &apos;d41d8cd98f00b204e9800998ecf8427e&apos; AS 
&quot;TRUE&quot;;" db-types="PostgreSQL"/>
-    <sql-case id="low_select_by_postgresql_source_test_case325" value="select 
md5(&apos;12345678901234567890123456789012345678901234567890123456789012345678901234567890&apos;::bytea)
 = &apos;57edf4a22be3c955ac49da2e2107b67a&apos; AS &quot;TRUE&quot;;" 
db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case326" value="select 
md5(&apos;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&apos;::bytea)
 = &apos;d174ab98d277d9f5a5611c2c9f419d9f&apos; AS &quot;TRUE&quot;;" 
db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case327" value="select 
md5(&apos;a&apos;::bytea) = &apos;0cc175b9c0f1b6a831c399e269772661&apos; AS 
&quot;TRUE&quot;;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case328" value="select 
md5(&apos;abc&apos;::bytea) = &apos;900150983cd24fb0d6963f7d28e17f72&apos; AS 
&quot;TRUE&quot;;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case329" value="select 
md5(&apos;abcdefghijklmnopqrstuvwxyz&apos;::bytea) = 
&apos;c3fcd3d76192e4007dfb496cca67e13b&apos; AS &quot;TRUE&quot;;" 
db-types="PostgreSQL"/>
-    <sql-case id="low_select_by_postgresql_source_test_case330" value="select 
md5(&apos;message digest&apos;::bytea) = 
&apos;f96b697d7cb7938d525a2f31aaf161d0&apos; AS &quot;TRUE&quot;;" 
db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case331" value="select 
min_scale(numeric &apos;NaN&apos;) is NULL;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case332" value="select 
min_scale(numeric &apos;inf&apos;) is NULL;" db-types="PostgreSQL"/>
     <sql-case id="low_select_by_postgresql_source_test_case333" value="select 
mr_polymorphic(int4range(1, 4));" db-types="PostgreSQL"/>

Reply via email to