Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ExactMatch Filter for Non-Convertible Types; Use RangeFilter on QueryScope Vars #5587

Merged
merged 46 commits into from
Jun 25, 2024
Merged
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
24f6f65
Fix ExactMatch Filter for Non-Convertible Types
nbauernfeind Jun 7, 2024
1bec5c3
Add LocalDate, LocalTime, LocalDateTime, ZoneDateTime Converters
nbauernfeind Jun 7, 2024
89eee34
Fix #5526 by Sharing Conversion With MatchFilter
nbauernfeind Jun 7, 2024
480bedf
Fix ZonedDateTime and Array Shenanigans
nbauernfeind Jun 7, 2024
45e69bb
cleanup personal review
nbauernfeind Jun 7, 2024
bd53581
spotless
nbauernfeind Jun 7, 2024
0786673
Allow Inverted Versions of Filter Regex
nbauernfeind Jun 7, 2024
b210076
Rename RangeFilter
nbauernfeind Jun 11, 2024
286f51b
f
nbauernfeind Jun 11, 2024
da8bcdf
Add failover to MatchFilter
nbauernfeind Jun 11, 2024
9b3fe23
reduce regex to single pattern
nbauernfeind Jun 11, 2024
7488c97
fix spotless
nbauernfeind Jun 12, 2024
df7e0b1
bugfix
nbauernfeind Jun 12, 2024
18a8ab7
where filter test fixes
nbauernfeind Jun 12, 2024
804d950
where filter factory test
nbauernfeind Jun 12, 2024
46bf831
Update engine/table/src/main/java/io/deephaven/engine/table/impl/sele…
nbauernfeind Jun 18, 2024
136c718
Update engine/table/src/main/java/io/deephaven/engine/table/impl/sele…
nbauernfeind Jun 18, 2024
e0951fe
Update engine/table/src/main/java/io/deephaven/engine/table/impl/sele…
nbauernfeind Jun 18, 2024
2795e17
Update engine/table/src/main/java/io/deephaven/engine/table/impl/sele…
nbauernfeind Jun 18, 2024
d098d21
Update engine/table/src/main/java/io/deephaven/engine/table/impl/sele…
nbauernfeind Jun 18, 2024
6982d74
Ryan's feedback
nbauernfeind Jun 18, 2024
61fb256
rename
nbauernfeind Jun 18, 2024
9d80d20
spotlesS
nbauernfeind Jun 18, 2024
b58f235
hard code mirroring
nbauernfeind Jun 18, 2024
4fc140f
Ryan's Comments Continued
nbauernfeind Jun 18, 2024
4e68b63
Merge remote-tracking branch 'upstream/main' into gh_5584
nbauernfeind Jun 18, 2024
5e5d4cb
other feedback
nbauernfeind Jun 21, 2024
aff8a28
more feedback from rnd1
nbauernfeind Jun 21, 2024
cf07196
spotless
nbauernfeind Jun 21, 2024
628fe02
quick fix
nbauernfeind Jun 21, 2024
73ffe40
whitespace fix
nbauernfeind Jun 21, 2024
15d66d5
Add fallback tests and bugfix
nbauernfeind Jun 21, 2024
1dbab30
Ryan's rnd2 direct suggestions.
nbauernfeind Jun 24, 2024
1befd4d
Ryan's rnd2 feedback
nbauernfeind Jun 24, 2024
1ddde7d
Quick compilation fixes
nbauernfeind Jun 24, 2024
24315c0
Few More Filter Delegation Fixes
nbauernfeind Jun 24, 2024
dd801eb
DateTimeUtil Tests
nbauernfeind Jun 24, 2024
eaf10ee
spotless
nbauernfeind Jun 24, 2024
e92cc09
Ryan's rnd3 feedback
nbauernfeind Jun 24, 2024
4441809
Merge remote-tracking branch 'upstream/main' into gh_5584
nbauernfeind Jun 24, 2024
3d211fc
Make ZonedDateTimeRangeFilter compare ZoneDateTimes
nbauernfeind Jun 24, 2024
c87ba9a
Force column names to take precedence
nbauernfeind Jun 24, 2024
e07f2f0
Fix type coercion from one numeric to another
nbauernfeind Jun 24, 2024
f18e93e
Make actual null work properly w/coercion
nbauernfeind Jun 25, 2024
45c4c35
Also coerce BigDecimal and BigInteger
nbauernfeind Jun 25, 2024
2ebba51
revert commented tests
nbauernfeind Jun 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,14 @@ public OUTPUT_TYPE get() {
}
return cachedResult;
}

