Normalizer interface for TMUDFs, blueprint cmp-tmudf-compile-time-interface Added new compiler interfaces:
describeParamsAndColumns has been extended to allow updating PARTITION BY and ORDER BY clauses specified for input tables.
describeDataFlowAndPredicates() allows the TMUDF to eliminate columns not needed by the query and to push predicates into the TMUDF or to the children.
describeConstraints() allows the TMUDF to see cardinality and uniqueness constraints of the table-valued inputs (children) and to synthesize cardinality and uniqueness constraints on the TMUDF result.
TMUDFs now have 3 function types: GENERIC - makes most conservative assumptions in the compiler MAPPER - assumes TMUDF carries no state between input rows REDUCER - assumes TMUDF carries no state between input partitions defined by PARTITION BY clause
Query id and user id are now available to the UDR.
Added doxygen documentation for the C++ UDR interface. The resulting web page will be published on the wiki. To generate the documentation yourself, do the following:
cd $MY_SQROOT/../sql/sqludr doxygen doxygen_tmudr.1.6.config # now open tmudr_1.0/html/index.html in a web browser
Misleading error when Hivestats can't be created When Update Statistics is performed on a Hive table, the trafodion.hivestats schema is created if it doesn't already exist. If the user issuing the ustat statement does not have the create_schema component privilege, this will fail, but the code as it existed ignored the error, assuming it was a "schema already exists" error, which is expected in most cases. If the schema does not exist, an error is then given when an attempt is made to create the histograms table in the non-existing schema.
This has been changed to check the error when the schema creation attempt fails, so the correct error is generated. This is a partial fix, because a user with manage_statistics privilege should not be prevented from executing Update Statistics just because the trafodion.hivestats schema did not already exist. The likely full solution would be to create the schema automatically at Trafodion initialization.