60
60
import org .opensearch .sql .expression .function .BuiltinFunctionRepository ;
61
61
import org .opensearch .sql .expression .function .DefaultFunctionResolver ;
62
62
import org .opensearch .sql .expression .function .FunctionName ;
63
- import org .opensearch .sql .expression .function .FunctionResolver ;
64
63
import org .opensearch .sql .utils .DateTimeUtils ;
65
64
66
65
/**
@@ -135,7 +134,6 @@ public void register(BuiltinFunctionRepository repository) {
135
134
* (DATE, LONG) -> DATE
136
135
* (STRING/DATETIME/TIMESTAMP, LONG) -> DATETIME
137
136
*/
138
-
139
137
private DefaultFunctionResolver add_date (FunctionName functionName ) {
140
138
return define (functionName ,
141
139
impl (nullMissingHandling (DateTimeFunction ::exprAddDateInterval ),
@@ -171,38 +169,38 @@ private DefaultFunctionResolver convert_tz() {
171
169
);
172
170
}
173
171
174
- private FunctionResolver curdate (FunctionName functionName ) {
172
+ private DefaultFunctionResolver curdate (FunctionName functionName ) {
175
173
return define (functionName ,
176
174
impl (() -> new ExprDateValue (formatNow (null ).toLocalDate ()), DATE )
177
175
);
178
176
}
179
177
180
- private FunctionResolver curdate () {
178
+ private DefaultFunctionResolver curdate () {
181
179
return curdate (BuiltinFunctionName .CURDATE .getName ());
182
180
}
183
181
184
182
/**
185
183
* Synonym for @see `now`.
186
184
*/
187
- private FunctionResolver curtime (FunctionName functionName ) {
185
+ private DefaultFunctionResolver curtime (FunctionName functionName ) {
188
186
return define (functionName ,
189
187
impl (() -> new ExprTimeValue (formatNow (null ).toLocalTime ()), TIME )
190
188
);
191
189
}
192
190
193
- private FunctionResolver curtime () {
191
+ private DefaultFunctionResolver curtime () {
194
192
return curtime (BuiltinFunctionName .CURTIME .getName ());
195
193
}
196
194
197
- private FunctionResolver current_date () {
195
+ private DefaultFunctionResolver current_date () {
198
196
return curdate (BuiltinFunctionName .CURRENT_DATE .getName ());
199
197
}
200
198
201
- private FunctionResolver current_time () {
199
+ private DefaultFunctionResolver current_time () {
202
200
return curtime (BuiltinFunctionName .CURRENT_TIME .getName ());
203
201
}
204
202
205
- private FunctionResolver current_timestamp () {
203
+ private DefaultFunctionResolver current_timestamp () {
206
204
return now (BuiltinFunctionName .CURRENT_TIMESTAMP .getName ());
207
205
}
208
206
@@ -225,7 +223,7 @@ private DefaultFunctionResolver date() {
225
223
* (STRING, STRING) -> DATETIME
226
224
* (STRING) -> DATETIME
227
225
*/
228
- private FunctionResolver datetime () {
226
+ private DefaultFunctionResolver datetime () {
229
227
return define (BuiltinFunctionName .DATETIME .getName (),
230
228
impl (nullMissingHandling (DateTimeFunction ::exprDateTime ),
231
229
DATETIME , STRING , STRING ),
@@ -337,7 +335,7 @@ private DefaultFunctionResolver from_days() {
337
335
impl (nullMissingHandling (DateTimeFunction ::exprFromDays ), DATE , LONG ));
338
336
}
339
337
340
- private FunctionResolver from_unixtime () {
338
+ private DefaultFunctionResolver from_unixtime () {
341
339
return define (BuiltinFunctionName .FROM_UNIXTIME .getName (),
342
340
impl (nullMissingHandling (DateTimeFunction ::exprFromUnixTime ), DATETIME , DOUBLE ),
343
341
impl (nullMissingHandling (DateTimeFunction ::exprFromUnixTimeFormat ),
@@ -356,11 +354,11 @@ private DefaultFunctionResolver hour() {
356
354
);
357
355
}
358
356
359
- private FunctionResolver localtime () {
357
+ private DefaultFunctionResolver localtime () {
360
358
return now (BuiltinFunctionName .LOCALTIME .getName ());
361
359
}
362
360
363
- private FunctionResolver localtimestamp () {
361
+ private DefaultFunctionResolver localtimestamp () {
364
362
return now (BuiltinFunctionName .LOCALTIMESTAMP .getName ());
365
363
}
366
364
@@ -369,22 +367,22 @@ private FunctionResolver localtimestamp() {
369
367
* `fsp` argument support is removed until refactoring to avoid bug where `now()`, `now(x)` and
370
368
* `now(y) return different values.
371
369
*/
372
- private FunctionResolver now (FunctionName functionName ) {
370
+ private DefaultFunctionResolver now (FunctionName functionName ) {
373
371
return define (functionName ,
374
372
impl (() -> new ExprDatetimeValue (formatNow (null )), DATETIME )
375
373
);
376
374
}
377
375
378
- private FunctionResolver now () {
376
+ private DefaultFunctionResolver now () {
379
377
return now (BuiltinFunctionName .NOW .getName ());
380
378
}
381
379
382
- private FunctionResolver makedate () {
380
+ private DefaultFunctionResolver makedate () {
383
381
return define (BuiltinFunctionName .MAKEDATE .getName (),
384
382
impl (nullMissingHandling (DateTimeFunction ::exprMakeDate ), DATE , DOUBLE , DOUBLE ));
385
383
}
386
384
387
- private FunctionResolver maketime () {
385
+ private DefaultFunctionResolver maketime () {
388
386
return define (BuiltinFunctionName .MAKETIME .getName (),
389
387
impl (nullMissingHandling (DateTimeFunction ::exprMakeTime ), TIME , DOUBLE , DOUBLE , DOUBLE ));
390
388
}
@@ -536,7 +534,7 @@ private DefaultFunctionResolver to_days() {
536
534
impl (nullMissingHandling (DateTimeFunction ::exprToDays ), LONG , DATETIME ));
537
535
}
538
536
539
- private FunctionResolver unix_timestamp () {
537
+ private DefaultFunctionResolver unix_timestamp () {
540
538
return define (BuiltinFunctionName .UNIX_TIMESTAMP .getName (),
541
539
impl (DateTimeFunction ::unixTimeStamp , LONG ),
542
540
impl (nullMissingHandling (DateTimeFunction ::unixTimeStampOf ), DOUBLE , DATE ),
@@ -1008,7 +1006,7 @@ private ExprValue exprSubDateInterval(ExprValue date, ExprValue expr) {
1008
1006
/**
1009
1007
* SYSDATE() returns the time at which it executes.
1010
1008
*/
1011
- private FunctionResolver sysdate () {
1009
+ private DefaultFunctionResolver sysdate () {
1012
1010
return define (BuiltinFunctionName .SYSDATE .getName (),
1013
1011
impl (() -> new ExprDatetimeValue (formatNow (null )), DATETIME ),
1014
1012
impl ((v ) -> new ExprDatetimeValue (formatNow (v .integerValue ())), DATETIME , INTEGER )
0 commit comments