Skip to content

Commit a5c465f

Browse files
authored
Merge branch 'main' into fallback-to-dynamic-function-mappings
2 parents 98061af + 05046a3 commit a5c465f

20 files changed

Lines changed: 418 additions & 223 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ out/**
1313
*/bin
1414
.metals
1515
.bloop
16+
.project

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
Release Notes
22
---
33

4+
## [0.83.0](https://github.com/substrait-io/substrait-java/compare/v0.82.0...v0.83.0) (2026-03-08)
5+
6+
### Features
7+
8+
* **spark:** build and publish multi-variant targets ([#707](https://github.com/substrait-io/substrait-java/issues/707)) ([d3ce994](https://github.com/substrait-io/substrait-java/commit/d3ce9947cff8c53aebafbe0255e45df7dd371e95))
9+
10+
### Bug Fixes
11+
12+
* properly deprecate Time(stamp) in favor of PrecisionTime(stamp) ([#720](https://github.com/substrait-io/substrait-java/issues/720)) ([d4697f7](https://github.com/substrait-io/substrait-java/commit/d4697f7c0ee9b9e04b1561104e1036c25f16405b))
13+
414
## [0.82.0](https://github.com/substrait-io/substrait-java/compare/v0.81.0...v0.82.0) (2026-03-02)
515

616
### Features
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
lexer grammar SubstraitLexer;
2+
3+
options {
4+
caseInsensitive = true;
5+
}
6+
7+
// Whitespace and comment handling
8+
LineComment : '//' ~[\r\n]* -> channel(HIDDEN) ;
9+
BlockComment : ( '/*' ( ~'*' | '*'+ ~[*/] ) '*'* '*/' ) -> channel(HIDDEN) ;
10+
Whitespace : [ \t\r]+ -> channel(HIDDEN) ;
11+
12+
fragment DIGIT: [0-9];
13+
14+
// Syntactic keywords.
15+
If : 'IF';
16+
Then : 'THEN';
17+
Else : 'ELSE';
18+
Func : 'FUNC';
19+
20+
// TYPES
21+
Boolean : 'BOOLEAN';
22+
I8 : 'I8';
23+
I16 : 'I16';
24+
I32 : 'I32';
25+
I64 : 'I64';
26+
FP32 : 'FP32';
27+
FP64 : 'FP64';
28+
String : 'STRING';
29+
Binary : 'BINARY';
30+
Timestamp: 'TIMESTAMP';
31+
Timestamp_TZ: 'TIMESTAMP_TZ';
32+
Date : 'DATE';
33+
Time : 'TIME';
34+
Interval_Year: 'INTERVAL_YEAR';
35+
Interval_Day: 'INTERVAL_DAY';
36+
Interval_Compound: 'INTERVAL_COMPOUND';
37+
UUID : 'UUID';
38+
Decimal : 'DECIMAL';
39+
Precision_Time: 'PRECISION_TIME';
40+
Precision_Timestamp: 'PRECISION_TIMESTAMP';
41+
Precision_Timestamp_TZ: 'PRECISION_TIMESTAMP_TZ';
42+
FixedChar: 'FIXEDCHAR';
43+
VarChar : 'VARCHAR';
44+
FixedBinary: 'FIXEDBINARY';
45+
Struct : 'STRUCT';
46+
NStruct : 'NSTRUCT';
47+
List : 'LIST';
48+
Map : 'MAP';
49+
UserDefined: 'U!';
50+
51+
// short names for types
52+
Bool: 'BOOL';
53+
Str: 'STR';
54+
VBin: 'VBIN';
55+
Ts: 'TS';
56+
TsTZ: 'TSTZ';
57+
IYear: 'IYEAR';
58+
IDay: 'IDAY';
59+
ICompound: 'ICOMPOUND';
60+
Dec: 'DEC';
61+
PT: 'PT';
62+
PTs: 'PTS';
63+
PTsTZ: 'PTSTZ';
64+
FChar: 'FCHAR';
65+
VChar: 'VCHAR';
66+
FBin: 'FBIN';
67+
68+
Any: 'ANY';
69+
AnyVar: Any [0-9];
70+
71+
DoubleColon: '::';
72+
73+
// MATH
74+
Plus : '+';
75+
Minus : '-';
76+
Asterisk : '*';
77+
ForwardSlash : '/';
78+
Percent : '%';
79+
80+
// COMPARE
81+
Eq : '=';
82+
Ne : '!=';
83+
Gte : '>=';
84+
Lte : '<=';
85+
Gt : '>';
86+
Lt : '<';
87+
Bang : '!';
88+
89+
// ORGANIZE
90+
OAngleBracket: Lt;
91+
CAngleBracket: Gt;
92+
OParen: '(';
93+
CParen: ')';
94+
OBracket: '[';
95+
CBracket: ']';
96+
Comma: ',';
97+
Colon: ':';
98+
QMark: '?';
99+
Hash: '#';
100+
Dot: '.';
101+
102+
103+
// OPERATIONS
104+
And : 'AND';
105+
Or : 'OR';
106+
Assign : ':=';
107+
Arrow : '->';
108+
109+
110+
111+
fragment Int
112+
: '1'..'9' Digit*
113+
| '0'
114+
;
115+
116+
fragment Digit
117+
: '0'..'9'
118+
;
119+
120+
Number
121+
: '-'? Int
122+
;
123+
124+
Identifier
125+
: ('A'..'Z' | '_' | '$') ('A'..'Z' | '_' | '$' | Digit)*
126+
;
127+
128+
Newline
129+
: ( '\r' '\n'?
130+
| '\n'
131+
)
132+
;

0 commit comments

Comments
 (0)