>>obey TEST010(setup);
>>--------------------------------------------------------------------------
>>
>>cqd hbase_max_column_name_length '10';

--- SQL operation complete.
>>cqd hbase_max_column_val_length '20';

--- SQL operation complete.
>>cqd hbase_max_column_info_length '60';

--- SQL operation complete.
>>
>>
>>cqd hbase_serialization 'OFF';

--- SQL operation complete.
>>cqd hbase_filter_preds 'OFF';

--- SQL operation complete.
>>cqd traf_aligned_row_format 'OFF';

--- SQL operation complete.
>>
>>-- query_cache on(default), mdam_scan_method on(default)
>>cqd query_cache '1024';

--- SQL operation complete.
>>cqd mdam_scan_method 'ON';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:25:11 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:25:11 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:25:11 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304713548391
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968296
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304713627230
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968296
  select_list ............ %(1), %('1')
  input_variables ........ %(1), %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = %('1'))
  begin_key .............. (A = %(1))
  end_key ................ (A = %(1))

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304713727245
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968296
  select_list ............ TRAFODION.SCH.T010T1.A, %('1')
  input_variables ........ %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = %('1'))

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304712746144
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a = 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968296
  select_list ............ %(2), TRAFODION.SCH.T010T1.B
  input_variables ........ %(2)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  begin_key .............. (A = %(2))
  end_key ................ (A = %(2))

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304714542757
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = %('a')) and (C = %(1))

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304714609170
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = %('a'))
                             and (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304714682650
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304714760334
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968703
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a'))
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304714959599
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811968703
  input_variables ........ %('upd'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('upd'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304715042908
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = %('a')) and (C = %(1))

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304715100531
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = %('a'))
                             and (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304715175937
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811968703
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304715268897
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811968703
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a'))
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304715430313
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811968703
  input_variables ........ %('uuu'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('uuu'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- query_cache off, mdam_scan_method off
>>cqd query_cache '0';

--- SQL operation complete.
>>cqd mdam_scan_method 'OFF';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:25:49 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:25:49 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:25:49 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304751044503
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972377
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304751132896
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972377
  select_list ............ 1, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304751234081
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972377
  select_list ............ TRAFODION.SCH.T010T1.A, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304751352362
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972377
  select_list ............ 1, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     5  1a5       
          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304753693894
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1,a,1
  unique_rows ............ 4,a,1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304753750298
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1,a,1
  unique_rows ............ 1,a,3
  unique_rows ............ 2,a,1
  unique_rows ............ 2,a,3
  unique_rows ............ 4,a,1
  unique_rows ............ 4,a,3
  columns ................ all
  begin_keys(incl) ....... 1,a,5
  end_keys(incl) ......... 1,a,2147483647
  columns ................ all
  begin_keys(incl) ....... 2,a,5
  end_keys(incl) ......... 2,a,2147483647
  columns ................ all
  begin_keys(incl) ....... 4,a,5
  end_keys(incl) ......... 4,a,2147483647
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304753793359
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1,a,1
  unique_rows ............ 1,a,3
  unique_rows ............ 2,a,1
  unique_rows ............ 2,a,3
  unique_rows ............ 4,a,1
  unique_rows ............ 4,a,3
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304753832303
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972619


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 2,a,1
  unique_rows ............ 2,a,3
  unique_rows ............ 4,a,1
  unique_rows ............ 4,a,3
  unique_rows ............ 6,a,1
  unique_rows ............ 6,a,3
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a')

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304753912740
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811972619


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,a,-2147483648
  end_keys(excl) ......... 4,a,2
  columns ................ all
  begin_keys(incl) ....... 4,b,-2147483648
  end_keys(excl) ......... 4,b,2
  new_rec_expr ........... (D assign 'upd')
  predicate .............. (C < 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304753990824
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a') and (C = cast(1)) and ((A = 1) or (A = 4))

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304754029491
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a') and (((A = 1) or (A = 2)) or (A = 4)) and
                             (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304754067803
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811972619
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a') and (((A = 1) or (A = 2)) or (A = 4)) and
                             ((C = 1) or (C = 3))

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304754107558
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811972619


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a') and (((A = 2) or (A = 4)) or (A = 6)) and
                             ((C = 1) or (C = 3))

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304754184445
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811972619


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,,-2147483648
  end_keys(incl) ......... 4,??????????,2
  new_rec_expr ........... (D assign 'uuu')
  predicate .............. ((B = 'a') or (B = 'b')) and (C < 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- query_cache on, mdam_scan_method off
>>cqd query_cache '1024';

--- SQL operation complete.
>>cqd mdam_scan_method 'OFF';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:26:18 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:26:18 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:26:18 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304779721578
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975304
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304779821552
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975304
  select_list ............ %(1), %('1')
  input_variables ........ %(1), %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = %('1'))
  begin_key .............. (A = %(1))
  end_key ................ (A = %(1))

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304779906972
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975304
  select_list ............ TRAFODION.SCH.T010T1.A, %('1')
  input_variables ........ %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = %('1'))

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304778960764
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a = 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975304
  select_list ............ %(2), TRAFODION.SCH.T010T1.B
  input_variables ........ %(2)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  begin_key .............. (A = %(2))
  end_key ................ (A = %(2))

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304782258948
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (C = %(1)) and ((A = 1) or (A = 4))
  begin_key .............. (A = <min>), (B = %('a')), (C = %(1))
  end_key ................ (A = <max>), (B = %('a')), (C = %(1))

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304782305790
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 1) or (A = 2)) or (A = 4))
                             and (((C = 1) or (C = 3)) or (C >= 5))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304782347906
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 1) or (A = 2)) or (A = 4))
                             and ((C = 1) or (C = 3))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304782399979
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975515
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 2) or (A = 4)) or (A = 6))
                             and ((C = 1) or (C = 3))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304782487785
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  ObjectUIDs ............. 4453058303811975515
  input_variables ........ %('upd'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('upd'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304782567336
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (C = %(1)) and ((A = 1) or (A = 4))
  begin_key .............. (A = <min>), (B = %('a')), (C = %(1))
  end_key ................ (A = <max>), (B = %('a')), (C = %(1))

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304782607298
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 1) or (A = 2)) or (A = 4))
                             and (((C = 1) or (C = 3)) or (C >= 5))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304782645724
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811975515
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 1) or (A = 2)) or (A = 4))
                             and ((C = 1) or (C = 3))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304782694053
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811975515
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a')) and (((A = 2) or (A = 4)) or (A = 6))
                             and ((C = 1) or (C = 3))
  begin_key .............. (A = <min>), (B = %('a')), (C = <min>)
  end_key ................ (A = <max>), (B = %('a')), (C = <max>)

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304782772302
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... OFF
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811975515
  input_variables ........ %('uuu'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('uuu'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- query_cache off, mdam_scan_method on
>>cqd query_cache '0';

--- SQL operation complete.
>>cqd mdam_scan_method 'ON';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:26:50 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:26:50 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:26:50 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304812067827
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978441
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304812165826
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978441
  select_list ............ 1, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304812270202
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978441
  select_list ............ TRAFODION.SCH.T010T1.A, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304812367499
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978441
  select_list ............ 1, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1,#1:2
  key_columns ............ A

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304814574894
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = 'a') and (C = 1)

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304814637647
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = 'a') and
                             (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304814713897
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304814788364
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978693


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a')
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304814931991
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811978693


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,a,-2147483648
  end_keys(excl) ......... 4,a,2
  columns ................ all
  begin_keys(incl) ....... 4,b,-2147483648
  end_keys(excl) ......... 4,b,2
  new_rec_expr ........... (D assign 'upd')
  predicate .............. (C < 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304814999113
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = 'a') and (C = 1)

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304815058061
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = 'a') and
                             (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304815129977
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811978693
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3,#1:4
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304815206675
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811978693


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1,#1:2,#1:3
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a')
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304815341474
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... OFF
  HBASE_FILTER_PREDS ..... OFF
  TRAF_ALIGNED_ROW_FORMAT  OFF
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811978693


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,,-2147483648
  end_keys(incl) ......... 4,??????????,2
  new_rec_expr ........... (D assign 'uuu')
  predicate .............. ((B = 'a') or (B = 'b')) and (C < 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- run with hbase_serialization ON
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>cqd hbase_serialization 'ON';

--- SQL operation complete.
>>cqd hbase_filter_preds 'ON';

--- SQL operation complete.
>>cqd traf_aligned_row_format 'ON';

--- SQL operation complete.
>>
>>-- query_cache on(default), mdam_scan_method on(default)
>>cqd query_cache '1024';

--- SQL operation complete.
>>cqd mdam_scan_method 'ON';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:27:20 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:27:20 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:27:20 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304841870306
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981438
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304841968327
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981438
  select_list ............ %(1), %('1')
  input_variables ........ %(1), %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... (B = %('1'))
  begin_key .............. (A = %(1))
  end_key ................ (A = %(1))

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304842057826
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981438
  select_list ............ TRAFODION.SCH.T010T1.A, %('1')
  input_variables ........ %('1')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... (B = %('1'))

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304841099325
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a = 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981438
  select_list ............ %(2), TRAFODION.SCH.T010T1.B
  input_variables ........ %(2)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1
  key_columns ............ A
  begin_key .............. (A = %(2))
  end_key ................ (A = %(2))

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304844349013
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = %('a')) and (C = %(1))

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304844409731
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = %('a'))
                             and (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304844484629
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304844560891
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981668
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a'))
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304844715624
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811981668
  input_variables ........ %('upd'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('upd'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304844790614
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'), %(1),
                             TRAFODION.SCH.T010T2.D
  input_variables ........ %('a'), %(1)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = %('a')) and (C = %(1))

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304844844169
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = %('a'))
                             and (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304844914885
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811981668
  select_list ............ TRAFODION.SCH.T010T2.A, %('a'),
                             TRAFODION.SCH.T010T2.C, TRAFODION.SCH.T010T2.D
  input_variables ........ %('a')


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304844979384
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811981668
  input_variables ........ %('a')


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = %('a')) and (C = C)
  end_key ................ (A = A) and (B = %('a')) and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  executor_predicates .... (B = %('a'))
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = %('a'))

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304845119317
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ........ 1,024
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811981668
  input_variables ........ %('uuu'), %(4)


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  new_rec_expr ........... (D assign %('uuu'))
  predicate .............. (C < 2) and ((B = 'a') or (B = 'b'))
  begin_key .............. (A = %(4)) and (B = '<min>') and (C = <min>)
  end_key ................ (A = %(4)) and (B = '<max>') and (C = 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- query_cache off, mdam_scan_method on
>>cqd query_cache '0';

--- SQL operation complete.
>>cqd mdam_scan_method 'ON';

--- SQL operation complete.
>>obey TEST010(clean_up);
>>--------------------------------------------------------------------------
>>drop table if exists t010t1;

--- SQL operation complete.
>>drop table if exists t010t2;

--- SQL operation complete.
>>drop table if exists t010t3;

--- SQL operation complete.
>>
>>obey TEST010(tests);
>>--------------------------------------------------------------------------
>>
>>create table if not exists t010t1 (a int not null, b char(10), primary key(a));

--- SQL operation complete.
>>create table if not exists t010t2 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c));

