diff --git a/lib/pgFormatter/Beautify.pm b/lib/pgFormatter/Beautify.pm index 13af56a..e5c90f2 100755 --- a/lib/pgFormatter/Beautify.pm +++ b/lib/pgFormatter/Beautify.pm @@ -708,7 +708,7 @@ sub tokenize_sql { | (?:<\%|\%>|<<\->|<\->>|<\->) # pg_trgm and some geometry operators | - (?:\->>|\->|<\#>|\#>>|\#>|\?\&|\?\||\?|\@\?) # Vector and Json Operators + (?:\->>|\->|<\#>|\#>>|\#>|\?\&|\@\?) # Vector and Json Operators | (?:\#<=|\#>=|\#<>|\#<|\#=) # compares tinterval and reltime | diff --git a/t/02_regress.t b/t/02_regress.t index 3481640..6564ca1 100755 --- a/t/02_regress.t +++ b/t/02_regress.t @@ -1,4 +1,4 @@ -use Test::Simple tests => 90; +use Test::Simple tests => 91; use File::Temp qw/ tempfile /; my $pg_format = $ENV{PG_FORMAT} // './pg_format'; # set to the full path to 'pg_format' to test installed binary in /usr/bin diff --git a/t/pg-test-files/expected/geometry.sql b/t/pg-test-files/expected/geometry.sql index 6d3310f..4cb3ed6 100644 --- a/t/pg-test-files/expected/geometry.sql +++ b/t/pg-test-files/expected/geometry.sql @@ -55,7 +55,7 @@ SELECT FROM POINT_TBL p1 WHERE - p1.f1 ? - point '(0,0)'; + p1.f1 ?- point '(0,0)'; -- "is vertical" function SELECT @@ -276,7 +276,7 @@ SELECT FROM LINE_TBL WHERE - ? - s; + ?- s; -- Same as line SELECT @@ -296,7 +296,7 @@ FROM LINE_TBL l1, LINE_TBL l2 WHERE - l1.s ?| | l2.s; + l1.s ?|| l2.s; -- Perpendicular to line SELECT @@ -306,7 +306,7 @@ FROM LINE_TBL l1, LINE_TBL l2 WHERE - l1.s ? - | l2.s; + l1.s ?-| l2.s; -- Distance to line SELECT @@ -334,7 +334,7 @@ FROM LINE_TBL l1, LINE_TBL l2 WHERE - l1.s ? # l2.s; + l1.s ?# l2.s; -- Intersect with box SELECT @@ -344,7 +344,7 @@ FROM LINE_TBL l, BOX_TBL b WHERE - l.s ? # b.f1; + l.s ?# b.f1; -- Intersection point with line SELECT @@ -407,7 +407,7 @@ SELECT FROM LSEG_TBL WHERE - ? - s; + ?- s; -- Center SELECT @@ -491,7 +491,7 @@ FROM LSEG_TBL l1, LSEG_TBL l2 WHERE - l1.s ?| | l2.s; + l1.s ?|| l2.s; -- Perpendicular with line segment SELECT @@ -501,7 +501,7 @@ FROM LSEG_TBL l1, LSEG_TBL l2 WHERE - l1.s ? - | l2.s; + l1.s ?-| l2.s; -- Distance to line SELECT @@ -538,7 +538,7 @@ FROM LSEG_TBL l, LINE_TBL l1 WHERE - l.s ? # l1.s; + l.s ?# l1.s; -- Intersect with box SELECT @@ -548,7 +548,7 @@ FROM LSEG_TBL l, BOX_TBL b WHERE - l.s ? # b.f1; + l.s ?# b.f1; -- Intersection point with line segment SELECT diff --git a/t/test-files/ex88.sql b/t/test-files/ex88.sql new file mode 100644 index 0000000..2c4e141 --- /dev/null +++ b/t/test-files/ex88.sql @@ -0,0 +1,4 @@ +-- Geometric operators starting with ? must not be split +SELECT l1.s, l2.s FROM LSEG_TBL l1, LSEG_TBL l2 WHERE l1.s ?# l2.s AND l1.s ?|| l2.s AND l1.s ?-| l2.s; +SELECT s FROM LINE_TBL WHERE ?- s AND ?| s AND p ?- point '(0,0)'; +SELECT j ? 'a', j ?| ARRAY['a'], j ?& ARRAY['a'], j @? '$.a' FROM t; diff --git a/t/test-files/expected/ex88.sql b/t/test-files/expected/ex88.sql new file mode 100644 index 0000000..812edf2 --- /dev/null +++ b/t/test-files/expected/ex88.sql @@ -0,0 +1,29 @@ +-- Geometric operators starting with ? must not be split +SELECT + l1.s, + l2.s +FROM + LSEG_TBL l1, + LSEG_TBL l2 +WHERE + l1.s ?# l2.s + AND l1.s ?|| l2.s + AND l1.s ?-| l2.s; + +SELECT + s +FROM + LINE_TBL +WHERE + ?- s + AND ?| s + AND p ?- point '(0,0)'; + +SELECT + j ? 'a', + j ?| ARRAY['a'], + j ?& ARRAY['a'], + j @? '$.a' +FROM + t; +