Skip to content

Commit 21373b9

Browse files
Merge pull request #839 from Bit-Quill/integ-improve-error-reporting
Rework on error reporting to make it more verbose and human-friendly.
2 parents c230532 + 89b3e1a commit 21373b9

File tree

20 files changed

+583
-246
lines changed

20 files changed

+583
-246
lines changed

core/src/main/java/org/opensearch/sql/expression/datetime/DateTimeFunction.java

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import org.opensearch.sql.expression.function.BuiltinFunctionRepository;
6161
import org.opensearch.sql.expression.function.DefaultFunctionResolver;
6262
import org.opensearch.sql.expression.function.FunctionName;
63-
import org.opensearch.sql.expression.function.FunctionResolver;
6463
import org.opensearch.sql.utils.DateTimeUtils;
6564

6665
/**
@@ -135,7 +134,6 @@ public void register(BuiltinFunctionRepository repository) {
135134
* (DATE, LONG) -> DATE
136135
* (STRING/DATETIME/TIMESTAMP, LONG) -> DATETIME
137136
*/
138-
139137
private DefaultFunctionResolver add_date(FunctionName functionName) {
140138
return define(functionName,
141139
impl(nullMissingHandling(DateTimeFunction::exprAddDateInterval),
@@ -171,38 +169,38 @@ private DefaultFunctionResolver convert_tz() {
171169
);
172170
}
173171

174-
private FunctionResolver curdate(FunctionName functionName) {
172+
private DefaultFunctionResolver curdate(FunctionName functionName) {
175173
return define(functionName,
176174
impl(() -> new ExprDateValue(formatNow(null).toLocalDate()), DATE)
177175
);
178176
}
179177

180-
private FunctionResolver curdate() {
178+
private DefaultFunctionResolver curdate() {
181179
return curdate(BuiltinFunctionName.CURDATE.getName());
182180
}
183181

184182
/**
185183
* Synonym for @see `now`.
186184
*/
187-
private FunctionResolver curtime(FunctionName functionName) {
185+
private DefaultFunctionResolver curtime(FunctionName functionName) {
188186
return define(functionName,
189187
impl(() -> new ExprTimeValue(formatNow(null).toLocalTime()), TIME)
190188
);
191189
}
192190

193-
private FunctionResolver curtime() {
191+
private DefaultFunctionResolver curtime() {
194192
return curtime(BuiltinFunctionName.CURTIME.getName());
195193
}
196194

197-
private FunctionResolver current_date() {
195+
private DefaultFunctionResolver current_date() {
198196
return curdate(BuiltinFunctionName.CURRENT_DATE.getName());
199197
}
200198

201-
private FunctionResolver current_time() {
199+
private DefaultFunctionResolver current_time() {
202200
return curtime(BuiltinFunctionName.CURRENT_TIME.getName());
203201
}
204202

205-
private FunctionResolver current_timestamp() {
203+
private DefaultFunctionResolver current_timestamp() {
206204
return now(BuiltinFunctionName.CURRENT_TIMESTAMP.getName());
207205
}
208206

@@ -225,7 +223,7 @@ private DefaultFunctionResolver date() {
225223
* (STRING, STRING) -> DATETIME
226224
* (STRING) -> DATETIME
227225
*/
228-
private FunctionResolver datetime() {
226+
private DefaultFunctionResolver datetime() {
229227
return define(BuiltinFunctionName.DATETIME.getName(),
230228
impl(nullMissingHandling(DateTimeFunction::exprDateTime),
231229
DATETIME, STRING, STRING),
@@ -337,7 +335,7 @@ private DefaultFunctionResolver from_days() {
337335
impl(nullMissingHandling(DateTimeFunction::exprFromDays), DATE, LONG));
338336
}
339337

340-
private FunctionResolver from_unixtime() {
338+
private DefaultFunctionResolver from_unixtime() {
341339
return define(BuiltinFunctionName.FROM_UNIXTIME.getName(),
342340
impl(nullMissingHandling(DateTimeFunction::exprFromUnixTime), DATETIME, DOUBLE),
343341
impl(nullMissingHandling(DateTimeFunction::exprFromUnixTimeFormat),
@@ -356,11 +354,11 @@ private DefaultFunctionResolver hour() {
356354
);
357355
}
358356

359-
private FunctionResolver localtime() {
357+
private DefaultFunctionResolver localtime() {
360358
return now(BuiltinFunctionName.LOCALTIME.getName());
361359
}
362360

363-
private FunctionResolver localtimestamp() {
361+
private DefaultFunctionResolver localtimestamp() {
364362
return now(BuiltinFunctionName.LOCALTIMESTAMP.getName());
365363
}
366364

@@ -369,22 +367,22 @@ private FunctionResolver localtimestamp() {
369367
* `fsp` argument support is removed until refactoring to avoid bug where `now()`, `now(x)` and
370368
* `now(y) return different values.
371369
*/
372-
private FunctionResolver now(FunctionName functionName) {
370+
private DefaultFunctionResolver now(FunctionName functionName) {
373371
return define(functionName,
374372
impl(() -> new ExprDatetimeValue(formatNow(null)), DATETIME)
375373
);
376374
}
377375

378-
private FunctionResolver now() {
376+
private DefaultFunctionResolver now() {
379377
return now(BuiltinFunctionName.NOW.getName());
380378
}
381379

382-
private FunctionResolver makedate() {
380+
private DefaultFunctionResolver makedate() {
383381
return define(BuiltinFunctionName.MAKEDATE.getName(),
384382
impl(nullMissingHandling(DateTimeFunction::exprMakeDate), DATE, DOUBLE, DOUBLE));
385383
}
386384

387-
private FunctionResolver maketime() {
385+
private DefaultFunctionResolver maketime() {
388386
return define(BuiltinFunctionName.MAKETIME.getName(),
389387
impl(nullMissingHandling(DateTimeFunction::exprMakeTime), TIME, DOUBLE, DOUBLE, DOUBLE));
390388
}
@@ -536,7 +534,7 @@ private DefaultFunctionResolver to_days() {
536534
impl(nullMissingHandling(DateTimeFunction::exprToDays), LONG, DATETIME));
537535
}
538536

539-
private FunctionResolver unix_timestamp() {
537+
private DefaultFunctionResolver unix_timestamp() {
540538
return define(BuiltinFunctionName.UNIX_TIMESTAMP.getName(),
541539
impl(DateTimeFunction::unixTimeStamp, LONG),
542540
impl(nullMissingHandling(DateTimeFunction::unixTimeStampOf), DOUBLE, DATE),
@@ -1008,7 +1006,7 @@ private ExprValue exprSubDateInterval(ExprValue date, ExprValue expr) {
10081006
/**
10091007
* SYSDATE() returns the time at which it executes.
10101008
*/
1011-
private FunctionResolver sysdate() {
1009+
private DefaultFunctionResolver sysdate() {
10121010
return define(BuiltinFunctionName.SYSDATE.getName(),
10131011
impl(() -> new ExprDatetimeValue(formatNow(null)), DATETIME),
10141012
impl((v) -> new ExprDatetimeValue(formatNow(v.integerValue())), DATETIME, INTEGER)

legacy/src/main/java/org/opensearch/sql/legacy/utils/QueryDataAnonymizer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public class QueryDataAnonymizer {
2626
* Sensitive data includes index names, column names etc.,
2727
* which in druid parser are parsed to SQLIdentifierExpr instances
2828
* @param query entire sql query string
29-
* @return sql query string with all identifiers replaced with "***"
29+
* @return sql query string with all identifiers replaced with "***" on success
30+
* and failure string otherwise to ensure no non-anonymized data is logged in production.
3031
*/
3132
public static String anonymizeData(String query) {
3233
String resultQuery;
@@ -38,8 +39,9 @@ public static String anonymizeData(String query) {
3839
.replaceAll("false", "boolean_literal")
3940
.replaceAll("[\\n][\\t]+", " ");
4041
} catch (Exception e) {
41-
LOG.warn("Caught an exception when anonymizing sensitive data");
42-
resultQuery = query;
42+
LOG.warn("Caught an exception when anonymizing sensitive data.");
43+
LOG.debug("String {} failed anonymization.", query);
44+
resultQuery = "Failed to anonymize data.";
4345
}
4446
return resultQuery;
4547
}

0 commit comments

Comments
 (0)