--- SQL operation complete.
>>create table if not exists t010t3 (a int not null, b char(10) not null, c int not null, d char(10), primary key(a,b,c))
+>  salt using 4 partitions on (a,b);

--- SQL operation complete.
>>
>>invoke t010t1;

-- Definition of Trafodion table TRAFODION.SCH.T010T1
-- Definition current  Wed Mar 15 02:27:48 2017

  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                CHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT DEFAULT NULL
  )
  PRIMARY KEY (A ASC)

--- SQL operation complete.
>>invoke hbase."_CELL_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_CELL_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:27:48 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_FAMILY                       VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_NAME                         VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_TIMESTAMP                    LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , COL_VALUE                        VARCHAR(20) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>invoke hbase."_ROW_"."TRAFODION.SCH.T010T1";

-- Definition of Trafodion table HBASE."_ROW_"."TRAFODION.SCH.T010T1"
-- Definition current  Wed Mar 15 02:27:49 2017

  (
    ROW_ID                           VARCHAR(10) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , COLUMN_DETAILS                   VARCHAR(60) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  )
  PRIMARY KEY (ROW_ID ASC)

--- SQL operation complete.
>>
>>insert into t010t1 values (1, 'a'), (2, 'b'), (3, 'c');

--- 3 row(s) inserted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>select * from t010t1 where a = 2;

