Github user DaveBirdsall commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1584#discussion_r191598477
--- Diff: core/sql/optimizer/ValueDesc.cpp ---
@@ -6382,7 +6382,32 @@ void ValueIdList::convertToTextKey(const
ValueIdList& keyList, NAString& result)
{
short vLen = val.length();
- if ((constType->getTypeQualifier() == NA_NUMERIC_TYPE) &&
+ if (constType->getTypeQualifier() == NA_INTERVAL_TYPE)
+ {
+ // In some code paths, the text may have "INTERVAL 'xxx'
<qualifier>"
+ // junk around it so we have to strip that off. (Example: An
equality
+ // predicate when query caching has been turned off via
+ // CQD QUERY_CACHE '0'. Another example happens with BETWEEN,
whether
+ // or not query caching is turned off. See JIRA TRAFODION-3088
for
+ // that example.)
+ Lng32 start = val.index("'");
+ Lng32 minus = val.index("-");
+ if (start > 0)
+ {
+ Lng32 end = val.index("'", start+1);
+ if (end > 0)
+ {
+ val = val(start+1, (end-start-1));
+ if (minus > 0)
--- End diff --
Indeed, you are correct! Good catch. Will fix.
---