Fixes for a few scalar UDF bugs LP 1426605: change in NormRelExpr.cpp. When left linearizing a join backbone sufficients inputs were not being provided. The change ensures that inputs from the old tree and still marked as required inputs for a node in the new tree. LP 1420530: Error handling added to BiArith::bindNode. LP 1420938: Error handling to CREATE FUNCTION statement to flag more than 32 parameters. LP 1421438: showddl [function | procedure | table_mapping function] <name>; now works. If one of the optional tokens is not specified then we will look for a table called <name>.
Patch Set 1 Changes to address comments by Dave. One more fix in ExUdr.cpp. There is no LP for this bug. If a dll is missing at runtime or other LOAD errors during UDF fixup could lead to an assertion, since we try to place an error in UDF's up queue, before there are entries in the corresponding down queue. Fix is to remove this line and let existing error handling report this error. Thanks for your help Hans. Couple of items that I forgot to mention before 1) Changes in Analyzer.cpp related to printing predecessorJBBC are due to Hans. 2) Showddl code is mostly refactored from previous versions.
Support cancel for DDL, update stats, and utils This change propagates parent query ID to queries created by DDL, update stats and utils. In this way, preexisting code sets up child query IDs and the preexisting cancel broker code in RMS cancels the entire query tree below the indicated parent. Also added is logic to check for a canceled parent at the time a child query ID is setup in Statement::execute, to make the scheme more robust and to support a common scenario where the parent is compiling a child query at the time of cancel.
This change also makes ex_root_tcb::cancel to wait for cancel broker message completion. This fixes a problem where a query (e.g., CREATE INDEX or DROP INDEX) is prepared, executed once and gets an error, then re-execed. In this case, sqlci was not closing the statement after the error. To improve robustness, after an error we will now wait for message completion, if needed.
Since we do not yet have transaction protection for DDL, it will usually be required to cleanup canceled DDL operations by using the CLEANUP command.