A            B         
-----------  ----------

          2  b         

--- 1 row(s) selected.
>>
>>select * from t010t1 where a = 2 or a = 3;

A            B         
-----------  ----------

          2  b         
          3  c         

--- 2 row(s) selected.
>>
>>delete from t010t1 where a = 4;

--- 0 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          2  b         
          3  c         

--- 3 row(s) selected.
>>
>>delete from t010t1 where a = 2;

--- 1 row(s) deleted.
>>
>>select * from t010t1;

A            B         
-----------  ----------

          1  a         
          3  c         

--- 2 row(s) selected.
>>
>>-------------------
>>-- check query plan
>>-------------------
>>
>>-- no sort operator should present when order by on primary key column
>>prepare xx from select * from t010t1 order by a;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see a sort when order by on non key column
>>prepare xx from select * from t010t1 order by b;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

2    .    3    root                                                  1.00E+002
1    .    2    sort                                                  1.00E+002
.    .    1    trafodion_scan                  T010T1                1.00E+002

--- SQL operation complete.
>>
>>-- should see no sort operator when selecting from one salt bucket
>>prepare xx from select * from t010t3 where (a,b) = (1,'b') order by c;

--- SQL command prepared.
>>explain options 'f' xx;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+000
.    .    1    trafodion_scan                  T010T3                1.00E+000

--- SQL operation complete.
>>
>>-- selectPred should present due to the 2nd disjunct b='1'
>>prepare xx from select * from t010t1 where a=1 or b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304870397294
ROWS_OUT ................ 11
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 or b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 11
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984293
  select_list ............ TRAFODION.SCH.T010T1.A, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 11
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 51
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... ((A = 1) or (B = '1'))

