Phase 2 for log reader TMUDF blueprint cmp-tmudf-compile-time-interface
Log reader TMUDF is mostly working now. Still need to set cqd NUM_PARALLEL_ESPS '<num of nodes>' on clusters. Still needs more work and more testing. Still seeing some issues with non-ASCII characters.
// SQL Syntax to invoke this function: // // select * from udf(event_log_reader( [options] )); // // The optional [options] argument is a character constant. The // following options are supported: // f: add file name output columns (see below) // t: turn on tracing // d: loop in the runtime code, to be able to attach a debugger // (debug build only) // p: force parallel execution on workstation environment with // virtual nodes (debug build only)
More detailed explanation of changes:
- PredefUdrReadfile.cpp: Work on event log reader TMUDF
- sqludr.*: New method to add formal parameters, allows TMUDF to accept optional parameters.
Made some changes for TMUDFs with arity 0 to avoid asserts and to be able to call okToAttemptESPParallelism in method RelExpr::synthPhysicalProperty(). This is needed for leaf operators (arity 0) that want to initiate parallel execution and TMUDFs seem to be first in that situation. Changed TableMappingUDF::synthPhysicalProperty to generate a partitioning function with multiple partitions (and no partitioning key, so far) if required.
Hybrid Query Cache feature implemented. The Hybrid Query Cache (HQC) is an enhancement of existing Query Cache, which is trying to find match queries in existing query cache at an earlier point, i.e. just after parser and before binder so as to avoid binder overhead if there's a hit. Two virutal table ISPs are added to show stats of Hybrid Query Cache. Add control of ISP to run locally or remotely. Changes after reviewers' comments. Fixup errors in SqlciErrors.txt that cause core/TEST014 failure. Fix minor issues about (hybrid)query cache ISP. Add HQC virtual table ISP tests to compGeneral/TEST042.