public OUTPUT_TYPE getIfCached() {
if (hasCachedResult) { // force a volatile read
if (errorResult != null) {
throw errorResult;
}
return cachedResult;
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,7 @@ private PreAndPostFilters applyFilterRenamings(WhereFilter[] filters) {
} else if (filter instanceof MatchFilter) {
final MatchFilter matchFilter = (MatchFilter) filter;
Assert.assertion(myRenames.size() == 1, "Match Filters should only use one column!");
String newName = myRenames.get(matchFilter.getColumnName());
Assert.neqNull(newName, "newName");
final MatchFilter newFilter = matchFilter.renameFilter(newName);
final WhereFilter newFilter = matchFilter.renameFilter(myRenames);
newFilter.init(tableReference.getDefinition(), compilationProcessor);
preViewFilters.add(newFilter);
} else if (filter instanceof ConditionFilter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,18 @@ public ByteRangeFilter(String columnName, byte val1, byte val2, boolean lowerInc
}
}

static WhereFilter makeByteRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeByteRangeFilter(String columnName, Condition condition, byte value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, RangeConditionFilter.parseByteFilter(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, RangeConditionFilter.parseByteFilter(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, RangeConditionFilter.parseByteFilter(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, RangeConditionFilter.parseByteFilter(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,18 @@ public CharRangeFilter(String columnName, char val1, char val2, boolean lowerInc
}
}

static WhereFilter makeCharRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeCharRangeFilter(String columnName, Condition condition, char value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, RangeConditionFilter.parseCharFilter(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, RangeConditionFilter.parseCharFilter(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, RangeConditionFilter.parseCharFilter(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, RangeConditionFilter.parseCharFilter(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,18 @@ public static WhereFilter makeRange(String columnName, String val) {
(double) (positiveOrZero ? parsed + offset : parsed - offset), positiveOrZero, !positiveOrZero);
}

static WhereFilter makeDoubleRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeDoubleRangeFilter(String columnName, Condition condition, double value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, Double.parseDouble(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, Double.parseDouble(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, Double.parseDouble(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, Double.parseDouble(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,18 @@ public static WhereFilter makeRange(String columnName, String val) {
(float) (positiveOrZero ? parsed + offset : parsed - offset), positiveOrZero, !positiveOrZero);
}

static WhereFilter makeFloatRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeFloatRangeFilter(String columnName, Condition condition, float value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, Float.parseFloat(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, Float.parseFloat(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, Float.parseFloat(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, Float.parseFloat(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,18 @@ public IntRangeFilter(String columnName, int val1, int val2, boolean lowerInclus
}
}

static WhereFilter makeIntRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeIntRangeFilter(String columnName, Condition condition, int value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, RangeConditionFilter.parseIntFilter(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, RangeConditionFilter.parseIntFilter(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, RangeConditionFilter.parseIntFilter(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, RangeConditionFilter.parseIntFilter(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,18 @@ public LongRangeFilter(String columnName, long val1, long val2, boolean lowerInc
}
}

static WhereFilter makeLongRangeFilter(String columnName, Condition condition, String value) {
static WhereFilter makeLongRangeFilter(String columnName, Condition condition, long value) {
switch (condition) {
case LESS_THAN:
return lt(columnName, RangeConditionFilter.parseLongFilter(value));
return lt(columnName, value);
case LESS_THAN_OR_EQUAL:
return leq(columnName, RangeConditionFilter.parseLongFilter(value));
return leq(columnName, value);
case GREATER_THAN:
return gt(columnName, RangeConditionFilter.parseLongFilter(value));
return gt(columnName, value);
case GREATER_THAN_OR_EQUAL:
return geq(columnName, RangeConditionFilter.parseLongFilter(value));
return geq(columnName, value);
default:
throw new IllegalArgumentException("RangeConditionFilter does not support condition " + condition);
throw new IllegalArgumentException("RangeFilter does not support condition " + condition);
}
}

Expand Down
Loading
Loading