Joe McDonnell created IMPALA-13179:
--------------------------------------
Summary: Disable tuple caching when using non-deterministic
functions
Key: IMPALA-13179
URL: https://issues.apache.org/jira/browse/IMPALA-13179
Project: IMPALA
Issue Type: Bug
Components: Frontend
Affects Versions: Impala 4.5.0
Reporter: Joe McDonnell
Some functions are non-deterministic, so tuple caching needs to detect those
functions and avoid caching at locations that are non-deterministic.
There are two different pieces:
# Correctness: If the key is constant but the results can be variable, then
that is a correctness issue. That can happen for genuinely random functions
like uuid(). It can happen when timestamp functions like now() are evaluated at
runtime.
# Performance: The frontend does constant-folding of functions that don't vary
during executions, so something like now() might be replaced by a hard-coded
integer. This means that the key contains something that varies frequently.
That can be a performance issue, because we can be caching things that cannot
be reused. This doesn't have the same correctness issue.
This ticket is focused on correctness piece. If uuid()/now()/etc are referenced
and would be evaluated at runtime, the location should be ineligible for tuple
caching.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)