--- SQL operation complete.
>>
>>-- Optimization: with only one disjunct, the selectPred should be empty
>>-- and the executor predicate should contain the non-key predicate
>>prepare xx from select * from t010t1 where a=1 and b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304870488453
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1 and b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984293
  select_list ............ 1, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a full hbase SCAN
>>prepare xx from select * from t010t1 where b='1';

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304870577345
ROWS_OUT ................ 10
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where b='1';


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality ... 10
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984293
  select_list ............ TRAFODION.SCH.T010T1.A, '1'


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................ 10
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  begin_keys(incl)
  end_keys(incl)
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A
  executor_predicates .... (B = '1')

--- SQL operation complete.
>>
>>-- should see a unique hbase GET 
>>prepare xx from select * from t010t1 where a=1;

--- SQL command prepared.
>>explain xx;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... XX
PLAN_ID .................. 212356304870656226
ROWS_OUT ................. 1
EST_TOTAL_COST ........... 0.01
STATEMENT ................ select * from t010t1 where a=1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 1
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984293
  select_list ............ 1, TRAFODION.SCH.T010T1.B


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T1
REQUESTS_IN .............. 1
ROWS_OUT ................. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 1
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan of table TRAFODION.SCH.T010T1
  object_type ............ Trafodion
  columns ................ all
  unique_rows ............ 1
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed .......... 1
  column_retrieved ....... #1:1
  key_columns ............ A

--- SQL operation complete.
>>
>>insert into t010t2 values
+>(1, 'a', 1, '1a1'),
+>(1, 'a', 3, '1a3'),
+>(1, 'a', 5, '1a5'),
+>(1, 'c', 1, '1c1'),
+>(2, 'a', 1, '2a1'),
+>(2, 'a', 2, '2a2'),
+>(2, 'c', 3, '2c3'),
+>(4, 'a', 1, '4a1'),
+>(4, 'b', 1, '4b1'),
+>(4, 'b', 2, '4b2');

--- 10 row(s) inserted.
>>
>>insert into t010t3 select * from t010t2;

--- 10 row(s) inserted.
>>
>>prepare x1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>
>>execute x1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  4a1       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare x2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute x2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare x3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  4a1       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare x4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute x4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute x3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare x5 from 
+>update t010t2 set d='upd' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute x5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  upd       
          4  b                     1  upd       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS '1';

--- SQL operation complete.
>>
>>prepare y1 from
+>select * from t010t2 where a in (1,4) and b='a' and c = 1;

--- SQL command prepared.
>>execute y1;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          4  a                     1  upd       

--- 2 row(s) selected.
>>-- expect 1a1, 4a1
>>
>>prepare y2 from
+>select * from t010t2 where a in (1,2,4) and b='a' and (c in (1,3) or c>=5);

--- SQL command prepared.
>>execute y2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 5 row(s) selected.
>>-- expect 1a1, 1a3, 1a5, 2a1, 4a1
>>
>>prepare y3 from
+>select * from t010t2 where a in (1,2,4) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          2  a                     1  2a1       
          4  a                     1  upd       

--- 4 row(s) selected.
>>-- expect 1a1, 1a3, 2a1, 4a1
>>
>>prepare y4 from
+>delete from t010t2 where a in (2,4,6) and b='a' and c in (1,3);

--- SQL command prepared.
>>execute y4;

--- 2 row(s) deleted.
>>-- expect 2 rows deleted, 2a1 and 4a1
>>execute y3;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       

--- 2 row(s) selected.
>>-- expect 1a1, 1a3
>>
>>insert into t010t2 values
+>(2, 'a', 1, '2a1'),
+>(4, 'a', 1, '4a1');

--- 2 row(s) inserted.
>>
>>prepare y5 from 
+>update t010t2 set d='uuu' where a=4 and b in ('a', 'b') and c < 2;

--- SQL command prepared.
>>execute y5;

--- 2 row(s) updated.
>>-- execute 2 rows updated, 4a1 and 4b1
>>select * from t010t2;

A            B           C            D         
-----------  ----------  -----------  ----------

          1  a                     1  1a1       
          1  a                     3  1a3       
          1  a                     5  1a5       
          1  c                     1  1c1       
          2  a                     1  2a1       
          2  a                     2  2a2       
          2  c                     3  2c3       
          4  a                     1  uuu       
          4  b                     1  uuu       
          4  b                     2  4b2       

--- 10 row(s) selected.
>>
>>cqd HBASE_MAX_NUM_SEARCH_KEYS reset;

--- SQL operation complete.
>>
>>explain x1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X1
PLAN_ID .................. 212356304872859573
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = 'a') and (C = 1)

