Skip to content

Commit ea6900b

Browse files
committed
remove not supported ADQL functions from grammar
1 parent 09d7db8 commit ea6900b

File tree

4 files changed

+18
-25
lines changed

4 files changed

+18
-25
lines changed

src/queryparser/adql/ADQLLexer.g4

+6-6
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ BIT_OR :B_ I_ T_ '_' O_ R_ ;
4242
BIT_XOR :B_ I_ T_ '_' X_ O_ R_ ;
4343
BOX :B_ O_ X_ ;
4444
CEILING :C_ E_ I_ L_ I_ N_ G_ ;
45-
CENTROID :C_ E_ N_ T_ R_ O_ I_ D_ ;
45+
//CENTROID :C_ E_ N_ T_ R_ O_ I_ D_ ;
4646
CIRCLE :C_ I_ R_ C_ L_ E_ ;
4747
CONTAINS :C_ O_ N_ T_ A_ I_ N_ S_ ;
48-
COORD1 :C_ O_ O_ R_ D_ '1' ;
49-
COORD2 :C_ O_ O_ R_ D_ '2' ;
50-
COORDSYS :C_ O_ O_ R_ D_ S_ Y_ S_ ;
48+
//COORD1 :C_ O_ O_ R_ D_ '1' ;
49+
//COORD2 :C_ O_ O_ R_ D_ '2' ;
50+
//COORDSYS :C_ O_ O_ R_ D_ S_ Y_ S_ ;
5151
COS :C_ O_ S_ ;
5252
COT :C_ O_ T_ ;
5353
DEGREES :D_ E_ G_ R_ E_ E_ S_ ;
@@ -56,7 +56,7 @@ EXP :E_ X_ P_ ;
5656
FLOOR :F_ L_ O_ O_ R_ ;
5757
ILIKE :I_ L_ I_ K_ E_ ;
5858
INTERSECTS :I_ N_ T_ E_ R_ S_ E_ C_ T_ S_ ;
59-
IN_UNIT :I_ N_ '_' U_ N_ I_ T_ ;
59+
//IN_UNIT :I_ N_ '_' U_ N_ I_ T_ ;
6060
LOG :L_ O_ G_ ;
6161
LOG10 :L_ O_ G_ '10' ;
6262
MOD :M_ O_ D_ ;
@@ -66,7 +66,7 @@ POLYGON :P_ O_ L_ Y_ G_ O_ N_ ;
6666
POWER :P_ O_ W_ E_ R_ ;
6767
RADIANS :R_ A_ D_ I_ A_ N_ S_ ;
6868
RAND :R_ A_ N_ D_ ;
69-
REGION :R_ E_ G_ I_ O_ N_ ;
69+
//REGION :R_ E_ G_ I_ O_ N_ ;
7070
ROUND :R_ O_ U_ N_ D_ ;
7171
SIN :S_ I_ N_ ;
7272
SQRT :S_ Q_ R_ T_ ;

src/queryparser/adql/ADQLParser.g4

