Log reading TMUDF, phase 3

blueprint cmp-tmudf-compile-time-interface

- Addressed review comments from phase 2. See
  https://review.trafodion.org/#/c/824
- Added a "parse_status" column to the TMUDF, see
  updated syntax below
- Added versioning info to new DLL libudr_predef.so
- EVENT_LOG_READER TMUDF now should choose the correct
  degree of parallelism without the need for CQDs
- Brought back the REPLICATE PARTITION keyword, which
  is used in the TMUDF syntax. This should fix the failure
  in regression test udf/TEST108.
- Some remaining issues:
   - Newlines in the error message are not handled well,
     at best the additional lines are lost, at worst
     they will cause parse errors
   - log_file_node output column is always 0
   - Code is not yet integrated with changes to event
     logging
   - Not yet tested on clusters

Updated syntax for the log reader TMUDF:

 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)

 Returned columns:

 log_ts        timestamp(6),
 severity      char(10 bytes) character set utf8,
 component     char(24 bytes) character set utf8,
 node_number   integer,
 cpu           integer,
 pin           integer,
 process_name  char(12 bytes) character set utf8,
 sql_code      integer,
 query_id      varchar(200 bytes) character set utf8,
 message       varchar(4000 bytes) character set utf8

 if option "f" was specified, we have four more columns:

 log_file_node integer not null,
 log_file_name varchar(200 bytes) character set utf8 not null,
 log_file_line integer not null,
 parse_status  char(2 bytes) character set utf8 not null

 (log_file_node, log_file_name, log_file_line) form a unique key
 in the result table. parse_status indicates whether there were
 any errors reading the information:
 '  ' (two blanks): no errors
 'E'  (as first or second character): parse error
 'T'  (as first or second character): truncation or over/underflow
                                      occurred
 'C'  (as first or second character): character conversion error

Change-Id: Iee3fc8383d4125f0f9b6c6035aa90bb82ceee92e
Merge "Log reading TMUDF, phase 3"