The problem was in processing a subquery in the where clause that was categorized as a
CACHE_ITEM in the parse tree. The fix involved how we walk the parse tree in gp_walk().
This appears to be to fix equality matches in InfiniDB but at the same
time it breaks LIKE processing. Equality matching with trailing
whitespace was fixed in MCOL-1246 so the old InfiniDB patch can be
removed.
Outer join handling inside views was broken due to the joins being
processed twice. This patch brings back the code so that outer joins in
views are only processed once.
MariaDB Server 10.2.14 changed the order that CASE items are processed.
This broke the engine's CASE handling. This patch uses the new order
instead since this is what will be used in 10.2 and 10.3 going forward.
In ha_calpont_execplan, Allow OR to be parsed; in searched_case parsing, reverse the order of processing arguments so that ptWorkStack.pop() is executed in the same order as the arguments being processed.
In func_case, modify to pass left and right to getBoolVal, if they exist.
When ExeMgr processes a correlated exists filter for a subquery inside a
view the de-duplication check doesn't work. We sometimes check unique
with the view name, sometimes not. We don't need the view name here so
remove it if we don't have it.
Also push the view name in the subquery.
Cached conditions are things like (TRUE OR FALSE). They don't actually
add any value to the query and were breaking our working stack trying to
process them.
Cached conditions are things like (TRUE OR FALSE). They don't actually
add any value to the query and were breaking our working stack trying to
process them.
DOUBLE typecast was not supported and the failure detection caused a
crash.
This patch adds support for DOUBLE typecast and fixes the crash caused
when a non-supported function is detected as part of an arithmatic.
DOUBLE typecast was not supported and the failure detection caused a
crash.
This patch adds support for DOUBLE typecast and fixes the crash caused
when a non-supported function is detected as part of an arithmatic.
For LONGBLOB the string return length was 4GB for functions which got
converted to -1 and then to 20. This patch sets it to just under 2GB
which we use for LONGBLOB everywhere else.