--- SQL operation complete.
>>explain x2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X2
PLAN_ID .................. 212356304872923669
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = 'a') and
                             (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain x3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X3
PLAN_ID .................. 212356304872999893
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain x4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X4
PLAN_ID .................. 212356304873072049
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984530


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a')
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain x5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... X5
PLAN_ID .................. 212356304873229690
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='upd'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  ObjectUIDs ............. 4453058303811984530


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,a,-2147483648
  end_keys(excl) ......... 4,a,2
  columns ................ all
  begin_keys(incl) ....... 4,b,-2147483648
  end_keys(excl) ......... 4,b,2
  new_rec_expr ........... (D assign 'upd')
  predicate .............. (C < 2)

--- SQL operation complete.
>>explain y1;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y1
PLAN_ID .................. 212356304873302029
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,4) and b='a' and c = 1;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', 1,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... ((A = 1) or (A = 4)) and (B = 'a') and (C = 1)

--- SQL operation complete.
>>explain y2;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y2
PLAN_ID .................. 212356304873366824
ROWS_OUT ................. 5
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and (c in (1,
                             3) or c>=5);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 5
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 5
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and (B = 'a') and
                             (((C = 1) or (C = 3)) or (C >= 5))

--- SQL operation complete.
>>explain y3;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y3
PLAN_ID .................. 212356304873437012
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0
STATEMENT ................ select *
                           from t010t2
                           where a in (1,2,4) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811984530
  select_list ............ TRAFODION.SCH.T010T2.A, 'a', TRAFODION.SCH.T010T2.C,
                             TRAFODION.SCH.T010T2.D


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  mdam_disjunct .......... (((A = 1) or (A = 2)) or (A = 4)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain y4;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y4
PLAN_ID .................. 212356304873513284
ROWS_OUT ................. 4
EST_TOTAL_COST ........... 0.01
STATEMENT ................ delete from t010t2
                           where a in (2,4,6) and b='a' and c in (1,3);


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 4        ONLY CHILD 3
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 4
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811984530


TUPLE_FLOW ================================  SEQ_NO 3        CHILDREN 1, 2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est ........... 4
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  join_type .............. inner
  join_method ............ in-order nested


TRAFODION_VSBB_DELETE =====================  SEQ_NO 2        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 4
ROWS/REQUEST ............. 1
EST_OPER_COST ............ 0.01
EST_TOTAL_COST ........... 0.01
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_vsbb_delete TRAFODION.SCH.T010T2
  begin_key .............. (A = A) and (B = 'a') and (C = C)
  end_key ................ (A = A) and (B = 'a') and (C = C)


TRAFODION_SCAN ============================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 4
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est .......... 99
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  scan_type .............. subset scan limited by mdam of table
                             TRAFODION.SCH.T010T2
  object_type ............ Trafodion
  cache_size ........... 100
  small_scanner .......... ON
  probes ................. 1
  rows_accessed ........ 100
  column_retrieved ....... #1:1
  key_columns ............ A, B, C
  executor_predicates .... (B = 'a')
  mdam_disjunct .......... (((A = 2) or (A = 4)) or (A = 6)) and ((C = 1) or (C
                             = 3)) and (B = 'a')

--- SQL operation complete.
>>explain y5;

------------------------------------------------------------------ PLAN SUMMARY
MODULE_NAME .............. DYNAMICALLY COMPILED
STATEMENT_NAME ........... Y5
PLAN_ID .................. 212356304873668121
ROWS_OUT ................. 2
EST_TOTAL_COST ........... 0
STATEMENT ................ update t010t2
                           set d='uuu'
                           where a=4 and b in ('a', 'b') and c < 2;


------------------------------------------------------------------ NODE LISTING
ROOT ======================================  SEQ_NO 2        ONLY CHILD 1
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  olt_optimization ....... used
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  statement_index ........ 0
  affinity_value ......... 0
  max_max_cardinality .... 2
  total_overflow_size .... 0.00 KB
  upd_action_on_error .... xn_rollback
  xn_access_mode ......... read_only
  xn_autoabort_interval    0
  auto_query_retry ....... enabled
  plan_version ....... 2,600
  embedded_arkcmp ........ used
  IS_SQLCI ............... ON
  LDAP_USERNAME
  MODE_SEABASE ........... ON
  SEABASE_VOLATILE_TABLES  ON
  HBASE_ASYNC_DROP_TABLE   OFF
  HBASE_SMALL_SCANNER .... SYSTEM
  TRAF_INDEX_CREATE_OPT    ON
  SCHEMA ................. TRAFODION.SCH
  HBASE_MAX_COLUMN_NAME_  10
  HBASE_MAX_COLUMN_VAL_L  20
  HBASE_MAX_COLUMN_INFO_  60
  HBASE_SERIALIZATION .... ON
  HBASE_FILTER_PREDS ..... ON
  TRAF_ALIGNED_ROW_FORMAT  ON
  QUERY_CACHE ............ 0
  MDAM_SCAN_METHOD ....... ON
  HBASE_MAX_NUM_SEARCH_KE  1
  ObjectUIDs ............. 4453058303811984530


TRAFODION_UPDATE ==========================  SEQ_NO 1        NO CHILDREN
TABLE_NAME ............... TRAFODION.SCH.T010T2
REQUESTS_IN .............. 1
ROWS_OUT ................. 2
EST_OPER_COST ............ 0
EST_TOTAL_COST ........... 0
DESCRIPTION
  max_card_est ........... 2
  fragment_id ............ 0
  parent_frag ............ (none)
  fragment_type .......... master
  iud_type ............... trafodion_update TRAFODION.SCH.T010T2
  columns ................ all
  begin_keys(incl) ....... 4,,-2147483648
  end_keys(incl) ......... 4,??????????,2
  new_rec_expr ........... (D assign 'uuu')
  predicate .............. ((B = 'a') or (B = 'b')) and (C < 2)

--- SQL operation complete.
>>
>>select "_SALT_", * from t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  4a1       
         1            4  b                     1  4b1       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>select "_SALT_", * from t010t3 where a=1 and b='c';

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       

--- 1 row(s) selected.
>>
>>update t010t3 set d='2axu' where a=2 and b='a';

--- 2 row(s) updated.
>>-- 2 rows updated
>>update t010t3 set d='4b1u' where a=4 and b='b' and c <= 1;

--- 1 row(s) updated.
>>-- 1 row updated
>>update t010t3 set a=3 where a=2;

--- 3 row(s) updated.
>>-- 3 rows updated
>>delete from t010t3 where a=3 and b='c' and c=3;

--- 1 row(s) deleted.
>>-- 1 row deleted
>>delete from t010t3 where d like '2%u %';

--- 2 row(s) deleted.
>>-- 2 rows deleted
>>select "_SALT_", * from t010t3;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         1            1  c                     1  1c1       
         1            4  b                     1  4b1u      
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  4a1       

--- 7 row(s) selected.
>>-- 7 rows
>>merge into t010t3
+>  using (select * from t010t2) as src
+>  on ((src.a, src.b, src.c) = (a,b,c))
+>when matched
+>  then update set d = src.d
+>when not matched
+>  then insert values (src.a, src.b, src.c, src.d)
+>;

--- 10 row(s) updated.
>>-- 10 rows updated
>>select "_SALT_", * from t010t2 natural join t010t3 order by a,b,c;

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         1            1  c                     1  1c1       
         3            2  a                     1  2a1       
         3            2  a                     2  2a2       
         0            2  c                     3  2c3       
         2            4  a                     1  uuu       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       

--- 10 row(s) selected.
>>-- expect 10 rows, same as each individual table
>>
>>select "_SALT_", * from table(table t010t3, partition number 4);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         3            2  a                     1  2a1       
         3            2  a                     2  2a2       

--- 2 row(s) selected.
>>select "_SALT_", * from table(table t010t3, partition number from 1 to 3);

_SALT_      A            B           C            D         
----------  -----------  ----------  -----------  ----------

         0            2  c                     3  2c3       
         1            1  c                     1  1c1       
         1            4  b                     1  uuu       
         1            4  b                     2  4b2       
         2            1  a                     1  1a1       
         2            1  a                     3  1a3       
         2            1  a                     5  1a5       
         2            4  a                     1  uuu       

--- 8 row(s) selected.
>>-- 2 statements above must return 10 rows total
>>
>>
>>-- other mdam queries
>>cqd mdam_scan_method 'ON';

--- SQL operation complete.
>>cqd query_cache '1024';

--- SQL operation complete.
>>obey TEST010(otherMdam);
>>drop table if exists minotaur.events_load75;

--- SQL operation complete.
>>create schema if not exists minotaur;

--- SQL operation complete.
>>CREATE TABLE if not exists TRAFODION.MINOTAUR.EVENTS_LOAD75
+>  (
+>    SRCIP                            CHAR(45) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , SRCPORT                          INT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , DSTIP                            VARCHAR(45) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , DSTPORT                          INT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , AGENTRECEIPTTIME                 TIMESTAMP(0) NO DEFAULT NOT NULL NOT
+>      DROPPABLE
+>  , CATEGORYOUTCOME                  VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , CATEGORYSIGNIFICANCE             VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , DEVICESEVERITY                   VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , CATEGORYDEVICETYPE               VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , DEVICECUSTOMSTRING1              VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , FLEXSTRING1                      VARCHAR(30) CHARACTER SET ISO88591 COLLATE
+>      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , EVENT_ID                         LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , PRIMARY KEY (EVENT_ID ASC,SRCIP ASC, AGENTRECEIPTTIME ASC)
+>  )
+>  SALT USING 75 PARTITIONS
+>  hbase_options (blockcache = 'TRUE', TTL = '1000')
+>;

--- SQL operation complete.
>>
>>prepare s from
+>select * from minotaur.events_load75<<+ cardinality 10e6 >>  where srcip = '120.120.120.1' and agentreceipttime = timestamp '2014-05-28 15:10:33';

--- SQL command prepared.
>>
>>execute s;

--- 0 row(s) selected.
>>
>>showddl TRAFODION.MINOTAUR.EVENTS_LOAD75;

CREATE TABLE TRAFODION.MINOTAUR.EVENTS_LOAD75
  (
    SRCIP                            CHAR(45) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , SRCPORT                          INT NO DEFAULT NOT NULL NOT DROPPABLE
  , DSTIP                            VARCHAR(45) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , DSTPORT                          INT NO DEFAULT NOT NULL NOT DROPPABLE
  , AGENTRECEIPTTIME                 TIMESTAMP(0) NO DEFAULT NOT NULL NOT
      DROPPABLE
  , CATEGORYOUTCOME                  VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , CATEGORYSIGNIFICANCE             VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , DEVICESEVERITY                   VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , CATEGORYDEVICETYPE               VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , DEVICECUSTOMSTRING1              VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , FLEXSTRING1                      VARCHAR(30) CHARACTER SET ISO88591 COLLATE
      DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
  , EVENT_ID                         LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
  , PRIMARY KEY (EVENT_ID ASC, SRCIP ASC, AGENTRECEIPTTIME ASC)
  )
  SALT USING 75 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
  HBASE_OPTIONS
  (
    BLOCKCACHE = 'TRUE',
    TTL = '1000'
  )
;

--- SQL operation complete.
>>
>>drop table if exists t010t4;

--- SQL operation complete.
>>create table t010t4 (a int not null primary key, b int, c int) 
+>salt using 4 partitions ;

--- SQL operation complete.
>>create index t010ix1 on t010t4 (b) 
+>HBASE_OPTIONS
+>  (
+>    DATA_BLOCK_ENCODING = 'FAST_DIFF',
+>    COMPRESSION = 'GZ'
+>  )
+>  SALT LIKE TABLE
+>;

--- SQL operation complete.
>>showddl t010t4 ;

CREATE TABLE TRAFODION.SCH.T010T4
  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , B                                INT DEFAULT NULL
  , C                                INT DEFAULT NULL
  , PRIMARY KEY (A ASC)
  )
  SALT USING 4 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

