-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Pushdown domains with many ranges in Oracle connector #4918
Conversation
@@ -128,7 +128,7 @@ protected TestTable createTableWithDefaultColumns() | |||
@Override | |||
public void testLargeIn() | |||
{ | |||
int numberOfElements = 1000; | |||
int numberOfElements = 5000; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we remove override now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, this was overridden only to change the number of elements..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is still this extra part in Oracle test which is not present in superclass:
String arrayValues = range(0, numberOfElements)
.mapToObj(i -> format("ARRAY[%s, %s, %s]", i, i + 1, i + 2))
.collect(joining(", "));
assertQuery("SELECT ARRAY[0, 0, 0] in (ARRAY[0, 0, 0], " + arrayValues + ")", "values true");
assertQuery("SELECT ARRAY[0, 0, 0] in (" + arrayValues + ")", "values false");
I can call out to super anyway though, even if we still want test with arrays.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
} | ||
else { | ||
// full pushdown | ||
return new PredicatePushdownController.DomainPushdownResult(domain, Domain.all(domain.getType())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You eliminate a filter here. Do we have a predicate pushdown test for Oracle, like we have for postgres?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added.
c6f3a9a
to
ed4a726
Compare
ac |
ab0a9a9
to
422bd3c
Compare
If domain has more that 1000 ranges it is simplified, before pushdown attempt. Without this query would fails with: ORA-01795: maximum number of expressions in a list is 1000
422bd3c
to
4769784
Compare
If domain has more that 1000 ranges it is simplified, before pushdown
attempt. Without this query would fails with:
ORA-01795: maximum number of expressions in a list is 1000