Joe McDonnell has uploaded this change for review. ( http://gerrit.cloudera.org:8080/22011
Change subject: IMPALA-13179: Make non-deterministic functions ineligible for tuple caching ...................................................................... IMPALA-13179: Make non-deterministic functions ineligible for tuple caching Non-deterministic functions should make a location ineligible for caching. Unlike existing definitions of non-determinism like FunctionCallExpr.isNondeterministicBuiltinFn(), the non-determinism needs to apply over time and across query boundaries, so it is a broader list of functions. The following are considered non-deterministic in this change: 1. Random functions like rand/random/uuid 2. Current time functions like now/current_timestamp 3. Session/system information like current_user/pid/coordinator 4. AI functions 5. UDFs With enable_expr_rewrites=true, constant folding can replace some of these with a single constant (e.g. now() becomes a specific timestamp). This is not a correctness problem for tuple caching, because the specific value is incorporated into the cache key. Testing: - Added test cases to TupleCacheTest Change-Id: I9601dba87b3c8f24cbe42eca0d8070db42b50488 --- M fe/src/main/java/org/apache/impala/analysis/FunctionCallExpr.java M fe/src/main/java/org/apache/impala/planner/TupleCacheInfo.java M fe/src/test/java/org/apache/impala/planner/TupleCacheTest.java 3 files changed, 108 insertions(+), 32 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/11/22011/1 -- To view, visit http://gerrit.cloudera.org:8080/22011 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9601dba87b3c8f24cbe42eca0d8070db42b50488 Gerrit-Change-Number: 22011 Gerrit-PatchSet: 1 Gerrit-Owner: Joe McDonnell <[email protected]>
