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.
Enabling HASH2 partitioning of salted tables - In FileScan::preCodeGen(), make sure we add part key predicates in all 3 cases, a) MDAM, b) with an existing search key, c) without a search key. - Make sure we don’t do the HBase “constant keys” optimization when we have partitioning key predicates (HBaseAccess::preCodeGen()). - Since the partition input values for a HASH2 function are actual hash values, the key predicate needs to call the Hash2Distrib function to compute the salt value (PartitioningFunction::createBetweenPartitioningKeyPredicates()) - When we replace an existing search key with a new one for the partitioning key predicates, try to include the existing predicates as well (TableHashPartitioningFunction::createSearchKey())