Operations GT and LT are not pushed down to JDG. Indexes are enabled for all columns. Operations GE and LE are pushed down correctly. Example: Query: select intkey from smalla where intNum >= 5 order by intkey Plan: PROCESSOR PLAN: AccessNode(0) output=[c.intKey AS IntKey] SELECT g_0.intKey FROM SmallAs.smallARemotecache AS g_0 WHERE g_0.intNum >= 5 ORDER BY g_0.intKey ------------------------------------------------------------------------------ Query: select intkey from smalla where intNum > 5 order by intkey Plan: SortNode(0) output=[c.intKey AS IntKey] [SORT] [IntKey] ProjectNode(1) output=[c.intKey AS IntKey] [c.intKey AS IntKey] SelectNode(2) output=[c.intKey] c.intNum > 5 AccessNode(3) output=[c.intNum, c.intKey] SELECT g_0.intNum, g_0.intKey FROM SmallAs.smallARemotecache AS g_0
Steven Hawkins <shawkins> updated the status of jira TEIID-3625 to Resolved
Steven Hawkins <shawkins> updated the status of jira TEIID-3625 to Reopened
I wouldn't consider this a blocker for the release.
Van, I consider it as a blocker. It is a great perfomance issue. It takes really long to process the request which contains GT or LT operators. It is a regression. GT and LT operators were pushed down correctly in the previous build. I understand that you would have to backport TEIID-3210, which would probably bring more bugs in the product right now. Is there any other possiblity to fix this issue?
No, its too risky at this point in the cycle to backport teiid engine changes. Expecially for only 1 translator.
We'll see if we can get JDG team to fix this sooner. We'll need to change the default and provide guidance in the docs on how to enable it and what the risks are.
Ok, added the following to the factory: @TranslatorProperty(display="CompareCriteriaOrdered", description="If true, translator can support comparison criteria with the operator '=>' or '<=' ",advanced=true) @Override public boolean supportsCompareCriteriaOrdered() { return supportsCompareCriteriaOrdered; } public boolean setSupportsCompareCriteriaOrdered(boolean supports) { return supportsCompareCriteriaOrdered = supports; } And tested it by adding translator override to see the GE and LE pushed down: <translator name="infinispan-cache-dsl1" type="infinispan-cache-dsl"> <property name="supportsCompareCriteriaOrdered" value="true"/> </translator> See also: https://bugzilla.redhat.com/show_bug.cgi?id=1253660
Van, your fix/workaround is for bug BZ-1253660. It doesn't fix anything for this bug so I set it back to assigned.
So your saying, when the override is applied to the translator, you do not see a GE or LE criteria being pushed down? Remember, this is still only going to work properly on returning the correct results when the criteria is used on column(s) where it doesn't contain null's.
The override property works as expected, GE and LE operations are pushed down. However this bug is about GT and LT operations which are still not pushed down so I can't verify this bug.
As indicated in TEIID-3573, the support for NOT had to be turned off because of how JDG handles null's differently than SQL. So this operation is being handled by Teiid, and unfortunately, the GT and LT do not get pushed down. Could change the translator to add an override for supportsNotCriteria so that the user could enable push down of the operators.
That's a good idea because I think it is a significant performance issue.
Steven Hawkins <shawkins> updated the status of jira TEIID-3625 to Closed
Steven Hawkins <shawkins> updated the status of jira TEIID-3573 to Closed