Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
Impala 2.8.0
Description
IMPALA-1788 introduced constant folding in the FE, but that change did not consider that the function UUID() is not a constant expression. The behavioral regression is that UUID() will only be evaluated once. Example:
select uuid() from functional.alltypestiny; +--------------------------------------+ | uuid() | +--------------------------------------+ | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | | 9801bcbc-7b63-4703-bb48-221449d0d41e | +--------------------------------------+
Similarly, there are places in the BE (scalar-fn-call.h/cc) where we should not treat UUID() as constant.