This problem may be the result of CQD HIDE_INDEXES 'ALL' in the test (compGeneral/TEST062). In fact the problem can be reproduced with the following scripts:
1 Run this on a new sqlci session:
drop table skc;
create table skc(name varchar(20) character set UCS2 not casespecific not null, userId varchar(20) character set UCS2 not casespecific not null
) store by (name);
drop table dm2c;
create table dm2c( name char(30) character set UCS2 not null, salary float (40) not null) store by (name);
control query default HIDE_INDEXES 'ALL';
drop table skc;
drop table dm2c;
2. Run this script on the same sqlci session or new one:
set parserflags 1;
set schema "_MD_";
cqd query_cache '0';
control query shape join(scan(path 'OBJECTS'), scan(path 'OBJECTS_UNIQ_IDX'));
select object_uid, object_type from OBJECTS where object_uid not in
(select "OBJECT_UID@" from table(index_table OBJECTS_UNIQ_IDX));
control query shape join(scan(path 'OBJECTS_UNIQ_IDX'), scan(path 'OBJECTS'));
select "OBJECT_UID@", object_type, object_name from table(index_table OBJECTS_UNIQ_IDX)
where "OBJECT_UID@" not in (select object_uid from OBJECTS);
The second select statement would return one or 2 rows.
The user CQD should not affect the metadata queries, so none of the select statements should return any row.
This problem may be the result of CQD HIDE_INDEXES 'ALL' in the test (compGeneral/ TEST062) . In fact the problem can be reproduced with the following scripts:
1 Run this on a new sqlci session:
userId varchar(20) character set UCS2 not casespecific not null
store by (name);
drop table skc;
create table skc(name varchar(20) character set UCS2 not casespecific not null,
)
drop table dm2c;
salary float (40) not null)
store by (name);
create table dm2c( name char(30) character set UCS2 not null,
control query default HIDE_INDEXES 'ALL';
drop table skc;
drop table dm2c;
2. Run this script on the same sqlci session or new one:
set parserflags 1;
set schema "_MD_";
cqd query_cache '0';
control query shape join(scan(path 'OBJECTS'), scan(path 'OBJECTS_ UNIQ_IDX' ));
select object_uid, object_type from OBJECTS where object_uid not in
(select "OBJECT_UID@" from table(index_table OBJECTS_UNIQ_IDX));
control query shape join(scan(path 'OBJECTS_ UNIQ_IDX' ), scan(path 'OBJECTS'));
select "OBJECT_UID@", object_type, object_name from table(index_table OBJECTS_UNIQ_IDX)
where "OBJECT_UID@" not in (select object_uid from OBJECTS);
The second select statement would return one or 2 rows.
The user CQD should not affect the metadata queries, so none of the select statements should return any row.