CREATE INDEX T010IX1 ON TRAFODION.SCH.T010T4
  (
    B ASC
  )
  HBASE_OPTIONS
  (
    DATA_BLOCK_ENCODING = 'FAST_DIFF',
    COMPRESSION = 'GZ'
  )
 SALT LIKE TABLE
;

--- SQL operation complete.
>>insert into t010t4 values (1,1,1) ;

--- 1 row(s) inserted.
>>prepare s from select a from t010t4 <<+cardinality 10e8>> where b > 0 ;

--- SQL command prepared.
>>explain options 'f' s ;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------  ---------

1    .    2    root                                                  1.00E+009
.    .    1    trafodion_index_scan            T010IX1               1.00E+009

--- SQL operation complete.
>>execute s;

A          
-----------

          1

--- 1 row(s) selected.
>>
>>cqd detailed_statistics 'all';

--- SQL operation complete.
>>
>>prepare statsquery from
+>select frag_num, inst_num, seq_num,
+>       cast(substring(variable_info
+>                      from position('AccessedRows' in variable_info)
+>                      for position('DiskIOs' in variable_info) -
+>                          position('AccessedRows' in variable_info))
+>            as char(40) character set iso88591) as rows_accessed
+>from table(statistics(null, 'S'))
+>where tdb_name like 'EX_TRAF_%';

