SQL syntax to cancel executing query, phase 2 This check-in causes queries to register with the cancel broker using a nowait Seabed message, and to process the completion of the message by canceling the executing query if the cancel broker so indicates in the message reply. The check-in includes new test cases in the regression test to cancel different types of SELECT queries.
These types of queries do not yet respond to cancel: 1. Queries that are decomposed into child queries, e.g., CREATE INDEX, CREATE TABLE AS, UPDATE STATISTICS, etc; 2. UPDATE and DELETE 3. INSERT queries might work now, but haven't been tested.
Authorization checks for DDL & utilities Fixed issues from code comments.
LOAD/UNLOAD authorization checks:
Code was added during code generation to make sure user has privileges, if the user had necessary privileges, then the EXEUTIL parser flag is turned on to avoid further privilege checks. When load/unload completes, the parser flag is reset.
Update/showstats Statistics authorization checks:
Added a new error message Changed hs_globals to support a new isAuthorized method and store parser flags when class is instantiated and reset them when done Changed hs_cli.cpp to use new IF NOT EXISTS syntax when creating histogram tables, make owner of histogram tables DB__ROOT (will need to adjust when schema privileges happen), and clean up CreateHistTables method to remove old authorization mechanism Changed hs_update.cpp which controls the update and showstats operation to add authorization checks
Purgedata and populate index changes:
Changed CmpSeabaseDDLcommon.cpp to check privileges for purgedata Changed CmpSeabaseDDLindex.cpp to check privileges for popindex
Additional component privileges and checks:
Added support for new component privileges in PrivMgrMD.h/.cpp Added support for MANAGE_COMPONENTS Added support for CREATE_INDEX and DROP_INDEX component privs
Fixes from last delivery that were postponed:
Context.cpp - fix for previous code review CmpSeabaseDDLtable - added calls to deallocEHI PrivMgrMD - fixed wording in a comment
ComUser - added new convenience method - isRootUserID() NATable.cpp (setupPrivInfo) to always set up privInfo_ and to call the embedded compiler while extracting privileges Privilege adjustments to take advantage of privInfo stored in NATable: Added code to mark and rewind errors in diags.