@@ -220,8 +220,8 @@ \subsubsection{SQL reserved keywords}
220
220
\texttt {AT, } \texttt {AUTHORIZATION, } \texttt {AVG, } \texttt {BEGIN, }
221
221
\texttt {BETWEEN, } \texttt {BIT, } \texttt {BIT\_ LENGTH, } \texttt {BOTH, }
222
222
\texttt {BY, } \texttt {CASCADE, } \texttt {CASCADED, } \texttt {CASE, }
223
- \texttt {CAST, } \texttt { CATALOG, } \texttt {CHAR, } \texttt {CHARACTER, }
224
- \texttt {CHARACTER \_ LENGTH, } \texttt {CHAR \_ LENGTH, } \texttt {CHECK, }
223
+ \texttt {CATALOG, } \texttt {CHAR, } \texttt {CHARACTER, }
224
+ \texttt {CHAR \_ LENGTH, } \texttt {CHARACTER \_ LENGTH, } \texttt {CHECK, }
225
225
\texttt {CLOSE, } \texttt {COALESCE, } \texttt {COLLATE, }
226
226
\texttt {COLLATION, } \texttt {COLUMN, } \texttt {COMMIT, }
227
227
\texttt {CONNECT, } \texttt {CONNECTION, } \texttt {CONSTRAINT, }
@@ -234,47 +234,47 @@ \subsubsection{SQL reserved keywords}
234
234
\texttt {DEFAULT, } \texttt {DEFERRABLE, } \texttt {DEFERRED, }
235
235
\texttt {DELETE, } \texttt {DESC, } \texttt {DESCRIBE, }
236
236
\texttt {DESCRIPTOR, } \texttt {DIAGNOSTICS, } \texttt {DISCONNECT, }
237
- \texttt {DISTINCT, } \texttt {DOMAIN, } \texttt {DOUBLE, } \texttt { DROP, }
237
+ \texttt {DISTINCT, } \texttt {DOMAIN, } \texttt {DROP, }
238
238
\texttt {ELSE, } \texttt {END, } \texttt {END-EXEC, } \texttt {ESCAPE, }
239
239
\texttt {EXCEPT, } \texttt {EXCEPTION, } \texttt {EXEC, } \texttt {EXECUTE, }
240
240
\texttt {EXISTS, } \texttt {EXTERNAL, } \texttt {EXTRACT, } \texttt {FALSE, }
241
241
\texttt {FETCH, } \texttt {FIRST, } \texttt {FLOAT, } \texttt {FOR, }
242
242
\texttt {FOREIGN, } \texttt {FOUND, } \texttt {FROM, } \texttt {FULL, }
243
243
\texttt {GET, } \texttt {GLOBAL, } \texttt {GO, } \texttt {GOTO, }
244
244
\texttt {GRANT, } \texttt {GROUP, } \texttt {HAVING, } \texttt {HOUR, }
245
- \texttt {IDENTITY, } \texttt {IMMEDIATE, } \texttt {IN, }
245
+ \texttt {IDENTITY, } \texttt {IMMEDIATE, } \texttt {IN, }
246
246
\texttt {INDICATOR, } \texttt {INITIALLY, } \texttt {INNER, }
247
247
\texttt {INPUT, } \texttt {INSENSITIVE, } \texttt {INSERT, } \texttt {INT, }
248
- \texttt {INTEGER, } \texttt { INTERSECT, } \texttt {INTERVAL, }
248
+ \texttt {INTERSECT, } \texttt {INTERVAL, }
249
249
\texttt {INTO, } \texttt {IS, } \texttt {ISOLATION, } \texttt {JOIN, }
250
250
\texttt {KEY, } \texttt {LANGUAGE, } \texttt {LAST, } \texttt {LEADING, }
251
251
\texttt {LEFT, } \texttt {LEVEL, } \texttt {LIKE, } \texttt {LOCAL, }
252
- \texttt {LOWER, } \texttt { MATCH, } \texttt {MAX, } \texttt {MIN, }
252
+ \texttt {MATCH, } \texttt {MAX, } \texttt {MIN, }
253
253
\texttt {MINUTE, } \texttt {MODULE, } \texttt {MONTH, } \texttt {NAMES, }
254
254
\texttt {NATIONAL, } \texttt {NATURAL, } \texttt {NCHAR, } \texttt {NEXT, }
255
255
\texttt {NO, } \texttt {NOT, } \texttt {NULL, } \texttt {NULLIF, }
256
256
\texttt {NUMERIC, } \texttt {OCTET\_ LENGTH, } \texttt {OF, } \texttt {ON, }
257
257
\texttt {ONLY, } \texttt {OPEN, } \texttt {OPTION, } \texttt {OR, }
258
258
\texttt {ORDER, } \texttt {OUTER, } \texttt {OUTPUT, } \texttt {OVERLAPS, }
259
259
\texttt {PAD, } \texttt {PARTIAL, } \texttt {POSITION, }
260
- \texttt {PRECISION, } \texttt { PREPARE, } \texttt {PRESERVE, }
260
+ \texttt {PREPARE, } \texttt {PRESERVE, }
261
261
\texttt {PRIMARY, } \texttt {PRIOR, } \texttt {PRIVILEGES, }
262
- \texttt {PROCEDURE, } \texttt {PUBLIC, } \texttt {READ, } \texttt { REAL, }
262
+ \texttt {PROCEDURE, } \texttt {PUBLIC, } \texttt {READ, }
263
263
\texttt {REFERENCES, } \texttt {RELATIVE, } \texttt {RESTRICT, }
264
264
\texttt {REVOKE, } \texttt {RIGHT, } \texttt {ROLLBACK, } \texttt {ROWS, }
265
265
\texttt {SCHEMA, } \texttt {SCROLL, } \texttt {SECOND, } \texttt {SECTION, }
266
266
\texttt {SELECT, } \texttt {SESSION, } \texttt {SESSION\_ USER, }
267
- \texttt {SET, } \texttt {SIZE, } \texttt {SMALLINT, } \texttt { SOME, }
267
+ \texttt {SET, } \texttt {SIZE, } \texttt {SOME, }
268
268
\texttt {SPACE, } \texttt {SQL, } \texttt {SQLCODE, } \texttt {SQLERROR, }
269
269
\texttt {SQLSTATE, } \texttt {SUBSTRING, } \texttt {SUM, }
270
270
\texttt {SYSTEM\_ USER, } \texttt {TABLE, } \texttt {TEMPORARY, }
271
- \texttt {THEN, } \texttt {TIME, } \texttt { TIMESTAMP, }
271
+ \texttt {THEN, } \texttt {TIME, }
272
272
\texttt {TIMEZONE\_ HOUR, } \texttt {TIMEZONE\_ MINUTE, } \texttt {TO, }
273
273
\texttt {TRAILING, } \texttt {TRANSACTION, } \texttt {TRANSLATE, }
274
274
\texttt {TRANSLATION, } \texttt {TRIM, } \texttt {TRUE, } \texttt {UNION, }
275
- \texttt {UNIQUE, } \texttt {UNKNOWN, } \texttt {UPDATE, } \texttt { UPPER, }
275
+ \texttt {UNIQUE, } \texttt {UNKNOWN, } \texttt {UPDATE, }
276
276
\texttt {USAGE, } \texttt {USER, } \texttt {USING, } \texttt {VALUE, }
277
- \texttt {VALUES, } \texttt {VARCHAR, } \texttt { VARYING, } \texttt {VIEW, }
277
+ \texttt {VALUES, } \texttt {VARYING, } \texttt {VIEW, }
278
278
\texttt {WHEN, } \texttt {WHENEVER, } \texttt {WHERE, } \texttt {WITH, }
279
279
\texttt {WORK, } \texttt {WRITE, } \texttt {YEAR, } \texttt {ZONE }
280
280
@@ -289,7 +289,7 @@ \subsubsection{ADQL reserved keywords}
289
289
\texttt {EXP, } \texttt {FLOOR, } \texttt {LOG, } \texttt {LOG10, }
290
290
\texttt {MOD, } \texttt {PI, } \texttt {POWER, } \texttt {RADIANS, }
291
291
\texttt {RAND, } \texttt {ROUND, } \texttt {SIN, } \texttt {SQRT, }
292
- \texttt {TAN, } \texttt {TOP, } \texttt { TRUNCATE }
292
+ \texttt {TAN, } \texttt {TRUNCATE }
293
293
\newline
294
294
295
295
\noindent
@@ -299,6 +299,27 @@ \subsubsection{ADQL reserved keywords}
299
299
\texttt {CONTAINS, } \texttt {COORD1, } \texttt {COORD2, }
300
300
\texttt {COORDSYS, } \texttt {DISTANCE, } \texttt {INTERSECTS, }
301
301
\texttt {POINT, } \texttt {POLYGON, } \texttt {REGION }
302
+ \newline
303
+
304
+ \noindent
305
+ \verb :CAST : function and datatypes:\\
306
+ \noindent
307
+ \texttt {BIGINT, } \texttt {CAST, } \texttt {CHAR, } \texttt {DOUBLE PRECISION, }
308
+ \texttt {INTEGER, } \texttt {REAL, } \texttt {SMALLINT, } \texttt {TIMESTAMP, }
309
+ \texttt {VARCHAR }
310
+ \newline
311
+
312
+ \noindent
313
+ String functions and operators:\\
314
+ \noindent
315
+ \texttt {ILIKE, } \texttt {LOWER, } \texttt {UPPER }
316
+ \newline
317
+
318
+ \noindent
319
+ Conversion functions:\\
320
+ \noindent
321
+ \texttt {IN\_ UNIT }
322
+
302
323
303
324
\subsubsection {Identifiers }
304
325
\label {sec:adql.identifiers }
@@ -398,7 +419,7 @@ \subsubsection{Whitespace}
398
419
\subsection {Query syntax }
399
420
\label {sec:syntax }
400
421
401
- A more detailed definition of the select statement is given by the \verb :<query_specification> :
422
+ A more detailed definition of the \verb : SELECT : statement is given by the \verb :<query_specification> :
402
423
construct defined in \AppendixRef {sec:grammar }.
403
424
404
425
A simplified syntax for the \verb :SELECT : statement follows, showing the main constructs for
@@ -416,10 +437,10 @@ \subsection{Query syntax}
416
437
FROM {
417
438
{
418
439
table_name [ [AS] identifier ]
419
- | ( SELECT .... ) [ [ AS] identifier ]
420
- | table_name [NATURAL]
440
+ | ( SELECT ...) [AS] identifier
441
+ | table_reference [NATURAL]
421
442
[ INNER | { LEFT | RIGHT | FULL [OUTER] } ]
422
- JOIN table_name
443
+ JOIN table_reference
423
444
[ON search_condition | USING ( column_name,...) ]
424
445
},
425
446
...
@@ -656,7 +677,7 @@ \subsection{Mathematical and Trigonometrical Functions}
656
677
\textit {n } integer &
657
678
double &
658
679
Rounds \textit {x } to \textit {n } decimal places.
659
- The integer \textit {n } is optinal and defaults to 0 if not specified.
680
+ The integer \textit {n } is optional and defaults to 0 if not specified.
660
681
A negative value of \textit {n } will round to the left of the decimal point.
661
682
\tabularnewline
662
683
@@ -667,7 +688,7 @@ \subsection{Mathematical and Trigonometrical Functions}
667
688
\textit {n } integer &
668
689
double &
669
690
Truncates \textit {x } to \textit {n } decimal places.
670
- The integer \textit {n } is optinal and defaults to 0 if not specified.
691
+ The integer \textit {n } is optional and defaults to 0 if not specified.
671
692
\tabularnewline
672
693
673
694
\hline
@@ -1609,7 +1630,7 @@ \subsubsection{Preferred crossmatch syntax}
1609
1630
unnecessarily slow operation of the common sky crossmatch operation.
1610
1631
1611
1632
The purpose of this section is to recommend a preferred form of ADQL
1612
- to use for sky crossmatches. Clients posing crossmatch-like
1633
+ to use for sky crossmatches. Clients proposing crossmatch-like
1613
1634
queries are advised to phrase them this way rather than semantically
1614
1635
equivalent alternatives, and services are encouraged to ensure that
1615
1636
this form of join is executed efficiently; this might involve
@@ -2924,6 +2945,7 @@ \subsubsection{CAST}
2924
2945
\textit {\footnotesize {X: supported ; X*: supported but possible implementation differences} }
2925
2946
}
2926
2947
\end {table }
2948
+ \newpage % to force the compatibility table to be close to the "Input types" paragragh
2927
2949
2928
2950
\paragraph {Cast into a smaller datatype }
2929
2951
@@ -3970,35 +3992,6 @@ \section{Language feature support}
3970
3992
</languageFeatures>
3971
3993
\end {verbatim }
3972
3994
3973
- \newpage
3974
- \section {Outstanding issues }
3975
- \label {sec:issues }
3976
-
3977
- The following section identifies areas of the specification that have known
3978
- issues that are still to be resolved.
3979
-
3980
- \begin {itemize }
3981
-
3982
- \item 20171129-003 Now that we allow polymorphism, do we still need to deprecate
3983
- the coordsys param for BOX, CIRCLE AND POLYGON? \SectionSee {sec:geom.coordsys.param}.
3984
-
3985
- \item 20171129-004 Should support for REGION be optional (if so, how) ? \SectionSee {sec:types.geom.region}
3986
- \item 20171129-005 Should we add a literal constructor for REGION? \SectionSee {sec:types.geom.region}.
3987
-
3988
- \item 20171129-007 Should we add prefixes to the xytpe names to indicate
3989
- which standard they are defined in?.
3990
-
3991
- \item 20171129-008 INTERVAL is defined in DALI but not in ADQL. \SectionSee {sec:types.numeric.interval}.
3992
-
3993
- \item 20170608-009 Can we add in ADQL an INTERSECTION function
3994
- which returns the polygon intersection of two regions?.
3995
- http://mail.ivoa.net/pipermail/dal/2017-June/007721.html
3996
-
3997
- \item 20171228-010 Table inserted between text and example (POINT).
3998
-
3999
-
4000
- \end {itemize }
4001
-
4002
3995
\newpage
4003
3996
\section {Changes from previous versions }
4004
3997
\label {sec:changes }
@@ -4025,6 +4018,7 @@ \section{Changes from previous versions}
4025
4018
\item Added \verb :UPPER() : function
4026
4019
\item Added recommendation to data providers about case folding
4027
4020
\item Re-added \verb :CAST() : function
4021
+ \item Replaced the section for outstanding issues by the GitHub Issue mechanism
4028
4022
\end {itemize }
4029
4023
4030
4024
\item Changes from PR-ADQL-2.1-20180112
@@ -4175,7 +4169,7 @@ \section{Changes from previous versions}
4175
4169
4176
4170
\end {itemize }
4177
4171
4178
- \bibliography {ivoatex/ivoabib,ivoatex/docrepo}
4172
+ \bibliography {ivoatex/ivoabib,ivoatex/docrepo,ADQL }
4179
4173
4180
4174
\end {document }
4181
4175
0 commit comments