--- SQL command prepared.
>>
>>prepare statsquery1 from
+>select frag_num, inst_num, seq_num,
+>       case when cast(substring(variable_info
+>                      from position('AccessedRows' in variable_info)+14
+>                      for position('UsedRows' in variable_info) -
+>                          position('AccessedRows' in variable_info)-14)
+>            as integer) > 4000 then 'PASS' else 'FAIL' end
+>from table(statistics(null, 'S'))
+>where tdb_name like 'EX_TRAF_%'
+>order by 1,2,3;

--- SQL command prepared.
>>
>>drop table if exists t010t5;

--- SQL operation complete.
>>
>>create table T010t5(c1 numeric(12,2) not null,
+>                     c2 largeint not null,
+>                     c3 integer,
+>                     c4 char(1000),
+>                     primary key (c1, c2))
+>salt using 2 partitions ;

--- SQL operation complete.
>>
>>upsert using load into t010t5
+>select num*0.01, num, num, 'dummy'
+>from (select 1000*thousands+100*hundreds+10*tens+ones
+>      from (values (0)) seed(c)
+>      transpose 0,1,2,3,4,5,6,7,8,9 as ones
+>      transpose 0,1,2,3,4,5,6,7,8,9 as tens
+>      transpose 0,1,2,3,4,5,6,7,8,9 as hundreds
+>      transpose 0,1,2,3,4,5,6,7,8,9 as thousands) gen(num)
+>order by 3
+>;

