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.
Fixes and removal of obsolete code. -- LP 1400556 'get tables in schema' is not supported on external hbase tables. An error is now returned. -- LP 1400553 Insert into external hbase tables in _ROW_ format must use column_create function and VALUES clause to create rows. An error is returned otherwise. -- a bug with that prevented a boundary case when sequence increment value was one less than largeint max has been fixed. -- error message to indicate what options can be used during alter sequence has been updated -- create table as select stmt now returns an error if running within a user transaction. This is the same behavior as other DDL operations. This will be removed once we have transaction support for DDL stmts. -- create table as select now uses non-transactional 'upsert using load' to populate target table instead of transactional 'insert...select' stmt. -- hive/test020 has been enabled. This tests for access to ORC files. -- obsolete sidetree insert and NVT user load code has been removed.