+10-10
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ box:
2424
coordinates COMMA numeric_value_expression COMMA numeric_value_expression
2525
RPAREN ;
2626
catalog_name: ID ;
27-
centroid: CENTROID LPAREN geometry_value_expression RPAREN ;
27+
// centroid: CENTROID LPAREN geometry_value_expression RPAREN ;
2828
// character_representation: nonquote_character ;// | SQ SQ ;
2929
char_function: LOWER LPAREN character_string_literal RPAREN ;
3030
character_string_literal: CSL ; //SQ ( SL )* SQ ; //SQ ( character_representation )* SQ ;
@@ -44,8 +44,8 @@ contains: CONTAINS LPAREN geometry_value_expression COMMA
4444
contains_predicate: INT EQ contains;
4545
coord_sys: string_value_expression ;
4646
coord_value: point_value | column_reference ;
47-
coord1: COORD1 LPAREN coord_value RPAREN ;
48-
coord2: COORD2 LPAREN coord_value RPAREN ;
47+
//coord1: COORD1 LPAREN coord_value RPAREN ;
48+
//coord2: COORD2 LPAREN coord_value RPAREN ;
4949
coordinate1: numeric_value_expression ;
5050
coordinate2: numeric_value_expression ;
5151
coordinates: coordinate1 COMMA coordinate2 ;
@@ -65,12 +65,12 @@ distance:
6565
//double_quote_symbol: DQ DQ ;
6666
exact_numeric_literal: unsigned_decimal ( DOT ( unsigned_decimal )? )? | DOT unsigned_decimal;
6767
exists_predicate: EXISTS table_subquery ;
68-
extract_coordsys: COORDSYS LPAREN geometry_value_expression RPAREN ;
68+
// extract_coordsys: COORDSYS LPAREN geometry_value_expression RPAREN ;
6969
factor: ( sign )? numeric_primary ;
7070
from_clause: FROM table_reference ( COMMA table_reference )* ;
7171
general_literal: character_string_literal ;
7272
general_set_function: set_function_type LPAREN ( set_quantifier )? value_expression RPAREN ;
73-
geometry_value_expression: box | circle | centroid | point | polygon | region | user_defined_function ;
73+
geometry_value_expression: box | circle | point | polygon | user_defined_function ; //| centroid | region
7474
group_by_clause: GROUP BY grouping_column_reference_list ;
7575
grouping_column_reference: column_reference ;
7676
grouping_column_reference_list: grouping_column_reference ( COMMA grouping_column_reference )* ;
@@ -111,7 +111,7 @@ non_join_query_expression: non_join_query_term | query_expression UNION ( A
111111
| query_expression EXCEPT ( ALL )? query_term ;
112112
non_join_query_primary: query_specification | LPAREN non_join_query_expression RPAREN ;
113113
non_join_query_term: non_join_query_primary | query_term INTERSECT ( ALL )? query_expression ;
114-
non_predicate_geometry_function:area | coord1 | coord2 | distance ;
114+
non_predicate_geometry_function:area | distance ; //coord1 | coord2 |
115115
//nondoublequote_character: NDQC ;
116116
//nonquote_character: NQC ;
117117
null_predicate: column_reference IS ( NOT )? NULL ;
@@ -132,7 +132,7 @@ ordering_specification: ASC | DESC ;
132132
outer_join_type: LEFT | RIGHT | FULL ;
133133
pattern: character_value_expression ;
134134
point: POINT LPAREN ( coord_sys COMMA )? coordinates RPAREN ;
135-
point_value: point | centroid | user_defined_function ;
135+
point_value: point | user_defined_function ;//| centroid
136136
polygon: POLYGON LPAREN
137137
( coord_sys COMMA )?
138138
coordinates COMMA
@@ -158,7 +158,7 @@ query: query_expression SEMI;
158158
query_specification: ( WITH with_query )? select_query ;
159159
query_term: non_join_query_primary | query_term INTERSECT ( ALL )? query_expression | joined_table ;
160160
radius: numeric_value_expression ;
161-
region: REGION LPAREN string_value_expression RPAREN ;
161+
//region: REGION LPAREN string_value_expression RPAREN ;
162162
regular_identifier: ID ;
163163
schema_name: ID ; //( catalog_name DOT )? unqualified_schema_name ;
164164
search_condition: boolean_term | search_condition OR boolean_term ;
@@ -174,9 +174,9 @@ signed_integer: ( sign )? unsigned_decimal ;
174174
sort_key: value_expression| column_reference | unsigned_decimal ;
175175
sort_specification: sort_key (ordering_specification )? ;
176176
sort_specification_list: sort_specification ( COMMA sort_specification )* ;
177-
string_geometry_function: extract_coordsys ;
177+
//string_geometry_function: extract_coordsys ;
178178
string_value_expression: character_value_expression ;
179-
string_value_function: string_geometry_function | user_defined_function | char_function;
179+
string_value_function: user_defined_function | char_function; //string_geometry_function |
180180
subquery: LPAREN query_expression RPAREN ;
181181
table_expression:
182182
from_clause

src/queryparser/adql/adqltranslator.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def visitArea(self, ctx):
330330
ctx.removeLastChild()
331331
self.contexts[ctx] = ctx_text
332332

333-
333+
'''
334334
def visitCentroid(self, ctx):
335335
"""
336336
Works only for circles.
@@ -348,6 +348,7 @@ def visitCentroid(self, ctx):
348348
349349
_remove_children(ctx)
350350
self.contexts[ctx] = ctx_text
351+
'''
351352

352353
def visitContains_predicate(self, ctx):
353354
comp_value = ctx.children[0].getText()

src/queryparser/testing/tests.yaml

-8
Original file line numberDiff line numberDiff line change
@@ -787,10 +787,6 @@ adql_mysql_tests:
787787
- SELECT TOP 10 AREA(CIRCLE('ICRS', "tab".RA, -2.23, 176.98)) FROM db.tab
788788
- SELECT sarea(scircle(spoint(RADIANS(`tab`.`RA`), RADIANS(-2.23)), RADIANS(176.98))) AS adql_area FROM `db`.`tab` LIMIT 10;
789789

790-
-
791-
- SELECT CENTROID(CIRCLE('ICRS', 10.0, -10.5, 2.0)) FROM db.tab;
792-
- SELECT scenter(scircle(spoint(RADIANS(10.0), RADIANS(-10.5)), RADIANS(2.0))) FROM `db`.`tab`;
793-
794790
-
795791
- SELECT TOP 10 ra, dec FROM db.tab WHERE 1=CONTAINS(POINT('ICRS', ra, dec), BOX('ICRS', -3.0, 5.0, 4.0, 10.0));
796792
- SELECT `ra`, `dec` FROM `db`.`tab` WHERE 1 = srcontainsl(spoint(RADIANS(`ra`), RADIANS(`dec`)), sbox(spoint(RADIANS(-5.000000000000),RADIANS(0.000000000000)),spoint(RADIANS(-1.000000000000),RADIANS(10.000000000000)))) LIMIT 10;
@@ -847,10 +843,6 @@ adql_postgresql_tests:
847843
- SELECT CIRCLE(POINT(10.0, -10.5), 2.0) FROM db.tab;
848844
- SELECT scircle_to_array_deg(scircle(spoint(RADIANS(10.0), RADIANS(-10.5)), RADIANS(2.0))) AS circle FROM db.tab;
849845

850-
-
851-
- SELECT CENTROID(CIRCLE('ICRS', 10.0, -10.5, 2.0)) FROM db.tab;
852-
- SELECT @@ scircle(spoint(RADIANS(10.0), RADIANS(-10.5)), RADIANS(2.0)) FROM db.tab;
853-
854846
-
855847
- SELECT TOP 10 ra, dec FROM db.tab WHERE 1=CONTAINS(POINT('ICRS', ra, dec), BOX('ICRS', -3.0, 5.0, 4.0, 10.0));
856848
- SELECT ra, dec FROM db.tab WHERE spoint(RADIANS(ra), RADIANS(dec)) @ sbox(spoint(RADIANS(-5.000000000000),RADIANS(0.000000000000)),spoint(RADIANS(-1.000000000000),RADIANS(10.000000000000))) LIMIT 10;

0 commit comments

Comments
 (0)