--- 10000 row(s) inserted.
>>
>>create index t010t5idx1 on t010t5(c3) salt like table ;

--- SQL operation complete.
>>
>>-- begin testcase for lp 1396793.
>>
>>create index t010t5idx2 on t010t5(c2) no populate ;

--- SQL operation complete.
>>
>>create index t010t5idx3 on t010t5(c1) no populate ;

--- SQL operation complete.
>>
>>create index t010t5idx4 on t010t5(c3) no populate ;

--- SQL operation complete.
>>
>>populate index t010t5idx2 on t010t5;

--- SQL operation complete.
>>
>>populate index t010t5idx3 on t010t5;

--- SQL operation complete.
>>
>>populate index t010t5idx4 on t010t5;

--- SQL operation complete.
>>
>>set parserflags 1;

--- SQL operation complete.
>>
>>select count(*) from table(index_table t010t5idx2);

(EXPR)              
--------------------

               10000

--- 1 row(s) selected.
>>
>>select count(*) from table(index_table t010t5idx3);

(EXPR)              
--------------------

               10000

--- 1 row(s) selected.
>>
>>select count(*) from table(index_table t010t5idx4);

(EXPR)              
--------------------

               10000

--- 1 row(s) selected.
>>
>>-- end testcase for lp 1396793.
>>
>>set parserflags 1;

--- SQL operation complete.
>>
>>prepare s from
+>select count(*) as cnt, min(c1) minc1, max(c1) maxc1, min(c2) minc2, max(c2) maxc2 from table(index_table t010t5idx1 )a;

--- SQL command prepared.
>>execute s;

CNT                   MINC1                  MAXC1                  MINC2                 MAXC2
--------------------  ---------------------  ---------------------  --------------------  --------------------

               10000                    .00                  99.99                     0                  9999

--- 1 row(s) selected.
>>execute statsquery1;

FRAG_NUM    INST_NUM    SEQ_NUM     (EXPR)
----------  ----------  ----------  ------

         0           0           1  PASS  

--- 1 row(s) selected.
>>--use statsquery to see rows flowing through each ESP
>>--execute statsquery ;
>>
>>cqd ALLOW_NULLABLE_UNIQUE_KEY_CONSTRAINT 'ON' ;

--- SQL operation complete.
>>
>>drop table if exists LOGITEM;

--- SQL operation complete.
>>
>>CREATE TABLE LOGITEM
+>  (
+>    D_GROUP                   VARCHAR(80 BYTES) CHARACTER SET UTF8
+>      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , L_ORDER_NO                  VARCHAR(30 BYTES) CHARACTER SET UTF8
+>      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE
+>  , I_SLN                         VARCHAR(10 BYTES) CHARACTER SET UTF8
+>      COLLATE DEFAULT DEFAULT NULL
+>
+>  , PRIMARY KEY (L_ORDER_NO ASC, I_SLN ASC)
+>  )
+>  SALT USING 16 PARTITIONS
+>  HBASE_OPTIONS
+>  (
+>    DATA_BLOCK_ENCODING = 'FAST_DIFF',
+>    COMPRESSION = 'GZ'
+>  )
+>;

--- SQL operation complete.
>>
>>cqd hbase_hash2_partitioning 'off' ;

--- SQL operation complete.
>>
>>select * from logitem ;

--- 0 row(s) selected.
>>
>>-- showddl output should not show 'ACTUAL PARTITIONS' 
>>-- Created and actual partitions are the same.
>>drop table if exists "delim_tab";

--- SQL operation complete.
>>create table "delim_tab" (a int not null primary key) salt using 4 partitions;

--- SQL operation complete.
>>showddl "delim_tab";

CREATE TABLE TRAFODION.SCH."delim_tab"
  (
    A                                INT NO DEFAULT NOT NULL NOT DROPPABLE
  , PRIMARY KEY (A ASC)
  )
  SALT USING 4 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

--- SQL operation complete.
>>
>>create volatile table vtab1 (a int);

--- SQL operation complete.
>>create volatile table vtab2 (a int);

--- SQL operation complete.
>>get all volatile schemas;

Schema(Active  ): VOLATILE_SCHEMA_MXID110000242942123563046888583610000000002

--- SQL operation complete.
>>get all volatile tables;

Schema(Active  ): VOLATILE_SCHEMA_MXID110000242942123563046888583610000000002
  Table: VTAB1
  Table: VTAB2

--- SQL operation complete.
>>drop schema minotaur cascade;

--- SQL operation complete.
>>
>>log;
