You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "Qifan Chen (JIRA)" <ji...@apache.org> on 2015/07/08 21:16:05 UTC
[jira] [Closed] (TRAFODION-21) The existing plan is not reused even
when a HQC constant can fit the corresponding parameter
[ https://issues.apache.org/jira/browse/TRAFODION-21?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Qifan Chen closed TRAFODION-21.
-------------------------------
Resolution: Fixed
> The existing plan is not reused even when a HQC constant can fit the corresponding parameter
> --------------------------------------------------------------------------------------------
>
> Key: TRAFODION-21
> URL: https://issues.apache.org/jira/browse/TRAFODION-21
> Project: Apache Trafodion
> Issue Type: Bug
> Reporter: Qifan Chen
> Labels: performance
>
> When no histogram interval check is necessary, an existing HQC query plan is not reused even when a HQC constant can fit the corresponding HQC parameter by the type.
> The problem is with HQC caching of meta-data queries such as the following one:
> select text from TRAFODION.\"_MD_\".TEXT where text_uid = 1395060834168658846 and text_type = 4 and sub_id = 10 for read committed access order by seq_num",
> Column TEXT_UID is of LargeInt with a magnitude of 189. The constant 1395060834168658846 is parsed into a numeric constant value with a magnitude of 190. The existing code calls natype->errorsCanOccur() which returns true because the constant's magnitude of 190 is larger than target type's magnitude of 189. Since the constant does not fit LargeInt, caching reuse is impossible.
> The correct approach is to call Constant::canBeSafelyCoercedTo() instead. Here the constant 1395060834168658846 fits comfortably within a LargeInt, and therefore the HQC cached query plan can be reused.
> With the fix, compGeneral/TEST042 passes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)