Skip to content

Commit 4f22fa7

Browse files
committed
update keywords
1 parent fb9c0b1 commit 4f22fa7

File tree

3 files changed

+144
-13
lines changed

3 files changed

+144
-13
lines changed

documentation/keywords.md

Lines changed: 140 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,145 @@
44

55
A list of reserved words recognized by the parser for this engine.
66

7-
```
8-
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, UNNEST, AS, CAST,
9-
COUNT, SUM, AVG, MIN, MAX, FIRST_VALUE, LAST_VALUE, ARRAY_AGG,
10-
ROW_NUMBER, RANK, LAG, LEAD, DAY, MONTH, YEAR, HOUR, MINUTE, SECOND,
11-
LAST_DAY, DAYOFWEEK, DAYOFYEAR, WEEK, QUARTER, NANOSECOND, MICROSECOND,
12-
MILLISECOND, EPOCHDAY, OFFSET, UPPER, LOWER, TRIM, LENGTH, SUBSTRING,
13-
CONCAT, POSITION, REGEXP_LIKE, REPLACE, ABS, ROUND, FLOOR, CEIL, POWER,
14-
SQRT, LOG, LOG10, EXP, SIGN, COS, ACOS, SIN, ASIN, TAN, ATAN, ATAN2,
15-
CASE, WHEN, THEN, ELSE, END, COALESCE, ISNULL, ISNOTNULL, NULLIF,
16-
CURRENT_DATE, CURDATE, TODAY, NOW, CURRENT_TIME, CURTIME, CURRENT_TIMESTAMP,
17-
LIKE, RLIKE, IN, NOT IN, BETWEEN, IS NULL, IS NOT NULL, AND, OR, NOT, INTERVAL
18-
```
7+
## Main clauses
8+
SELECT
9+
FROM
10+
UNNEST
11+
WHERE
12+
GROUP BY
13+
HAVING
14+
ORDER BY
15+
OFFSET
16+
17+
## Aliases and type conversion
18+
AS
19+
CAST
20+
TRY_CAST
21+
CONVERT
22+
::
23+
24+
## Aggregates
25+
COUNT
26+
DISTINCT
27+
SUM
28+
AVG
29+
MIN
30+
MAX
31+
OVER
32+
FIRST_VALUE
33+
LAST_VALUE
34+
ARRAY_AGG
35+
36+
## String functions
37+
UPPER
38+
UCASE
39+
LOWER
40+
LCASE
41+
TRIM
42+
LTRIM
43+
RTRIM
44+
LENGTH
45+
SUBSTRING
46+
SUBSTR
47+
CONCAT
48+
POSITION
49+
REGEXP_LIKE
50+
REGEXP
51+
REPLACE
52+
REVERSE
53+
54+
## Math functions
55+
ABS
56+
ROUND
57+
FLOOR
58+
CEIL
59+
POWER
60+
POW
61+
SQRT
62+
LOG
63+
LOG10
64+
EXP
65+
SIGN
66+
COS
67+
ACOS
68+
SIN
69+
ASIN
70+
TAN
71+
ATAN
72+
ATAN2
73+
74+
## Conditional functions
75+
CASE
76+
WHEN
77+
THEN
78+
ELSE
79+
END
80+
COALESCE
81+
ISNULL
82+
ISNOTNULL
83+
NULLIF
84+
85+
## Date/Time/Datetime/Timestamp functions
86+
YEAR
87+
QUARTER
88+
MONTH
89+
WEEK
90+
DAY
91+
HOUR
92+
MINUTE
93+
SECOND
94+
MILLISECOND
95+
MICROSECOND
96+
NANOSECOND
97+
EPOCHDAY
98+
OFFSET_SECONDS
99+
LAST_DAY
100+
WEEKDAY
101+
YEARDAY
102+
INTERVAL
103+
CURRENT_DATE
104+
CURDATE
105+
TODAY
106+
NOW
107+
CURRENT_TIME
108+
CURTIME
109+
CURRENT_DATETIME
110+
CURRENT_TIMESTAMP
111+
DATE_ADD
112+
DATEADD
113+
DATE_SUB
114+
DATESUB
115+
DATETIME_ADD
116+
DATETIMEADD
117+
DATETIME_SUB
118+
DATETIMESUB
119+
DATE_DIFF
120+
DATEDIFF
121+
DATE_FORMAT
122+
DATE_PARSE
123+
DATETIME_FORMAT
124+
DATETIME_PARSE
125+
DATE_TRUNC
126+
EXTRACT
127+
128+
## Geo functions
129+
POINT
130+
ST_DISTANCE
131+
DISTANCE
132+
133+
## Conditional operators
134+
LIKE
135+
RLIKE
136+
IN
137+
NOT IN
138+
BETWEEN
139+
NOT BETWEEN
140+
IS NULL
141+
IS NOT NULL
142+
143+
## Logical operators
144+
AND
145+
OR
146+
NOT
19147

20148
[Back to index](./README.md)

sql/src/main/scala/app/softnetwork/elastic/sql/function/math/package.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ package object math {
2323
case object Exp extends Expr("EXP") with MathOp
2424
case object Log extends Expr("LOG") with MathOp
2525
case object Log10 extends Expr("LOG10") with MathOp
26-
case object Pow extends Expr("POW") with MathOp
26+
case object Pow extends Expr("POW") with MathOp {
27+
override def words: List[String] = List("POWER", sql)
28+
}
2729
case object Sqrt extends Expr("SQRT") with MathOp
2830
case object Sign extends Expr("SIGN") with MathOp {
2931
override def baseType: SQLNumeric = SQLTypes.TinyInt

sql/src/main/scala/app/softnetwork/elastic/sql/time/package.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ package object time {
5555
override val timeField: String = "EPOCH_DAY"
5656
}
5757
case object OFFSET_SECONDS extends Expr("OFFSET") with TimeField {
58+
override lazy val words: List[String] = List("OFFSET_SECONDS", sql)
5859
override val timeField: String = "OFFSET_SECONDS"
5960
}
6061
}

0 commit comments

Comments
 (0)