limit DEFAULT_CTX_ID of tenant_500 from 4G to 2G

This commit is contained in:
tushicheng
2023-09-28 02:09:45 +00:00
committed by ob-robot
parent 58a8ac5edc
commit 42f577e33d
96 changed files with 9489 additions and 9477 deletions

View File

@ -25,14 +25,13 @@ namespace common
ObKVCacheMap::ObKVCacheMap()
: is_inited_(false),
bucket_allocator_(ObMemAttr(OB_SERVER_TENANT_ID, "CACHE_MAP_BKT", ObCtxIds::UNEXPECTED_IN_500)),
bucket_num_(0),
bucket_size_(0),
buckets_(NULL),
store_(NULL),
global_hazard_version_()
{
bucket_allocator_.set_label("CACHE_MAP_BKT");
}
{}
ObKVCacheMap::~ObKVCacheMap()
{
@ -49,7 +48,7 @@ int ObKVCacheMap::init(const int64_t bucket_num, ObKVCacheStore *store)
ret = OB_INVALID_ARGUMENT;
COMMON_LOG(WARN, "Invalid arguments, ", K(bucket_num), K(store), K(ret));
} else if (OB_FAIL(bucket_lock_.init(bucket_num,
ObLatchIds::KV_CACHE_BUCKET_LOCK, "CACHE_MAP_LOCK"))) {
ObLatchIds::KV_CACHE_BUCKET_LOCK, ObMemAttr(OB_SERVER_TENANT_ID, "CACHE_MAP_LOCK", ObCtxIds::UNEXPECTED_IN_500)))) {
COMMON_LOG(WARN, "Fail to init bucket lock, ", K(bucket_num), K(ret));
} else if (OB_FAIL(global_hazard_version_.init(HAZARD_VERSION_THREAD_WAITING_THRESHOLD))) {
COMMON_LOG(WARN, "Fail to init hazard version, ", K(ret));

View File

@ -67,7 +67,8 @@ int ObKVCacheStore::init(ObKVCacheInstMap &insts,
max_mb_num_ = max_cache_size / block_size
+ 2 * (WASH_THREAD_RETIRE_LIMIT + RETIRE_LIMIT * OB_MAX_THREAD_NUM);
if (NULL == (mb_handles_ = static_cast<ObKVMemBlockHandle *>(buf = ob_malloc(
(sizeof(ObKVMemBlockHandle) + sizeof(ObKVMemBlockHandle*)) * max_mb_num_, "CACHE_MB_HANDLE")))) {
(sizeof(ObKVMemBlockHandle) + sizeof(ObKVMemBlockHandle*)) * max_mb_num_,
ObMemAttr(OB_SERVER_TENANT_ID, "CACHE_MB_HANDLE", ObCtxIds::UNEXPECTED_IN_500))))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
COMMON_LOG(ERROR, "Fail to allocate memory for mb_handles_, ", K_(max_mb_num), K(ret));
} else if (OB_FAIL(mb_handles_pool_.init(max_mb_num_,

View File

@ -423,7 +423,7 @@ int ObServerMemoryConfig::set_500_tenant_limit(const int64_t limit_mode)
auto ta = ma->get_tenant_ctx_allocator(OB_SERVER_TENANT_ID, ctx_id);
const char *ctx_name = get_global_ctx_info().get_ctx_name(ctx_id);
if (OB_NOT_NULL(ta)) {
int64_t ctx_limit = ObCtxIds::DEFAULT_CTX_ID == ctx_id ? (4LL<<30) : (50LL<<20);
int64_t ctx_limit = ObCtxIds::DEFAULT_CTX_ID == ctx_id ? (2LL<<30) : (50LL<<20);
if (unlimited) {
ctx_limit = INT64_MAX;
}

View File

@ -375,11 +375,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -442,11 +442,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -497,11 +497,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r4_01_20 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -556,11 +556,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r5_09_28 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 13 and 24 order by t1.a, t2.a;
+----+----+
@ -607,11 +607,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -674,11 +674,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -729,11 +729,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r4_01_20 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -788,11 +788,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r5_09_28 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 13 and 24 order by t1.a, t2.a;
+----+----+
@ -838,11 +838,11 @@ Outputs & filters:
equal_conds([t1.a = t2.a]), other_conds(nil)
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -904,11 +904,11 @@ Outputs & filters:
equal_conds([t1.a = t2.a]), other_conds(nil)
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -958,11 +958,11 @@ Outputs & filters:
equal_conds([t1.a = t2.a]), other_conds(nil)
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r4_01_20 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1016,11 +1016,11 @@ Outputs & filters:
equal_conds([t1.a = t2.a]), other_conds(nil)
5 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r5_09_28 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 13 and 24 order by t1.a, t2.a;
+----+----+
@ -1073,13 +1073,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1147,13 +1147,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1209,13 +1209,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1283,13 +1283,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1345,13 +1345,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1419,13 +1419,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1481,13 +1481,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1555,13 +1555,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_nl(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1617,13 +1617,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1691,13 +1691,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1753,13 +1753,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1827,13 +1827,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -1889,13 +1889,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -1963,13 +1963,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -2025,13 +2025,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -2099,13 +2099,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_mj(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -2161,13 +2161,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -2235,13 +2235,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -2297,13 +2297,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -2371,13 +2371,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -2433,13 +2433,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h3_01_20 t1 full join t_r4_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -2507,13 +2507,13 @@ Outputs & filters:
force partition granule
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule, asc
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_h5_01_20 t1 full join t_r5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+
@ -2569,13 +2569,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-2])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 full join t_h3_09_28 t2 on t1.a = t2.a order by t1.a, t2.a;
+----+----+
@ -2643,13 +2643,13 @@ Outputs & filters:
force partition granule, asc
7 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a]), range(MIN ; MAX)always true
8 - output([t2.a]), filter(nil), rowset=256
affinitize, force partition granule
9 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a]), range(MIN ; MAX)always true
select /*+use_hash(t1 t2)*/ t1.a, t2.a from t_r5_01_20 t1 full join t_h5_09_28 t2 on t1.a = t2.a where t1.a between 5 and 24 order by t1.a, t2.a;
+----+----+

View File

@ -47,7 +47,7 @@ select ceil(null);
select ceil("13547370213547370213547370213547370201354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737020.0000135473702135473702135473702135473702135473702135473702135473702135473702013547370213547370201354737021354737021354737021354737021354737021354737021354737021.0000135473702135473702135473702135473702135473702111111111111111111");
select ceil("13547370213547370213547370213547370201354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737021354737020.0000135473702135473702135473702135473702135473702135473702135473702135473702013547370213547370201354737021354737021354737021354737021354737021354737021354737021.0000135473702135473702135473702135473702135473702catters billet chloroplast's'");
##bugfix:
##bugfix:
--disable_warnings
drop table if exists t1;
--enable_warnings

View File

@ -69,7 +69,7 @@ SELECT CONVERT_TZ('2021-01-01 07:11:00', '+05:12','MET');
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+03:32','PRC');
SELECT CONVERT_TZ('2021-01-01 07:11:00', '+11:32','PRC');
##bugfix:
##bugfix:
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','+10:00');
SELECT CONVERT_TZ('2004-01-01 12:00:00','-12:00','+14:00');
SELECT CONVERT_TZ('2004-01-01 12:00:00','-13:00','ABC');
@ -93,7 +93,7 @@ insert into t values(convert_tz('0000-01-01 01:00:00', '+00:00', '-02:00'));
select * from t;
##bugfix:
##bugfix:
SELECT CONVERT_TZ(123456,'-12:00','+10:00');
SELECT CONVERT_TZ('','-12:00','+10:00');
SELECT CONVERT_TZ('aa','-12:00','+10:00');
@ -102,14 +102,14 @@ SELECT CONVERT_TZ('1asd561ad','-12:00','+10:00');
SELECT CONVERT_TZ('¥¥%……&*¥','-12:00','+10:00');
##bugfix:
##bugfix:
drop table t;
create table t(c1 year);
insert into t values('1901'),('2155'), ('0000'), ('0001');
SELECT c1, CONVERT_TZ(c1,'+00:00','+00:00') from t;
##bugfix:
##bugfix:
drop table t;
create table t(a1 int,a2 year,c1 timestamp,c2 timestamp);
insert into t values(1,'1998','1998-12-12 12:12:12','2038-01-19 03:14:07');
@ -127,7 +127,7 @@ select c3, convert_tz(c3, '+00:00', '+08:00') from t;
drop table t;
##bugfix:
##bugfix:
SELECT CONVERT_TZ('2007-03-11 2:00:00','US/Eastern','US/Central') AS time1,
CONVERT_TZ('2007-03-11 2:00:01','US/Eastern','US/Central') AS time2,
CONVERT_TZ('2007-03-11 3:00:00','US/Eastern','US/Central') AS time3,

View File

@ -124,11 +124,11 @@ Outputs & filters:
sort_keys([gis_point.x, ASC], [gis_point.y, DESC]), topn( ), prefix_pos( )
- output([gis_point.__pk_increment], [gis_point.x], [gis_point.y]), filter(nil)
access([gis_point.__pk_increment], [gis_point.x], [gis_point.y]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([gis_point.x], [gis_point.y], [gis_point.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
- output([gis_point_alias.poi]), filter(nil)
access([gis_point_alias.poi]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([gis_point_alias.__pk_increment]), range(MIN ; MAX),
is_index_back=false, is_global_index=false,
range_key([gis_point_alias.__pk_increment]), range(MIN ; MAX),
range_cond([gis_point_alias.__pk_increment = :0])
drop table if exists gis_point;

View File

@ -77,7 +77,7 @@ select x, y, st_astext(poi) from gis_point;
drop table if exists gis_point;
#
#
create table if not exists gis_point (
x decimal(19,16),
y decimal(19,16),

View File

@ -750,7 +750,7 @@ select /*+index(t1 gkey2)*/ count(*) from t1;
+----------+
drop table if exists t1;
###bug
###bug
drop table if exists t1;
create table t1(a int, b int, c int, d int, primary key(a,b)) partition by hash(a) partitions 3;
create unique index idx on t1(c) partition by hash(c) partitions 5;
@ -758,7 +758,7 @@ insert into t1 values (1,1,1,1),(2,2,2,2),(3,3,3,3);
update t1 set d=d+1 where (a,b)>=(1,1) and c=1;
drop table if exists t1;
####bug
####bug
drop table if exists obright_part;
create table obright_part(grp_id bigint, row_id bigint, row_hex varchar(2048), trx_grp bigint,
v1 varchar(65536), v1_check bigint, v2 varchar(65536), v2_check bigint, r1 int, r2 int, glike varchar(4096),

View File

@ -117,7 +117,7 @@ select /*+index(t1 gkey1)*/ count(*) from t1;
select /*+index(t1 gkey2)*/ count(*) from t1;
drop table if exists t1;
###bug
###bug
--disable_warnings
drop table if exists t1;
--enable_warnings
@ -129,7 +129,7 @@ insert into t1 values (1,1,1,1),(2,2,2,2),(3,3,3,3);
update t1 set d=d+1 where (a,b)>=(1,1) and c=1;
drop table if exists t1;
####bug
####bug
--disable_warnings
drop table if exists obright_part;
--enable_warnings

View File

@ -445,13 +445,13 @@ Outputs & filters:
exec_params_(nil), onetime_exprs_([subquery(1)(:0)]), init_plan_idxs_(nil), use_batch=false
2 - output([t29_25.c4], [t29_25.c8]), filter(nil), rowset=256
access([t29_25.c4], [t29_25.c8]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t29_25.__pk_increment]), range(MIN ; MAX)always true
3 - output([t29_25.c1]), filter(nil), rowset=256
sort_keys([t29_25.c1, DESC]), topn(1)
4 - output([t29_25.c1]), filter(nil), rowset=256
access([t29_25.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t29_25.__pk_increment]), range(MIN ; MAX)always true
create table t2 as SELECT t29_25.c1, t29_25.c8
FROM (SELECT (SELECT t29_25.c1

View File

@ -224,7 +224,7 @@ select c1,c2, group_concat(distinct c3 order by c3 desc) from t1 group by c1,c2
drop table t1, t2, t3, t4, t5;
##
##
--disable_warnings
drop table if exists t1, t2;
drop table if exists `rpup_list_mcs_asoc_b`, `bidprcu_mcs_regcert_b`, `rpup_mcs_list_info_b`;
@ -265,7 +265,7 @@ CREATE TABLE `t1` (
`c4` decimal(64,11) DEFAULT NULL,
`c8` int(127) NOT NULL
);
create sequence s1 cache 10000000;
insert into t1 select s1.nextval c1, s1.nextval c2, s1.nextval c3 from table(generator(20000));
explain basic SELECT t29_25.c1, t29_25.c8
@ -278,7 +278,7 @@ FROM (SELECT (SELECT t29_25.c1
FROM t1 AS t29_25) AS t29_25
GROUP BY t29_25.c1, t29_25.c8
HAVING Count(t29_25.c4) <> 990;
create table t2 as SELECT t29_25.c1, t29_25.c8
FROM (SELECT (SELECT t29_25.c1
FROM t1 AS t29_25
@ -289,6 +289,6 @@ FROM (SELECT (SELECT t29_25.c1
FROM t1 AS t29_25) AS t29_25
GROUP BY t29_25.c1, t29_25.c8
HAVING Count(t29_25.c4) <> 990;
select * from t2 limit 10;
drop table t1, t2;

View File

@ -26,7 +26,7 @@ COLUMN_NAME varchar(128) NO
ORDINAL_POSITION bigint(20) unsigned NO
COLUMN_DEFAULT varchar(262144) YES NULL
IS_NULLABLE varchar(4) NO
DATA_TYPE varchar(1048576) NO
DATA_TYPE varchar(1048576) NO
CHARACTER_MAXIMUM_LENGTH bigint(20) unsigned YES NULL
CHARACTER_OCTET_LENGTH bigint(20) unsigned YES NULL
NUMERIC_PRECISION bigint(20) unsigned YES NULL
@ -34,7 +34,7 @@ NUMERIC_SCALE bigint(20) unsigned YES NULL
DATETIME_PRECISION bigint(20) unsigned YES NULL
CHARACTER_SET_NAME varchar(128) YES NULL
COLLATION_NAME varchar(128) YES NULL
COLUMN_TYPE varchar(1048576) NO NULL
COLUMN_TYPE varchar(1048576) NO NULL
COLUMN_KEY varchar(3) NO
EXTRA varchar(4096) NO
PRIVILEGES varchar(200) NO
@ -58,38 +58,38 @@ TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
COLUMN_NAME varchar(128) NO
ORDINAL_POSITION bigint(20) NO
POSITION_IN_UNIQUE_CONSTRAINT bigint(0) unsigned NO
REFERENCED_TABLE_SCHEMA varchar(64) NO
REFERENCED_TABLE_NAME varchar(64) NO
REFERENCED_COLUMN_NAME varchar(64) NO
POSITION_IN_UNIQUE_CONSTRAINT bigint(0) unsigned NO
REFERENCED_TABLE_SCHEMA varchar(64) NO
REFERENCED_TABLE_NAME varchar(64) NO
REFERENCED_COLUMN_NAME varchar(64) NO
desc partitions;
Field Type Null Key Default Extra
TABLE_CATALOG text NO
TABLE_CATALOG text NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
PARTITION_NAME varchar(64) NO
SUBPARTITION_NAME varchar(64) NO
PARTITION_ORDINAL_POSITION bigint(20) unsigned NO
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned NO
PARTITION_METHOD varchar(13) NO
SUBPARTITION_METHOD varchar(13) NO
PARTITION_EXPRESSION text NO
SUBPARTITION_EXPRESSION text NO
PARTITION_DESCRIPTION text NO
SUBPARTITION_DESCRIPTION text NO
TABLE_ROWS bigint(20) unsigned NO NULL
AVG_ROW_LENGTH bigint(21) unsigned NO NULL
DATA_LENGTH bigint(0) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
PARTITION_NAME varchar(64) NO
SUBPARTITION_NAME varchar(64) NO
PARTITION_ORDINAL_POSITION bigint(20) unsigned NO
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned NO
PARTITION_METHOD varchar(13) NO
SUBPARTITION_METHOD varchar(13) NO
PARTITION_EXPRESSION text NO
SUBPARTITION_EXPRESSION text NO
PARTITION_DESCRIPTION text NO
SUBPARTITION_DESCRIPTION text NO
TABLE_ROWS bigint(20) unsigned NO NULL
AVG_ROW_LENGTH bigint(21) unsigned NO NULL
DATA_LENGTH bigint(0) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
CREATE_TIME timestamp(6) YES NULL
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
CHECKSUM bigint(0) NO
PARTITION_COMMENT text NO
NODEGROUP varchar(256) NO
TABLESPACE_NAME varchar(268) NO NULL
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
CHECKSUM bigint(0) NO
PARTITION_COMMENT text NO
NODEGROUP varchar(256) NO
TABLESPACE_NAME varchar(268) NO NULL
desc processlist;
Field Type Null Key Default Extra
ID bigint(20) unsigned NO
@ -103,7 +103,7 @@ INFO varchar(262143) YES NULL
desc schema_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(128) NO
PRIVILEGE_TYPE varchar(64) NO
IS_GRANTABLE varchar(3) NO
@ -111,9 +111,9 @@ desc schemata;
Field Type Null Key Default Extra
CATALOG_NAME varchar(3) NO
SCHEMA_NAME varchar(128) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH varchar(512) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH varchar(512) NO
DEFAULT_ENCRYPTION varchar(2) NO
desc session_status;
Field Type Null Key Default Extra
@ -125,82 +125,82 @@ VARIABLE_NAME varchar(128) NO
VARIABLE_VALUE varchar(1024) YES NULL
desc statistics;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
NON_UNIQUE bigint(20) NO
INDEX_SCHEMA varchar(128) NO
INDEX_NAME varchar(256) NO
SEQ_IN_INDEX bigint(20) unsigned NO
INDEX_NAME varchar(256) NO
SEQ_IN_INDEX bigint(20) unsigned NO
COLUMN_NAME varchar(128) NO
COLLATION varchar(1) NO
CARDINALITY bigint(0) NO
SUB_PART bigint(20) NO
PACKED varchar(10) NO
NULLABLE varchar(3) NO
INDEX_TYPE varchar(16) NO
COMMENT varchar(16) NO
INDEX_COMMENT text NO
COLLATION varchar(1) NO
CARDINALITY bigint(0) NO
SUB_PART bigint(20) NO
PACKED varchar(10) NO
NULLABLE varchar(3) NO
INDEX_TYPE varchar(16) NO
COMMENT varchar(16) NO
INDEX_COMMENT text NO
IS_VISIBLE varchar(3) NO
EXPRESSION varbinary(262144) NO
EXPRESSION varbinary(262144) NO
desc table_constraints;
Field Type Null Key Default Extra
CONSTRAINT_CATALOG varchar(64) NO
CONSTRAINT_CATALOG varchar(64) NO
CONSTRAINT_SCHEMA varchar(128) NO
CONSTRAINT_NAME varchar(256) NO
CONSTRAINT_NAME varchar(256) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
CONSTRAINT_TYPE varchar(11) NO
ENFORCED varchar(3) NO
CONSTRAINT_TYPE varchar(11) NO
ENFORCED varchar(3) NO
desc table_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(64) NO
PRIVILEGE_TYPE varchar(64) NO
IS_GRANTABLE varchar(3) NO
desc tables;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(64) NO
TABLE_NAME varchar(64) NO
TABLE_TYPE varchar(64) NO
ENGINE varchar(64) NO
VERSION bigint(0) unsigned NO
ROW_FORMAT varchar(10) NO
TABLE_ROWS bigint(20) unsigned NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(64) NO
TABLE_NAME varchar(64) NO
TABLE_TYPE varchar(64) NO
ENGINE varchar(64) NO
VERSION bigint(0) unsigned NO
ROW_FORMAT varchar(10) NO
TABLE_ROWS bigint(20) unsigned NO
AVG_ROW_LENGTH bigint(21) unsigned NO
DATA_LENGTH bigint(21) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
AUTO_INCREMENT bigint(0) unsigned NO
CREATE_TIME datetime NO
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
TABLE_COLLATION varchar(32) NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
AUTO_INCREMENT bigint(0) unsigned NO
CREATE_TIME datetime NO
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
TABLE_COLLATION varchar(32) NO
CHECKSUM bigint(0) unsigned NO
CREATE_OPTIONS varchar(255) NO
TABLE_COMMENT text NO
CREATE_OPTIONS varchar(255) NO
TABLE_COMMENT text NO
desc user_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
PRIVILEGE_TYPE varchar(64) NO
IS_GRANTABLE varchar(3) NO
desc views;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(64) NO
TABLE_CATALOG varchar(64) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
VIEW_DEFINITION longtext NO NULL
CHECK_OPTION varchar(8) NO NULL
IS_UPDATABLE varchar(3) NO NULL
DEFINER varchar(288) NO
SECURITY_TYPE varchar(7) NO
CHARACTER_SET_CLIENT varchar(64) NO
COLLATION_CONNECTION varchar(64) NO
DEFINER varchar(288) NO
SECURITY_TYPE varchar(7) NO
CHARACTER_SET_CLIENT varchar(64) NO
COLLATION_CONNECTION varchar(64) NO
show create table character_sets;
View Create View character_set_client collation_connection
CHARACTER_SETS CREATE VIEW `CHARACTER_SETS` AS SELECT CHARSET AS CHARACTER_SET_NAME, DEFAULT_COLLATION AS DEFAULT_COLLATE_NAME, DESCRIPTION, max_length AS MAXLEN FROM oceanbase.__tenant_virtual_charset utf8mb4 utf8mb4_general_ci

View File

@ -12,30 +12,30 @@ test pt1
test pt1
desc information_schema.partitions;
Field Type Null Key Default Extra
TABLE_CATALOG text NO
TABLE_CATALOG text NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
PARTITION_NAME varchar(64) NO
SUBPARTITION_NAME varchar(64) NO
PARTITION_ORDINAL_POSITION bigint(20) unsigned NO
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned NO
PARTITION_METHOD varchar(13) NO
SUBPARTITION_METHOD varchar(13) NO
PARTITION_EXPRESSION text NO
SUBPARTITION_EXPRESSION text NO
PARTITION_DESCRIPTION text NO
SUBPARTITION_DESCRIPTION text NO
TABLE_ROWS bigint(20) unsigned NO NULL
AVG_ROW_LENGTH bigint(21) unsigned NO NULL
DATA_LENGTH bigint(0) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
PARTITION_NAME varchar(64) NO
SUBPARTITION_NAME varchar(64) NO
PARTITION_ORDINAL_POSITION bigint(20) unsigned NO
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned NO
PARTITION_METHOD varchar(13) NO
SUBPARTITION_METHOD varchar(13) NO
PARTITION_EXPRESSION text NO
SUBPARTITION_EXPRESSION text NO
PARTITION_DESCRIPTION text NO
SUBPARTITION_DESCRIPTION text NO
TABLE_ROWS bigint(20) unsigned NO NULL
AVG_ROW_LENGTH bigint(21) unsigned NO NULL
DATA_LENGTH bigint(0) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
CREATE_TIME timestamp(6) YES NULL
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
CHECKSUM bigint(0) NO
PARTITION_COMMENT text NO
NODEGROUP varchar(256) NO
TABLESPACE_NAME varchar(268) NO NULL
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
CHECKSUM bigint(0) NO
PARTITION_COMMENT text NO
NODEGROUP varchar(256) NO
TABLESPACE_NAME varchar(268) NO NULL
drop table pt1;

View File

@ -9,7 +9,7 @@ desc schemata;
Field Type Null Key Default Extra
CATALOG_NAME varchar(3) NO
SCHEMA_NAME varchar(128) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH varchar(512) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH varchar(512) NO
DEFAULT_ENCRYPTION varchar(2) NO

View File

@ -8,7 +8,7 @@ TABLE_PRIVILEGES CREATE VIEW `TABLE_PRIVILEGES` AS SELECT CAST(CONCA
desc information_schema.table_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(64) NO
PRIVILEGE_TYPE varchar(64) NO

View File

@ -4,7 +4,7 @@ USER_PRIVILEGES CREATE VIEW `USER_PRIVILEGES` AS SELECT CAST(CONCAT('''', V.U
desc information_schema.user_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(512) NO
TABLE_CATALOG varchar(512) NO
PRIVILEGE_TYPE varchar(64) NO
IS_GRANTABLE varchar(3) NO
select * from information_schema.user_privileges where grantee like '%tmp_user_user_privileges%';

View File

@ -10,13 +10,13 @@ View Create View character_set_client collation_connection
VIEWS CREATE VIEW `VIEWS` AS select cast('def' as CHAR(64)) AS TABLE_CATALOG, d.database_name as TABLE_SCHEMA, t.table_name as TABLE_NAME, t.view_definition as VIEW_DEFINITION, case t.view_check_option when 1 then 'LOCAL' when 2 then 'CASCADED' else 'NONE' end as CHECK_OPTION, case t.view_is_updatable when 1 then 'YES' else 'NO' end as IS_UPDATABLE, cast((case t.define_user_id when -1 then 'NONE' else concat(u.user_name, '@', u.host) end) as CHAR(288)) as DEFINER, cast('NONE' as CHAR(7)) AS SECURITY_TYPE, cast((case t.collation_type when 45 then 'utf8mb4' else 'NONE' end) as CHAR(64)) AS CHARACTER_SET_CLIENT, cast((case t.collation_type when 45 then 'utf8mb4_general_ci' else 'NONE' end) as CHAR(64)) AS COLLATION_CONNECTION from oceanbase.__all_table as t join oceanbase.__all_database as d on t.tenant_id = d.tenant_id and t.database_id = d.database_id left join oceanbase.__all_user as u on t.tenant_id = u.tenant_id and t.define_user_id = u.user_id and t.define_user_id != -1 where t.tenant_id = 0 and t.table_type in (1, 4) and d.in_recyclebin = 0 and d.database_name != '__recyclebin' and d.database_name != 'information_schema' and d.database_name != 'oceanbase' and 0 = sys_privilege_check('table_acc', effective_tenant_id(), d.database_name, t.table_name) utf8mb4 utf8mb4_general_ci
desc views;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(64) NO
TABLE_CATALOG varchar(64) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
VIEW_DEFINITION longtext NO NULL
CHECK_OPTION varchar(8) NO NULL
IS_UPDATABLE varchar(3) NO NULL
DEFINER varchar(288) NO
SECURITY_TYPE varchar(7) NO
CHARACTER_SET_CLIENT varchar(64) NO
COLLATION_CONNECTION varchar(64) NO
DEFINER varchar(288) NO
SECURITY_TYPE varchar(7) NO
CHARACTER_SET_CLIENT varchar(64) NO
COLLATION_CONNECTION varchar(64) NO

View File

@ -248,7 +248,7 @@ select * from oceanbase.__all_virtual_table_mgr limit 1;
select * from oceanbase.__all_virtual_tenant_memstore_allocator_info limit 1;
select * from oceanbase.__all_virtual_tenant_memstore_info limit 1;
#select * from oceanbase.__all_virtual_tenant_stat limit 1;
#bug:
#bug:
#select * from oceanbase.__all_virtual_trace_log limit 1;
select * from oceanbase.__all_virtual_trans_stat limit 1;
select * from oceanbase.__all_virtual_upgrade_inspection limit 1;

View File

@ -34,13 +34,13 @@ Outputs & filters:
sort_keys([bb.b2, ASC], [bb.b3, ASC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, ASC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2, a3 desc;
a2 b3
@ -67,13 +67,13 @@ Outputs & filters:
sort_keys([bb.b2, ASC], [bb.b3, DESC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, DESC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3;
a2 b3
@ -100,13 +100,13 @@ Outputs & filters:
sort_keys([bb.b2, DESC], [bb.b3, ASC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, ASC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3 desc;
a2 b3
@ -133,13 +133,13 @@ Outputs & filters:
sort_keys([bb.b2, DESC], [bb.b3, DESC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, DESC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
delete from aa;
insert into aa(a2, a3) values (10, 15), (10, 14), (10, 12), (11, 13), (12, 12), (12, 10);
@ -170,13 +170,13 @@ Outputs & filters:
sort_keys([bb.b2, ASC], [bb.b3, ASC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, ASC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2, a3 desc;
a2 b3
@ -203,13 +203,13 @@ Outputs & filters:
sort_keys([bb.b2, ASC], [bb.b3, DESC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, DESC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3;
a2 b3
@ -236,13 +236,13 @@ Outputs & filters:
sort_keys([bb.b2, DESC], [bb.b3, ASC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, ASC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3 desc;
a2 b3
@ -269,13 +269,13 @@ Outputs & filters:
sort_keys([bb.b2, DESC], [bb.b3, DESC])
2 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, DESC])
4 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
delete from cc;
insert into cc(c2, c3) values (10, 15), (10, 14), (10, 12), (12, 10);
@ -309,19 +309,19 @@ Outputs & filters:
sort_keys([aa.a2, ASC], [aa.a3, DESC])
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
4 - output([bb.b3], [bb.b2]), filter(nil), rowset=16
sort_keys([bb.b2, ASC], [bb.b3, DESC])
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
6 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
sort_keys([cc.c2, ASC], [cc.c3, DESC])
7 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
access([cc.c2], [cc.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([cc.c1]), range(MIN ; MAX)always true
select /*+ leading(aa bb cc) use_merge(aa, bb, cc) */ c2, a3 from aa, bb, cc where a2 = b2 and a3 = b3 and a2 = c2 and b3 = c3 order by c2, c3 desc;
c2 a3
@ -353,19 +353,19 @@ Outputs & filters:
sort_keys([aa.a2, ASC], [aa.a3, DESC])
3 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.a1]), range(MIN ; MAX)always true
4 - output([bb.b3], [bb.b2]), filter(nil), rowset=16
sort_keys([bb.b2, ASC], [bb.b3, DESC])
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.b1]), range(MIN ; MAX)always true
6 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
sort_keys([cc.c2, ASC], [cc.c3, DESC])
7 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
access([cc.c2], [cc.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([cc.c1]), range(MIN ; MAX)always true
drop table if exists tt1,tt2;
CREATE TABLE `tt1` (
@ -401,11 +401,11 @@ Outputs & filters:
merge_directions([ASC])
2 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
3 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
explain basic select /*+ use_merge(tt1, tt2) */ * from tt1,tt2 where tt1.a=tt2.a order by tt1.a desc;
Query Plan
@ -423,11 +423,11 @@ Outputs & filters:
merge_directions([DESC])
1 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
2 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
explain basic select /*+ use_merge(tt1, tt2) */ * from tt1,tt2 where tt1.a=tt2.a order by tt1.c desc;
Query Plan
@ -448,11 +448,11 @@ Outputs & filters:
merge_directions([ASC])
2 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
3 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
drop table if exists tt1,tt2;
== test partitioned table merge join ==
@ -503,7 +503,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, ASC])
@ -515,7 +515,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2, a3 desc;
a2 b3
@ -554,7 +554,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, DESC])
@ -566,7 +566,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3;
a2 b3
@ -605,7 +605,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, ASC])
@ -617,7 +617,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3 desc;
a2 b3
@ -656,7 +656,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, DESC])
@ -668,7 +668,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
delete from aa;
insert into aa values (1, 10, 15), (2, 10, 14), (3, 10, 12), (4, 11, 13), (5, 12, 12), (6, 12, 10);
@ -711,7 +711,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, ASC])
@ -723,7 +723,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2, a3 desc;
a2 b3
@ -762,7 +762,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, ASC], [aa.a3, DESC])
@ -774,7 +774,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3;
a2 b3
@ -813,7 +813,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, ASC])
@ -825,7 +825,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
select /*+ use_merge(aa, bb) */ a2, b3 from aa, bb where a2 = b2 and a3 = b3 order by a2 desc, a3 desc;
a2 b3
@ -864,7 +864,7 @@ Outputs & filters:
force partition granule
5 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
sort_keys([aa.a2, DESC], [aa.a3, DESC])
@ -876,7 +876,7 @@ Outputs & filters:
force partition granule
10 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
delete from cc;
insert into cc values (1, 10, 15), (2, 10, 14), (3, 10, 12), (4, 12, 10);
@ -925,7 +925,7 @@ Outputs & filters:
force partition granule
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
7 - output([bb.b3], [bb.b2]), filter(nil), rowset=16
sort_keys([bb.b2, ASC], [bb.b3, DESC])
@ -937,7 +937,7 @@ Outputs & filters:
force partition granule
11 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
12 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
sort_keys([cc.c2, ASC], [cc.c3, DESC])
@ -949,7 +949,7 @@ Outputs & filters:
force partition granule
16 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
access([cc.c2], [cc.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([cc.__pk_increment]), range(MIN ; MAX)always true
select /*+ leading(aa bb cc) use_merge(aa, bb, cc) */ c2, a3 from aa, bb, cc where a2 = b2 and a3 = b3 and a2 = c2 and b3 = c3 order by c2, c3 desc;
c2 a3
@ -996,7 +996,7 @@ Outputs & filters:
force partition granule
6 - output([aa.a2], [aa.a3]), filter(nil), rowset=16
access([aa.a2], [aa.a3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([aa.__pk_increment]), range(MIN ; MAX)always true
7 - output([bb.b3], [bb.b2]), filter(nil), rowset=16
sort_keys([bb.b2, ASC], [bb.b3, DESC])
@ -1008,7 +1008,7 @@ Outputs & filters:
force partition granule
11 - output([bb.b2], [bb.b3]), filter(nil), rowset=16
access([bb.b2], [bb.b3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([bb.__pk_increment]), range(MIN ; MAX)always true
12 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
sort_keys([cc.c2, ASC], [cc.c3, DESC])
@ -1020,7 +1020,7 @@ Outputs & filters:
force partition granule
16 - output([cc.c2], [cc.c3]), filter(nil), rowset=16
access([cc.c2], [cc.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([cc.__pk_increment]), range(MIN ; MAX)always true
drop table if exists tt1,tt2;
CREATE TABLE `tt1` (
@ -1065,11 +1065,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
6 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
explain basic select /*+ use_merge(tt1, tt2) */ * from tt1,tt2 where tt1.a=tt2.a order by tt1.a desc;
Query Plan
@ -1099,11 +1099,11 @@ Outputs & filters:
merge_directions([DESC])
5 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
6 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
explain basic select /*+ use_merge(tt1, tt2) */ * from tt1,tt2 where tt1.a=tt2.a order by tt1.c desc;
Query Plan
@ -1133,11 +1133,11 @@ Outputs & filters:
merge_directions([ASC])
5 - output([tt1.a], [tt1.b], [tt1.c], [tt1.d]), filter(nil), rowset=16
access([tt1.a], [tt1.b], [tt1.c], [tt1.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt1.a]), range(MIN ; MAX)always true
6 - output([tt2.a], [tt2.b], [tt2.c], [tt2.d]), filter(nil), rowset=16
access([tt2.a], [tt2.b], [tt2.c], [tt2.d]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([tt2.a]), range(MIN ; MAX)always true
drop table if exists tt1,tt2;
drop table if exists aa;
@ -1204,11 +1204,11 @@ Outputs & filters:
merge_directions([DESC])
4 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
5 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
explain select /*+use_merge(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 inner join t_r4_01_20 t2 on t1.a = t2.a order by t1.a asc, t2.a asc;
Query Plan
@ -1235,11 +1235,11 @@ Outputs & filters:
merge_directions([ASC])
4 - output([t1.a]), filter(nil), rowset=256
access([t1.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.a], [t1.b]), range(MIN,MIN ; MAX,MAX)always true
5 - output([t2.a]), filter(nil), rowset=256
access([t2.a]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.a], [t2.b]), range(MIN,MIN ; MAX,MAX)always true
select /*+use_merge(t1 t2)*/ t1.a, t2.a from t_r4_01_20 t1 inner join t_r4_01_20 t2 on t1.a = t2.a order by t1.a asc, t2.a asc;
a a
@ -1297,13 +1297,13 @@ Outputs & filters:
sort_keys([cast(t7.a, DECIMAL(10, 0)), ASC], [t7.d, ASC])
3 - output([t7.a], [t7.d], [t7.b], [t7.c], [cast(t7.a, DECIMAL(10, 0))]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
4 - output([t2.a], [t2.b], [t2.c], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
sort_keys([cast(t2.b, DECIMAL(-1, -1)), ASC], [t2.c, ASC])
5 - output([t2.b], [t2.c], [t2.a], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_merge(t2,t7)*/* from t2 full join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1344,11 +1344,11 @@ Outputs & filters:
equal_conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), other_conds(nil)
2 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_hash(t2,t7)*/* from t2 full join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1389,11 +1389,11 @@ Outputs & filters:
equal_conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), other_conds(nil)
2 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_nl(t2,t7)*/* from t2 full join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1440,13 +1440,13 @@ Outputs & filters:
sort_keys([cast(t7.a, DECIMAL(10, 0)), ASC], [t7.d, ASC])
3 - output([t7.a], [t7.d], [t7.b], [t7.c], [cast(t7.a, DECIMAL(10, 0))]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
4 - output([t2.a], [t2.b], [t2.c], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
sort_keys([cast(t2.b, DECIMAL(-1, -1)), ASC], [t2.c, ASC])
5 - output([t2.b], [t2.c], [t2.a], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_merge(t2,t7)*/* from t2 right join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1474,11 +1474,11 @@ Outputs & filters:
equal_conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), other_conds(nil)
2 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_hash(t2,t7)*/* from t2 right join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1507,12 +1507,12 @@ Outputs & filters:
conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), nl_params_(nil), use_batch=false
2 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.a], [t2.b], [t2.c]), filter(nil), rowset=16
4 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_nl(t2,t7)*/* from t2 right join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1537,11 +1537,11 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t8.b], [t8.c]), filter(nil), rowset=16
access([t8.b], [t8.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t9.b], [t9.c]), filter(nil), rowset=16
access([t9.b], [t9.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+leading(t8, t9)*/ t8.b,t8.c,t9.b,t9.c from t8 right join t9 on t8.b = t9.b;
b c b c
@ -1589,13 +1589,13 @@ Outputs & filters:
sort_keys([cast(t7.a, DECIMAL(10, 0)), ASC], [t7.d, ASC])
3 - output([t7.a], [t7.d], [t7.b], [t7.c], [cast(t7.a, DECIMAL(10, 0))]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
4 - output([t2.a], [t2.b], [t2.c], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
sort_keys([cast(t2.b, DECIMAL(-1, -1)), ASC], [t2.c, ASC])
5 - output([t2.b], [t2.c], [t2.a], [cast(t2.b, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_merge(t2,t7)*/* from t2 left join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1631,11 +1631,11 @@ Outputs & filters:
equal_conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), other_conds(nil)
2 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select /*+use_hash(t2,t7)*/* from t2 left join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1672,12 +1672,12 @@ Outputs & filters:
conds([cast(t2.b, DECIMAL(-1, -1)) = cast(t7.a, DECIMAL(10, 0))], [t2.c = t7.d]), nl_params_(nil), use_batch=false
2 - output([t2.b], [t2.c], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.c], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
3 - output([t7.a], [t7.b], [t7.c], [t7.d]), filter(nil), rowset=16
4 - output([t7.a], [t7.d], [t7.b], [t7.c]), filter(nil), rowset=16
access([t7.a], [t7.d], [t7.b], [t7.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.__pk_increment]), range(MIN ; MAX)always true
select /*+use_nl(t2,t7)*/* from t2 left join t7 on t2.b = t7.a and t2.c = t7.d order by t2.a,t2.b,t7.a,t7.b;
a b c a b c d
@ -1711,11 +1711,11 @@ Outputs & filters:
merge_directions([ASC], [ASC])
1 - output([t8.a], [t8.c], [t8.b]), filter(nil), rowset=16
access([t8.a], [t8.c], [t8.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t9.a], [t9.c], [t9.b]), filter(nil), rowset=16
access([t9.a], [t9.c], [t9.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+use_merge(t8 t9)*/ * from t8 join t9 on t8.c = t9.c and t8.b = t9.b;
a b c a b c
@ -1745,13 +1745,13 @@ Outputs & filters:
sort_keys([t8.b, ASC], [t8.a, ASC]), prefix_pos(1)
2 - output([t8.a], [t8.b], [t8.c]), filter(nil), rowset=16
access([t8.a], [t8.b], [t8.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
sort_keys([t9.a, ASC])
4 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
access([t9.a], [t9.b], [t9.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+index(t8 idx), index(t9 idx), use_merge(t8 t9)*/ * from t8 join t9 on t8.a = t9.b and t8.b = t9.a;
a b c a b c
@ -1772,11 +1772,11 @@ Outputs & filters:
merge_directions([ASC], [ASC])
1 - output([t8.a], [t8.c], [t8.b]), filter(nil), rowset=16
access([t8.a], [t8.c], [t8.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t9.a], [t9.c], [t9.b]), filter(nil), rowset=16
access([t9.a], [t9.c], [t9.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+use_merge(t8 t9)*/ * from t8 left join t9 on t8.c = t9.c and t8.b = t9.b;
a b c a b c
@ -1806,13 +1806,13 @@ Outputs & filters:
sort_keys([t8.b, ASC], [t8.a, ASC]), prefix_pos(1)
2 - output([t8.a], [t8.b], [t8.c]), filter(nil), rowset=16
access([t8.a], [t8.b], [t8.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
sort_keys([t9.a, ASC])
4 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
access([t9.a], [t9.b], [t9.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+index(t8 idx), index(t9 idx), use_merge(t8 t9)*/ * from t8 left join t9 on t8.a = t9.b and t8.b = t9.a;
a b c a b c
@ -1838,11 +1838,11 @@ Outputs & filters:
merge_directions([ASC], [ASC])
1 - output([t8.a], [t8.c], [t8.b]), filter(nil), rowset=16
access([t8.a], [t8.c], [t8.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t9.a], [t9.c], [t9.b]), filter(nil), rowset=16
access([t9.a], [t9.c], [t9.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+use_merge(t8 t9)*/ * from t8 right join t9 on t8.c = t9.c and t8.b = t9.b;
a b c a b c
@ -1873,13 +1873,13 @@ Outputs & filters:
sort_keys([t8.b, ASC], [t8.a, ASC]), prefix_pos(1)
2 - output([t8.a], [t8.b], [t8.c]), filter(nil), rowset=16
access([t8.a], [t8.b], [t8.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
sort_keys([t9.a, ASC])
4 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
access([t9.a], [t9.b], [t9.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+index(t8 idx), index(t9 idx), use_merge(t8 t9)*/ * from t8 right join t9 on t8.a = t9.b and t8.b = t9.a;
a b c a b c
@ -1906,11 +1906,11 @@ Outputs & filters:
merge_directions([ASC], [ASC])
1 - output([t8.a], [t8.c], [t8.b]), filter(nil), rowset=16
access([t8.a], [t8.c], [t8.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t9.a], [t9.c], [t9.b]), filter(nil), rowset=16
access([t9.a], [t9.c], [t9.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+use_merge(t8 t9)*/ * from t8 right join t9 on t8.c = t9.c and t8.b = t9.b;
a b c a b c
@ -1941,13 +1941,13 @@ Outputs & filters:
sort_keys([t8.b, ASC], [t8.a, ASC]), prefix_pos(1)
2 - output([t8.a], [t8.b], [t8.c]), filter(nil), rowset=16
access([t8.a], [t8.b], [t8.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t8.b], [t8.c], [t8.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
sort_keys([t9.a, ASC])
4 - output([t9.a], [t9.b], [t9.c]), filter(nil), rowset=16
access([t9.a], [t9.b], [t9.c]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t9.b], [t9.c], [t9.a]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+index(t8 idx), index(t9 idx), use_merge(t8 t9)*/ * from t8 full join t9 on t8.a = t9.b and t8.b = t9.a;
a b c a b c
@ -1986,13 +1986,13 @@ Outputs & filters:
merge_directions([ASC], [ASC])
2 - output([table1.pk], [table1.col_int_key], [table1.col_varchar_10_key]), filter(nil), rowset=256
access([table1.pk], [table1.col_int_key], [table1.col_varchar_10_key]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([table1.pk]), range(MIN ; MAX)always true
3 - output([table2.col_int_key], [table2.pk]), filter(nil), rowset=256
sort_keys([table2.col_int_key, ASC], [table2.pk, ASC])
4 - output([table2.pk], [table2.col_int_key]), filter(nil), rowset=256
access([table2.pk], [table2.col_int_key]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([table2.pk], [table2.col_int_key]), range(MIN,MIN ; MAX,MAX)always true
SELECT /*+no_rewrite,leading(table1 table2),use_merge(table1 table2)*/ table1 . col_varchar_10_key AS field1 FROM BB AS table1, CC AS table2 WHERE table1 . `col_int_key` = table2 . `pk` and table2 . `col_int_key` = table1 . `pk` ORDER BY table1 . col_int_key DESC;
field1

View File

@ -31,13 +31,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
range_cond([t1.id > 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
range_cond([t2.id > 200])
select t1.id, t2.id from t1, t2 where t2.id = t1.id and t1.id>200;
+----+----+
@ -61,13 +61,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(MAX ; MIN)always false,
range_cond([t1.id > 200], [t1.id < 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
range_cond([t2.id > 200])
select t1.id, t2.id from t1, t2 where t2.id = t1.id and t1.id>200 and t1.id<200;
+----+----+
@ -91,13 +91,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([a.id]), filter(nil), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false,
range_key([a.id]), range(MAX ; MIN)always false,
range_cond([a.id > 200], [a.id < 200])
2 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([b.id]), range(200 ; MAX),
range_cond([b.id > 200])
select a.id , b.id from t1 a, t2 b where a.id = b.id and a.id>200 and a.id<200;
+----+----+
@ -121,13 +121,13 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.id]), range(MIN ; MAX)always true
2 - output([a.id]), filter(nil), rowset=16
3 - output([a.id]), filter([a.id = a.id]), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
range_cond([a.id > 200], [a.id < 200])
select a.id, b.id from t1 a, t2 b where a.id = a.id and a.id>200 and a.id<200;
+----+----+

View File

@ -33,13 +33,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
range_cond([t1.id > 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
range_cond([t2.id > 200])
select t1.id, t2.id from t1 join t2 on t2.id = t1.id and t1.id>200;
+----+----+
@ -63,13 +63,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(MAX ; MIN)always false,
range_cond([t1.id > 200], [t1.id < 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
range_cond([t2.id > 200])
select t1.id, t2.id from t1 join t2 on t2.id = t1.id and t1.id>200 and t1.id<200;
+----+----+
@ -93,13 +93,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([a.id]), filter(nil), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false,
range_key([a.id]), range(MAX ; MIN)always false,
range_cond([a.id > 200], [a.id < 200])
2 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([b.id]), range(200 ; MAX),
range_cond([b.id > 200])
select a.id , b.id from t1 a join t2 b on a.id = b.id and a.id>200 and a.id<200;
+----+----+
@ -123,13 +123,13 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.id]), range(MIN ; MAX)always true
2 - output([a.id]), filter(nil), rowset=16
3 - output([a.id]), filter([a.id = a.id]), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
range_cond([a.id > 200], [a.id < 200])
select a.id, b.id from t1 a join t2 b on a.id = a.id and a.id>200 and a.id<200;
+----+----+

View File

@ -33,13 +33,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
range_cond([t1.id > 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(200 ; MAX),
range_cond([t2.id > 200])
select t1.id, t2.id from t1 join t2 on t2.id = t1.id where t1.id>200;
+----+----+
@ -63,13 +63,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([t1.id]), filter(nil), rowset=16
access([t1.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t1.id]), range(200 ; MAX),
range_cond([t1.id > 200])
2 - output([t2.id]), filter(nil), rowset=16
access([t2.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(NULL ; 200),
is_index_back=false, is_global_index=false,
range_key([t2.id]), range(NULL ; 200),
range_cond([t2.id < 200])
select t1.id, t2.id from t1 join t2 on t2.id = t1.id where t1.id>200 and t1.id<200;
+----+----+
@ -93,13 +93,13 @@ Outputs & filters:
merge_directions([ASC])
1 - output([a.id]), filter(nil), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([a.id]), range(200 ; MAX),
is_index_back=false, is_global_index=false,
range_key([a.id]), range(200 ; MAX),
range_cond([a.id > 200])
2 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([b.id]), range(NULL ; 200),
is_index_back=false, is_global_index=false,
range_key([b.id]), range(NULL ; 200),
range_cond([b.id < 200])
select a.id , b.id from t1 a join t2 b on a.id = b.id where a.id>200 and a.id<200;
+----+----+
@ -123,13 +123,13 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output([b.id]), filter(nil), rowset=16
access([b.id]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.id]), range(MIN ; MAX)always true
2 - output([a.id]), filter(nil), rowset=16
3 - output([a.id]), filter([a.id = a.id]), rowset=16
access([a.id]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([a.id]), range(MAX ; MIN)always false,
range_cond([a.id > 200], [a.id < 200])
select a.id , b.id from t1 a join t2 b on a.id = a.id where a.id>200 and a.id<200;
+----+----+

View File

@ -261,7 +261,7 @@ select /*+ no_rewrite*/ c2, c3 from xy_t2 where c2 in (select c2 from xy_t1 wher
--echo //两边唯一有序, 改写为inner join
select /*+ use_hash(xy_t1 xy_t2)*/ c1, c2 from xy_t2 where c1 in (select c1 from xy_t1 where xy_t1.c2 < xy_t2.c2) order by 1,2;
select /*+ use_merge(xy_t1 xy_t2)*/ c1, c2 from xy_t2 where c1 in (select c1 from xy_t1 where xy_t1.c2 < xy_t2.c2) order by 1,2;
# bug:
# bug:
# select /*+ use_nl(xy_t1 xy_t2)*/ c1, c2 from xy_t2 where c1 in (select c1 from xy_t1 where xy_t1.c2 < xy_t2.c2) order by 1,2;
select /*+ no_rewrite*/ c1, c2 from xy_t2 where c1 in (select c1 from xy_t1 where xy_t1.c2 < xy_t2.c2) order by 1,2;

View File

@ -33,7 +33,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
explain select * from t1 where c1 = 1;
Query Plan
@ -46,8 +46,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MIN ; 1,MAX),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MIN ; 1,MAX),
range_cond([t1.c1 = 1])
explain select * from t1 where c1 < 1;
Query Plan
@ -60,8 +60,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(NULL,MAX ; 1,MIN),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(NULL,MAX ; 1,MIN),
range_cond([t1.c1 < 1])
explain select * from t1 where c1 > 1;
Query Plan
@ -74,8 +74,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MAX ; MAX,MAX),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MAX ; MAX,MAX),
range_cond([t1.c1 > 1])
explain select * from t1 where c1 > 1 and c1 < 10;
Query Plan
@ -88,8 +88,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MAX ; 10,MIN),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.__pk_increment]), range(1,MAX ; 10,MIN),
range_cond([t1.c1 > 1], [t1.c1 < 10])
explain select * from t1 where c1 = 1 and c2 < 1;
Query Plan
@ -102,8 +102,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.__pk_increment]), range(1,NULL,MAX ; 1,1,MIN),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.__pk_increment]), range(1,NULL,MAX ; 1,1,MIN),
range_cond([t1.c1 = 1], [t1.c2 < 1])
explain select * from t1 where c1 = 1 and c2 = 1;
Query Plan
@ -116,8 +116,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.__pk_increment]), range(1,1,MIN ; 1,1,MAX),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.__pk_increment]), range(1,1,MIN ; 1,1,MAX),
range_cond([t1.c1 = 1], [t1.c2 = 1])
explain select * from t1 where c1 = 1 and c2 = 1 and c3 < 1;
Query Plan
@ -130,8 +130,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3], [t1.__pk_increment]), range(1,1,NULL,MAX ; 1,1,1,MIN),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3], [t1.__pk_increment]), range(1,1,NULL,MAX ; 1,1,1,MIN),
range_cond([t1.c1 = 1], [t1.c2 = 1], [t1.c3 < 1])
explain select * from t1 where c1 = 1 and c2 = 1 and c3 = 1;
Query Plan
@ -144,8 +144,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), filter(nil), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10]), partitions(p0)
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3], [t1.__pk_increment]), range(1,1,1,MIN ; 1,1,1,MAX),
is_index_back=true, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3], [t1.__pk_increment]), range(1,1,1,MIN ; 1,1,1,MAX),
range_cond([t1.c1 = 1], [t1.c2 = 1], [t1.c3 = 1])
explain select count(*) from t2;
Query Plan
@ -161,7 +161,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select * from t2 where c1 = 1;
Query Plan
@ -174,8 +174,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter(nil), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t2.c1 = 1])
explain select * from t2 where c1 < 1;
Query Plan
@ -188,8 +188,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter(nil), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(NULL,MAX,MAX ; 1,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(NULL,MAX,MAX ; 1,MIN,MIN),
range_cond([t2.c1 < 1])
explain select * from t2 where c1 > 1;
Query Plan
@ -202,8 +202,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter(nil), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MAX,MAX ; MAX,MAX,MAX),
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MAX,MAX ; MAX,MAX,MAX),
range_cond([t2.c1 > 1])
explain select * from t2 where c1 > 1 and c1 < 10;
Query Plan
@ -216,8 +216,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter(nil), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MAX,MAX ; 10,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MAX,MAX ; 10,MIN,MIN),
range_cond([t2.c1 > 1], [t2.c1 < 10])
explain select * from t2 where c1 = 1 and c2 < 1;
Query Plan
@ -230,8 +230,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter([t2.c2 < 1]), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t2.c1 = 1])
explain select * from t2 where c1 = 1 and c2 = 1;
Query Plan
@ -244,8 +244,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter([t2.c2 = 1]), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t2.c1 = 1])
explain select * from t2 where c1 = 1 and c2 = 1 and c3 < 1;
Query Plan
@ -258,8 +258,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter([t2.c3 < 1], [t2.c2 = 1]), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t2.c1 = 1])
explain select * from t2 where c1 = 1 and c2 = 1 and c3 = 1;
Query Plan
@ -272,8 +272,8 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c6], [t2.c7], [t2.c8], [t2.c9], [t2.c10]), filter([t2.c2 = 1], [t2.c3 = 1]), rowset=16
access([t2.c1], [t2.c6], [t2.c7], [t2.c2], [t2.c3], [t2.c4], [t2.c5], [t2.c8], [t2.c9], [t2.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
range_key([t2.c1], [t2.c6], [t2.c7]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t2.c1 = 1])
explain select count(*) from t3;
Query Plan
@ -289,7 +289,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select * from t3 where c1 = 1;
Query Plan
@ -302,8 +302,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MIN,MIN ; 1,MAX,MAX),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t3.c1 = 1])
explain select * from t3 where c1 < 1;
Query Plan
@ -316,8 +316,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(NULL,MAX,MAX ; 1,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(NULL,MAX,MAX ; 1,MIN,MIN),
range_cond([t3.c1 < 1])
explain select * from t3 where c1 > 1;
Query Plan
@ -330,8 +330,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MAX,MAX ; MAX,MAX,MAX),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MAX,MAX ; MAX,MAX,MAX),
range_cond([t3.c1 > 1])
explain select * from t3 where c1 > 1 and c1 < 10;
Query Plan
@ -344,8 +344,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MAX,MAX ; 10,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,MAX,MAX ; 10,MIN,MIN),
range_cond([t3.c1 > 1], [t3.c1 < 10])
explain select * from t3 where c1 = 1 and c2 < 1;
Query Plan
@ -358,8 +358,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,NULL,MAX ; 1,1,MIN),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,NULL,MAX ; 1,1,MIN),
range_cond([t3.c1 = 1], [t3.c2 < 1])
explain select * from t3 where c1 = 1 and c2 = 1;
Query Plan
@ -372,8 +372,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter(nil), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
is_index_back=false, is_global_index=false,
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
range_cond([t3.c1 = 1], [t3.c2 = 1])
explain select * from t3 where c1 = 1 and c2 = 1 and c3 < 1;
Query Plan
@ -386,8 +386,8 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter([t3.c3 < 1]), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
range_cond([t3.c1 = 1], [t3.c2 = 1])
explain select * from t3 where c1 = 1 and c2 = 1 and c3 = 1;
Query Plan
@ -400,6 +400,6 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t3.c4], [t3.c5], [t3.c6], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), filter([t3.c3 = 1]), rowset=16
access([t3.c1], [t3.c2], [t3.c6], [t3.c3], [t3.c4], [t3.c5], [t3.c7], [t3.c8], [t3.c9], [t3.c10]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t3.c1], [t3.c2], [t3.c6]), range(1,1,MIN ; 1,1,MAX),
range_cond([t3.c1 = 1], [t3.c2 = 1])

View File

@ -33,11 +33,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c1]), range(MIN ; MAX)always true
select * from t4 union select * from t4;
+----+------+------+
@ -69,11 +69,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ * from t4 union
select /*+ index(t4 idx_t4_c2c3) */ * from t4 order by 1,2,3;
@ -106,11 +106,11 @@ Outputs & filters:
1 - output([UNION([2])], [UNION([1])]), filter(nil), rowset=16
2 - output([t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t4.c2], [t4.c3]), filter(nil), rowset=16
access([t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c2,c3 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c2,c3 from t4 order by 2,1;
@ -143,11 +143,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([t4.c3], [t4.c2]), filter(nil), rowset=16
access([t4.c3], [t4.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t4.c3], [t4.c2]), filter(nil), rowset=16
access([t4.c3], [t4.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c3,c2 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c3,c2 from t4 order by 1,2;
@ -177,11 +177,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([t4.c2], [t4.c3], [t4.c1]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t4.c2], [t4.c3], [t4.c1]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c2,c3,c1 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c2,c3,c1 from t4 order by 1,2,3;
@ -211,11 +211,11 @@ Outputs & filters:
0 - output([UNION([1])]), filter(nil), rowset=16
1 - output([t4.c2]), filter(nil), rowset=16
access([t4.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t4.c2]), filter(nil), rowset=16
access([t4.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c2 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c2 from t4 order by 1;
@ -247,11 +247,11 @@ Outputs & filters:
1 - output([UNION([1])]), filter(nil), rowset=16
2 - output([t4.c3]), filter(nil), rowset=16
access([t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t4.c3]), filter(nil), rowset=16
access([t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c3 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c3 from t4 order by 1;
@ -283,11 +283,11 @@ Outputs & filters:
1 - output([UNION([1])]), filter(nil), rowset=16
2 - output([t4.c1]), filter(nil), rowset=16
access([t4.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t4.c1]), filter(nil), rowset=16
access([t4.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c1 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c1 from t4 order by 1;
@ -321,13 +321,13 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
2 - output([x.c3], [x.c1], [x.c2]), filter(nil), rowset=16
access([x.c1], [x.c3], [x.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([x.c2], [x.c3], [x.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([y.c3], [y.c2], [y.c1]), filter(nil), rowset=16
sort_keys([y.c1, ASC])
4 - output([y.c1], [y.c3], [y.c2]), filter(nil), rowset=16
access([y.c1], [y.c3], [y.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([y.c2], [y.c3], [y.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(x idx_t4_c2c3) */ c3,c1,c2 from t4 x union
select /*+ index(y idx_t4_c2c3) */ c3,c2,c1 from t4 y order by 1,2,3;
@ -363,13 +363,13 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([t4.c2], [t4.c3], [t4.c1]), filter(nil), rowset=16
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t4.c3], [t4.c2], [t4.c1]), filter(nil), rowset=16
sort_keys([t4.c3, ASC], [t4.c2, ASC], [t4.c1, ASC])
3 - output([t4.c1], [t4.c3], [t4.c2]), filter(nil), rowset=16
access([t4.c1], [t4.c3], [t4.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select /*+ index(t4 idx_t4_c2c3) */ c2,c3,c1 from t4 union
select /*+ index(t4 idx_t4_c2c3) */ c3,c2,c1 from t4 order by 1,2,3;
@ -427,11 +427,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([t5.c2], [t5.c3]), filter(nil), rowset=16
access([t5.__pk_increment], [t5.c2], [t5.c3]), partitions(p0)
is_index_back=true, is_global_index=false,
is_index_back=true, is_global_index=false,
range_key([t5.c2], [t5.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
3 - output([t5.c2], [t5.c3]), filter(nil), rowset=16
access([t5.__pk_increment], [t5.c2], [t5.c3]), partitions(p0)
is_index_back=true, is_global_index=false,
is_index_back=true, is_global_index=false,
range_key([t5.c2], [t5.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
select /*+ index(t5 idx_t5_c2) */ c2,c3 from t5 union
select /*+ index(t5 idx_t5_c2) */ c2,c3 from t5 order by 1,2;
@ -460,11 +460,11 @@ Outputs & filters:
0 - output([UNION([1])]), filter(nil), rowset=16
1 - output([t5.c2]), filter(nil), rowset=16
access([t5.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t5.c2], [t5.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t5.c2]), filter(nil), rowset=16
access([t5.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t5.c2], [t5.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
select /*+ index(t5 idx_t5_c2) */ c2 from t5 union
select /*+ index(t5 idx_t5_c2) */ c2 from t5 order by 1;
@ -515,11 +515,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=256
1 - output([t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c1,c2 from t6 union select c1,c2 from t6 order by 1,2;
+------+------+
@ -559,11 +559,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=256
2 - output([t6.c2], [t6.c1]), filter(nil), rowset=256
access([t6.c2], [t6.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t6.c2], [t6.c1]), filter(nil), rowset=256
access([t6.c2], [t6.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2,c1 from t6 union select c2,c1 from t6 order by 1,2;
+------+------+
@ -601,13 +601,13 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=256
1 - output([t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t6.c2], [t6.c1]), filter(nil), rowset=256
sort_keys([t6.c2, ASC], [t6.c1, ASC])
3 - output([t6.c2], [t6.c1]), filter(nil), rowset=256
access([t6.c2], [t6.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2,c1 from t6 union select c1,c2 from t6 order by 1,2;
+------+------+
@ -656,11 +656,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=256
2 - output([cast(t6.c2, BIGINT(20, 0))], [t6.c1]), filter(nil), rowset=256
access([t6.c2], [t6.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([0 + t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.__pk_increment]), range(MIN ; MAX)always true
select c2,c1 from t6 union select 0+c1,c2 from t6 order by 1,2;
+------+------+
@ -708,11 +708,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])], [UNION([3])], [UNION([4])]), filter(nil), rowset=256
2 - output([cast(t6.c1, BIGINT(20, 0))], [t6.c2], [t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([0 + t6.c1], [t6.c2], [t6.c1], [t6.c2]), filter(nil), rowset=256
access([t6.c1], [t6.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t6.c1], [t6.c2], [t6.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c1,c2,c1,c2 from t6 union select 0+c1,c2,c1,c2 from t6 order by 1,2,3,4;
+------+------+------+------+
@ -771,7 +771,7 @@ Outputs & filters:
force partition granule
5 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
6 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
7 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
@ -780,8 +780,8 @@ Outputs & filters:
force partition granule
9 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 10,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 10,MIN,MIN,MIN),
range_cond([t7.c2 < cast(10, DECIMAL(2, 0))])
select /*+ index(t7 idx_t7_c2c1) */ c2,c1,c3 from t7 union
select /*+ index(t7 idx_t7_c2c1) */ c2,c1,c3 from t7 where c2 < 10 order by 1,2,3;
@ -838,7 +838,7 @@ Outputs & filters:
force partition granule
5 - output([yy.c2]), filter(nil), rowset=16
access([yy.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([yy.c2], [yy.c1], [yy.c3], [yy.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
6 - output([xx.c2], [xx.c1]), filter(nil), rowset=16
access([xx.c2], [xx.c1])
@ -850,7 +850,7 @@ Outputs & filters:
force partition granule
11 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
12 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
13 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
@ -859,8 +859,8 @@ Outputs & filters:
force partition granule
15 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 10,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 10,MIN,MIN,MIN),
range_cond([t7.c2 < cast(10, DECIMAL(2, 0))])
select xx.c2,xx.c1 from
(select /*+ index(t7 idx_t7_c2c1) */ c2,c1,c3 from t7 union
@ -916,7 +916,7 @@ Outputs & filters:
force partition granule
5 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
6 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
7 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
@ -925,7 +925,7 @@ Outputs & filters:
force partition granule
9 - output([t7.c2], [t7.c1], [t7.c3]), filter(nil), rowset=16
access([t7.c2], [t7.c1], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
select /*+ index(t7 idx_t7_c2c1) */ c2,c1,c3 from t7 union
select /*+ index(t7 idx_t7_c2c1) */ c2,c1,c3 from t7 order by 1,2,3;
@ -971,7 +971,7 @@ Outputs & filters:
force partition granule
5 - output([t7.c1]), filter(nil), rowset=16
access([t7.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
6 - output([t7.c1]), filter(nil), rowset=16
7 - output([t7.c1]), filter(nil), rowset=16
@ -980,7 +980,7 @@ Outputs & filters:
force partition granule
9 - output([t7.c1]), filter(nil), rowset=16
access([t7.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
select c1 from t7 union select c1 from t7 order by 1;
+------+
@ -1024,7 +1024,7 @@ Outputs & filters:
force partition granule
5 - output([t7.c1], [t7.c2], [t7.c3]), filter(nil), rowset=16
access([t7.c1], [t7.c2], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
6 - output([t7.c1], [t7.c2], [t7.c3]), filter(nil), rowset=16
7 - output([t7.c1], [t7.c2], [t7.c3]), filter(nil), rowset=16
@ -1033,7 +1033,7 @@ Outputs & filters:
force partition granule
9 - output([t7.c1], [t7.c2], [t7.c3]), filter(nil), rowset=16
access([t7.c1], [t7.c2], [t7.c3]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t7.c2], [t7.c1], [t7.c3], [t7.__pk_increment]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
select /*+ index(t7 idx_t7_c2c1) */ c1,c2,c3 from t7 union
select /*+ index(t7 idx_t7_c2c1) */ c1,c2,c3 from t7 order by 1,2,3;
@ -1103,13 +1103,13 @@ Outputs & filters:
force partition granule
5 - output([t7.c3], [t7.c1], [t7.c2]), filter(nil), rowset=16
access([t7.c3], [t7.c1], [t7.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t7.c3 < 5])
6 - output([t72.c1], [t72.c2], [t72.c3]), filter(nil), rowset=16
access([t72.c3], [t72.c1], [t72.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t72.c3 < 5])
select /*+ index(t7 idx_t7_c3c2c1) */ c1,c2,c3 from t7 where c3 < 5 union
select /*+ index(t72 idx_t72_c3c2c1) */ c1,c2,c3 from t72 where c3 < 5 order by 1,2,3;
@ -1153,13 +1153,13 @@ Outputs & filters:
force partition granule
5 - output([t7.c3], [t7.c2], [t7.c1]), filter(nil), rowset=16
access([t7.c3], [t7.c2], [t7.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t7.c3 < 5])
6 - output([t72.c3], [t72.c2], [t72.c1]), filter(nil), rowset=16
access([t72.c3], [t72.c2], [t72.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t72.c3 < 5])
select /*+ index(t7 idx_t7_c3c2c1) */ c3,c2,c1 from t7 where c3 < 5 union
select /*+ index(t72 idx_t72_c3c2c1) */ c3,c2,c1 from t72 where c3 < 5 order by 1,2,3;
@ -1205,13 +1205,13 @@ Outputs & filters:
force partition granule
5 - output([t7.c3], [t7.c1], [t7.c2]), filter(nil), rowset=16
access([t7.c3], [t7.c1], [t7.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t7.c3 < 5])
6 - output([t72.c1], [t72.c2], [t72.c3]), filter(nil), rowset=16
access([t72.c3], [t72.c1], [t72.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t72.c3 < 5])
select /*+ index(t7 idx_t7_c3c2c1) */ c1,c2,c3 from t7 where c3 < 5 union
select /*+ index(t72 idx_t72_c3c2c1) */ c1,c2,c3 from t72 where c3 < 5 order by 1,2,3;
@ -1255,13 +1255,13 @@ Outputs & filters:
force partition granule
5 - output([t7.c3], [t7.c2], [t7.c1]), filter(nil), rowset=16
access([t7.c3], [t7.c2], [t7.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t7.c3], [t7.c2], [t7.c1], [t7.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t7.c3 < 5])
6 - output([t72.c3], [t72.c2], [t72.c1]), filter(nil), rowset=16
access([t72.c3], [t72.c2], [t72.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
is_index_back=false, is_global_index=false,
range_key([t72.c3], [t72.c2], [t72.c1], [t72.__pk_increment]), range(NULL,MAX,MAX,MAX ; 5,MIN,MIN,MIN),
range_cond([t72.c3 < 5])
select /*+ index(t7 idx_t7_c3c2c1) */ c3,c2,c1 from t7 where c3 < 5 union
select /*+ index(t72 idx_t72_c3c2c1) */ c3,c2,c1 from t72 where c3 < 5 order by 1,2,3;
@ -1335,11 +1335,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([test1.c2], [test1.c1]), filter(nil), rowset=16
access([test1.c2], [test1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.c1], [test1.c2], [test1.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([test2.d2], [test2.d1]), filter(nil), rowset=16
access([test2.d2], [test2.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.d1], [test2.d2], [test2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2, c1 from test1 union select d2,d1 from test2 order by c2,c1;
+------+------+
@ -1372,11 +1372,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([test1.c2], [test1.c1]), filter(nil), rowset=16
access([test1.c2], [test1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.c1], [test1.c2], [test1.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([test2.d2], [test2.d1]), filter(nil), rowset=16
access([test2.d2], [test2.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.d1], [test2.d2], [test2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2, c1 from test1 union select d2,d1 from test2 order by c1,c2;
+------+------+
@ -1412,11 +1412,11 @@ Outputs & filters:
1 - output([UNION([2])], [UNION([1])]), filter(nil), rowset=16
2 - output([test1.c2], [test1.c1]), filter(nil), rowset=16
access([test1.c2], [test1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.c1], [test1.c2], [test1.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([test2.d2], [test2.d1]), filter(nil), rowset=16
access([test2.d2], [test2.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.d1], [test2.d2], [test2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2, c1 from test1 union select d2,d1 from test2 order by c1 desc,c2 desc;
+------+------+
@ -1452,11 +1452,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([1], [test1.c1]), filter(nil), rowset=16
access([test1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.c1], [test1.c2], [test1.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([2], [test2.d1]), filter(nil), rowset=16
access([test2.d1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.d1], [test2.d2], [test2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select 1, c1 from test1 union select 2,d1 from test2 order by 1,2;
+------+------+
@ -1487,11 +1487,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([1], [test1.c2]), filter(nil), rowset=16
access([test1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.__pk_increment]), range(MIN ; MAX)always true
3 - output([cast(test2.d1, BIGINT(20, 0))], [test2.d2]), filter(nil), rowset=16
access([test2.d1], [test2.d2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.__pk_increment]), range(MIN ; MAX)always true
select 1, c2 from test1 union select d1,d2 from test2 order by 1,2;
+------+------+
@ -1525,11 +1525,11 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([test1.c1 % 2], [test1.c2 % 2]), filter(nil), rowset=16
access([test1.c1], [test1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test1.__pk_increment]), range(MIN ; MAX)always true
3 - output([test2.d1 % 2], [test2.d2 % 2]), filter(nil), rowset=16
access([test2.d1], [test2.d2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([test2.__pk_increment]), range(MIN ; MAX)always true
select mod(c1,2),mod(c2,2) from test1 union select mod(d1,2),mod(d2,2) from test2 order by 1,2;
+-----------+-----------+
@ -1595,11 +1595,11 @@ Outputs & filters:
sort_keys([x1.c2, ASC], [x1.c3, ASC])
2 - output([x1.c2], [x1.c3]), filter(nil), rowset=16
access([x1.c2], [x1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([x1.__pk_increment]), range(MIN ; MAX)always true
3 - output([x2.d2], [x2.d3]), filter(nil), rowset=16
access([x2.d2], [x2.d3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([x2.d2], [x2.d3], [x2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select c2, c3 from x1 union select /*+ index(x2 ix2) */ d2, d3 from x2 order by 1,2;
+------+------+
@ -1628,13 +1628,13 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
2 - output([x2.d3], [x2.d2]), filter(nil), rowset=16
access([x2.d3], [x2.d2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([x2.d2], [x2.d3], [x2.__pk_increment]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([x1.c3], [x1.c2]), filter(nil), rowset=16
sort_keys([x1.c2, ASC], [x1.c3, ASC])
4 - output([x1.c3], [x1.c2]), filter(nil), rowset=16
access([x1.c3], [x1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([x1.__pk_increment]), range(MIN ; MAX)always true
select c3, c2 from x1 union select /*+ index(x2 ix2) */ d3, d2 from x2 order by 1,2;
+------+------+
@ -1706,13 +1706,13 @@ Outputs & filters:
sort_keys([ts2.c2, DESC], [ts2.c1, ASC]), topn(1)
3 - output([ts2.c1], [ts2.c2]), filter(nil), rowset=16
access([ts2.c1], [ts2.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([ts2.__pk_increment]), range(MIN ; MAX)always true
4 - output([ts1.c1], [ts1.c2]), filter(nil), rowset=16
sort_keys([ts1.c2, DESC], [ts1.c1, ASC])
5 - output([ts1.c1], [ts1.c2]), filter(nil), rowset=16
access([ts1.c1], [ts1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([ts1.__pk_increment]), range(MIN ; MAX)always true
SELECT c1, c2 FROM (
SELECT c1, c2 FROM ts1
@ -1753,15 +1753,15 @@ Outputs & filters:
1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
2 - output([t1.C1], [t1.C2], [t1.PK]), filter(nil), rowset=16
access([t1.PK], [t1.C1], [t1.C2]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.PK]), range(MIN ; MAX)always true
3 - output([t2.C1], [t2.C2], [t2.PK]), filter(nil), rowset=16
access([t2.PK], [t2.C1], [t2.C2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.PK]), range(MIN ; MAX)always true
4 - output([t3.C1], [t3.C2], [t3.PK]), filter(nil), rowset=16
access([t3.PK], [t3.C1], [t3.C2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.PK]), range(MIN ; MAX)always true
(SELECT C1, C2, PK FROM T1 ORDER BY PK DESC LIMIT 1) UNION (SELECT C1, C2, PK FROM T2 UNION SELECT C1, C2 ,PK FROM T3);
+------+------+----+
@ -1860,8 +1860,8 @@ Outputs & filters:
[table2_bigint.col_decimal_20_0_signed], [table2_bigint.col_decimal_20_0_unsigned], [table2_bigint.col_timestamp_6], [table2_bigint.pk]), filter(nil), rowset=16
access([table2_bigint.pk], [table2_bigint.col_bigint], [table2_bigint.col_bigint_signed], [table2_bigint.col_bigint_unsigned], [table2_bigint.col_char_20],
[table2_bigint.col_decimal_20_0], [table2_bigint.col_decimal_20_0_signed], [table2_bigint.col_decimal_20_0_unsigned], [table2_bigint.col_timestamp_6]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([table2_bigint.pk]), range[9727744 ; 9727744], [7826688 ; 7826688], [1657856 ; 1657856], [55039 ; 55039], [50631 ; 50631],
is_index_back=false, is_global_index=false,
range_key([table2_bigint.pk]), range[9727744 ; 9727744], [7826688 ; 7826688], [1657856 ; 1657856], [55039 ; 55039], [50631 ; 50631],
range_cond([table2_bigint.pk IN (9727744, 7826688, 1657856, 55039, 50631)])
5 - output([table100_bigint.col_bigint], [table100_bigint.col_bigint_signed], [table100_bigint.col_bigint_unsigned], [table100_bigint.col_char_20], [table100_bigint.col_decimal_20_0],
[table100_bigint.col_decimal_20_0_signed], [table100_bigint.col_decimal_20_0_unsigned], [table100_bigint.col_timestamp_6], [table100_bigint.pk]), filter(nil), rowset=16
@ -1871,11 +1871,11 @@ Outputs & filters:
sort_keys([table100_bigint.col_bigint_signed, ASC], [table100_bigint.col_decimal_20_0_signed, ASC], [table100_bigint.col_decimal_20_0, ASC], [table100_bigint.pk,
DESC]), topn(7)
7 - output([table100_bigint.pk], [table100_bigint.col_decimal_20_0_signed], [table100_bigint.col_decimal_20_0], [table100_bigint.col_bigint], [table100_bigint.col_bigint_signed],
[table100_bigint.col_bigint_unsigned], [table100_bigint.col_char_20], [table100_bigint.col_decimal_20_0_unsigned], [table100_bigint.col_timestamp_6]), filter([table100_bigint.col_decimal_20_0_signed
[table100_bigint.col_bigint_unsigned], [table100_bigint.col_char_20], [table100_bigint.col_decimal_20_0_unsigned], [table100_bigint.col_timestamp_6]), filter([table100_bigint.col_decimal_20_0_signed
= cast(ROUND(SIGN(table100_bigint.col_decimal_20_0)), DECIMAL(-1, 0))]), rowset=16
access([table100_bigint.pk], [table100_bigint.col_decimal_20_0_signed], [table100_bigint.col_decimal_20_0], [table100_bigint.col_bigint], [table100_bigint.col_bigint_signed],
[table100_bigint.col_bigint_unsigned], [table100_bigint.col_char_20], [table100_bigint.col_decimal_20_0_unsigned], [table100_bigint.col_timestamp_6]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([table100_bigint.pk]), range(MIN ; MAX)always true
8 - output([table2_bigint.col_bigint], [table2_bigint.col_bigint_signed], [table2_bigint.col_bigint_unsigned], [table2_bigint.col_char_20], [table2_bigint.col_decimal_20_0],
[table2_bigint.col_decimal_20_0_signed], [table2_bigint.col_decimal_20_0_unsigned], [table2_bigint.col_timestamp_6], [table2_bigint.pk]), filter(nil), rowset=16
@ -1885,7 +1885,7 @@ Outputs & filters:
DECIMAL(20, 0)) != cast(99999, DECIMAL(5, 0))]), rowset=16
access([table2_bigint.pk], [table2_bigint.col_decimal_20_0_unsigned], [table2_bigint.col_bigint], [table2_bigint.col_bigint_signed], [table2_bigint.col_bigint_unsigned],
[table2_bigint.col_char_20], [table2_bigint.col_decimal_20_0], [table2_bigint.col_decimal_20_0_signed], [table2_bigint.col_timestamp_6]), partitions(p0)
limit(5), offset(1), is_index_back=false, is_global_index=false, filter_before_indexback[false],
limit(5), offset(1), is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([table2_bigint.pk]), range(MIN ; MAX)always true
SELECT col_bigint, col_bigint_signed, col_bigint_unsigned, col_char_20, col_decimal_20_0, col_decimal_20_0_signed, col_decimal_20_0_unsigned, col_timestamp_6, pk
FROM

View File

@ -316,7 +316,7 @@ where t1.c1 = t2.c1 and
t4.d1 = t5.d1 AND
t1.c1 + t2.c1 = t4.d1 + t5.d2 ;
--echo ### 9.
--echo ### 9.
explain select /*+leading(t1 (t2 t3))*/* from t1,t3 where t1.a = t3.a and t1.b not in (select b from t2); #失效
explain select /*+leading(t2 t3 t1)*/* from t1,t3 where t1.a = t3.a and t1.b not in (select b from t2); #失效
explain select /*+leading(t3 t1 t2)*/* from t1,t3 where t1.a = t3.a and t1.b not in (select b from t2); #生效

View File

@ -399,7 +399,7 @@ explain select * from t1 where (t1.a, t1.b) in (select t2.a, t2.b from t2);
explain select * from t1 where (t1.a, t1.b) in (select t2.a, t2.b from t2) and (t1.a, t1.b) in (select t3.a, t3.b from t3);
explain select * from t1 where (t1.a, t1.b) in (select t2.a, t2.b from t2 where (t2.a, t2.b) in (select t3.a, t3.b from t3));
##bug
##bug
--disable_warnings
drop table if exists t1, t2, t3;
--enable_warnings

View File

@ -209,7 +209,7 @@ SELECT c1, c2 FROM (
(SELECT c1, c2 FROM ts2 ORDER BY c2 DESC, c1 LIMIT 1)
) AS res order by 1,2;
# bug:
# bug:
--disable_warnings
DROP TABLE IF EXISTS T1, T2, T3;

View File

@ -1892,7 +1892,7 @@ create function f(x int) returns int
begin
if x>1 then
return x;
else
else
signal SQLSTATE '01000';
end if;
end//
@ -1943,7 +1943,7 @@ ERROR 02000: Unhandled user-defined not found condition
drop function f;
### need has return in mysql function
###
###
DROP FUNCTION IF EXISTS `fun6`//
CREATE FUNCTION fun6 ( p1 INT) RETURNS VARCHAR(20)
@ -1980,8 +1980,8 @@ SELECT @num//
DROP FUNCTION IF EXISTS `fun6`//
### label dup
###
### label dup
###
DROP TABLE IF EXISTS result1//
CREATE TABLE result1(
id INT,
@ -2042,34 +2042,34 @@ DROP PROCEDURE IF EXISTS `pro_1`//
DROP PROCEDURE IF EXISTS `pro_2`//
DROP PROCEDURE IF EXISTS `pro_3`//
### ### varchar
### ###
### ### varchar
### ###
### DROP TABLE IF EXISTS t2//
### --error 1074
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(16384)
### )//
### DROP TABLE IF EXISTS t3//
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(16384)
### )//
### DROP TABLE IF EXISTS t3//
### --error 1074
### CREATE TABLE t3 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(262145)
### CREATE TABLE t3 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(262145)
### )//
### DROP FUNCTION IF EXISTS fun_l//
### --error 1074
### CREATE FUNCTION fun_l() RETURNS VARCHAR(262144)
### BEGIN
### DECLARE d1 VARCHAR(262144123456);
### DECLARE d1 VARCHAR(262144123456);
### SET d1='123456789012345678901234567890';
### RETURN '定义长度262144123456的VARCHAR(262144123456)类型的变量';
### END//
### --error 1305
### SELECT fun_l()//
### char
###
### END//
### --error 1305
### SELECT fun_l()//
### char
###
DROP TABLE IF EXISTS t1//
DROP TABLE IF EXISTS t2//
CREATE TABLE t1 (
@ -2078,7 +2078,7 @@ CREATE TABLE t1 (
d1 CHAR(255)
)//
### --error 1074
### TODO:
### TODO:
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
@ -2108,7 +2108,7 @@ SELECT * FROM t1//
+------+------+------+
### varbinary
###
###
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (
d1 VARBINARY(65536)
@ -2121,10 +2121,10 @@ ERROR 42000: Column length too big for column 'd1' (max = 1048576)
DROP FUNCTION IF EXISTS `fun_l`//
CREATE FUNCTION fun_l() RETURNS VARBINARY(65535)
BEGIN
BEGIN
DECLARE d1 VARBINARY(65536);
SET d1='123456789012345678901234567890';
RETURN '定义长度65536的VARCHAR类型的变量';
RETURN '定义长度65536的VARCHAR类型的变量';
END//
ERROR 42000: Column length too big for column '(null)' (max = 65535)
@ -2132,30 +2132,30 @@ SELECT fun_l()//
ERROR 42000: FUNCTION fun_l does not exist
### number
###
###
DROP FUNCTION IF EXISTS `fun_l`//
CREATE FUNCTION fun_l() RETURNS DEC(65,30)
BEGIN
DECLARE a DEC(66,30);
BEGIN
DECLARE a DEC(66,30);
SET a=123450.1415;
RETURN a;
RETURN a;
END//
ERROR 42000: Too big precision 66 specified for column '(null)'. Maximum is 65.
SELECT fun_l()//
ERROR 42000: FUNCTION fun_l does not exist
DROP FUNCTION IF EXISTS `fun_2`//
CREATE FUNCTION fun_2() RETURNS DEC(65,30)
BEGIN
DECLARE a DEC(65,31);
BEGIN
DECLARE a DEC(65,31);
SET a=50.1;
RETURN a;
RETURN a;
END//
ERROR 42000: Too big scale 31 specified for column '(null)'. Maximum is 30.
SELECT fun_2()//
ERROR 42000: FUNCTION fun_2 does not exist
### datetime
###
###
DROP TABLE IF EXISTS t2//
CREATE TABLE t2 (
id INT,
@ -2174,7 +2174,7 @@ SELECT fun_l()//
ERROR 42000: FUNCTION fun_l does not exist
### datetime max value insert fail
###
###
DROP TABLE IF EXISTS t2//
CREATE TABLE t2 (
id INT,
@ -2186,7 +2186,7 @@ CREATE TABLE t2 (
INSERT INTO t2 VALUES(1,'插入DATETIME类型数据','1000-01-01 00:00:00.123','2000-01-01 00:00:00.123','9999-12-31 23:59:59.999999')//
DROP PROCEDURE IF EXISTS `pro_1`//
CREATE PROCEDURE pro_1()
BEGIN
BEGIN
DECLARE d1 DATETIME DEFAULT '1000-01-01 00:00:00.000000';
DECLARE d2 DATETIME(0) DEFAULT '2021-07-02 23:59:59.999999';
DECLARE d3 DATETIME(6) DEFAULT '9999-12-31 23:59:59.999999';
@ -2204,7 +2204,7 @@ SELECT * FROM t2//
+------+----------------------------------------+---------------------+---------------------+----------------------------+
### int
###
###
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (
id INT,
@ -2229,7 +2229,7 @@ SELECT * FROM t1//
### commit
### rollback
###
###
DROP TABLE IF EXISTS t1//
CREATE TABLE t1
( a INT
@ -2326,19 +2326,19 @@ END//
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
### BIT
###
###
DROP TABLE IF EXISTS t1;//
DROP PROCEDURE IF EXISTS `pro_2`;//
CREATE PROCEDURE pro_2()
BEGIN
CREATE TABLE t1 (id INT,a BIT(65));
INSERT INTO t1 VALUES(1,b'0');
CREATE TABLE t1 (id INT,a BIT(65));
INSERT INTO t1 VALUES(1,b'0');
END;
//
ERROR 42000: Display width out of range for column 'CREATE TABLE t1 (id INT,a BIT(65))' (max = 64)
### load data
###
###
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (a INT)//
INSERT INTO t1 VALUES (1),(2),(3)//
@ -2351,7 +2351,7 @@ END//
ERROR HY000: 'LOAD DATA' is not allowed in stored procedure.
### lock
###
###
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (a INT)//
INSERT INTO t1 VALUES (1),(2),(3)//

View File

@ -539,7 +539,7 @@ BEGIN
IF tmp_i_price > 0 THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 4, tmp_s_quantity);
@ -584,7 +584,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 6, tmp_s_quantity);
@ -699,7 +699,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 11, tmp_s_quantity);
@ -722,7 +722,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 12, tmp_s_quantity);
@ -802,7 +802,7 @@ BEGIN
END//
CREATE PROCEDURE order_status (in_c_id INT,
in_c_w_id INT,
in_c_w_id INT,
in_c_d_id INT,
in_c_last VARCHAR(16))
BEGIN
@ -1019,7 +1019,7 @@ BEGIN
DECLARE out_w_state VARCHAR(2);
DECLARE out_w_zip VARCHAR(9);
DECLARE out_w_ytd INTEGER;
DECLARE out_d_name VARCHAR(10);
DECLARE out_d_street_1 VARCHAR(20);
DECLARE out_d_street_2 VARCHAR(20);
@ -1027,7 +1027,7 @@ BEGIN
DECLARE out_d_state VARCHAR(2);
DECLARE out_d_zip VARCHAR(9);
DECLARE out_d_ytd INTEGER;
DECLARE out_c_id INTEGER;
DECLARE out_c_first VARCHAR(16);
DECLARE out_c_middle VARCHAR(2);
@ -1412,3 +1412,5 @@ DROP PROCEDURE new_order;
DROP PROCEDURE order_status;
DROP PROCEDURE payment;
DROP PROCEDURE stock_level;

View File

@ -1557,3 +1557,4 @@ select * from b;
drop table a;
drop table b;
drop procedure p;

View File

@ -277,8 +277,8 @@ begin
DECLARE continue HANDLER FOR sqlexception insert into a values(-1);
begin
DECLARE aaa CONDITION FOR SQLSTATE '42S02';
DECLARE continue HANDLER FOR sqlexception
begin
DECLARE continue HANDLER FOR sqlexception
begin
insert into a values(0);
insert into t values(1);
insert into a values(6);

View File

@ -17,7 +17,7 @@ BEGIN
CALL p_not_exists();
END|
# should not return valgrind warnings
### TODO : --error 1305
### TODO : --error 1305
CALL p3(f2());
ERROR 2F005: FUNCTION ended without RETURN
@ -36,7 +36,7 @@ BEGIN
CALL p_not_exists();
END|
# should not return valgrind warnings
### TODO : --error 1305
### TODO : --error 1305
CALL p3(f2());
ERROR 2F005: FUNCTION ended without RETURN
@ -51,7 +51,7 @@ BEGIN
RETURN f_not_exists () ;
END|
# should not return valgrind warnings
### TODO : --error 1305
### TODO : --error 1305
SELECT f2();
ERROR 2F005: FUNCTION ended without RETURN
@ -68,36 +68,36 @@ USE test;
## DROP TRIGGER IF EXISTS tr1;
## DROP PROCEDURE IF EXISTS p1;
## --enable_warnings
##
##
## CREATE TABLE t1 (f1 INTEGER);
## CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
## CREATE PROCEDURE p1 () DROP TRIGGER tr1;
##
##
## CALL p1 ();
## --error ER_TRG_DOES_NOT_EXIST
## CALL p1 ();
##
##
## DROP TABLE t1;
## DROP PROCEDURE p1;
##
##
## --echo #
## --echo # Bug#50423: Crash on second call of a procedure dropping a trigger
## --echo #
##
##
## --disable_warnings
## DROP TABLE IF EXISTS t1;
## DROP TRIGGER IF EXISTS tr1;
## DROP PROCEDURE IF EXISTS p1;
## --enable_warnings
##
##
## CREATE TABLE t1 (f1 INTEGER);
## CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
## CREATE PROCEDURE p1 () DROP TRIGGER tr1;
##
##
## CALL p1 ();
## --error ER_TRG_DOES_NOT_EXIST
## CALL p1 ();
##
##
## DROP TABLE t1;
## DROP PROCEDURE p1;
#
@ -145,8 +145,8 @@ DROP DATABASE db1;
DROP DATABASE db2;
#
# Bug#13105873:valgrind warning:possible crash in foreign
# key handling on subsequent create table if not exists
# Bug#13105873:valgrind warning:possible crash in foreign
# key handling on subsequent create table if not exists
#
## oceanbase not support foreign key yet!
## --disable_warnings
@ -164,7 +164,7 @@ DROP DATABASE db2;
## DELIMITER ;$
## CALL p1();
## --echo # below stmt should not return valgrind warnings
## CALL p1();
## CALL p1();
## DROP DATABASE testdb;
## USE test;
End of 5.1 tests

View File

@ -42,3 +42,4 @@ select * from t3 order by f asc|
drop table t3|
drop procedure fib|
set @@max_sp_recursion_depth= 0|

View File

@ -62,33 +62,33 @@ BEGIN
DECLARE i1, i2, i3, i4 TINYINT;
DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
DECLARE d1, d2, d3 DECIMAL(64, 2);
SET i1 = 1e200;
SET i2 = -1e200;
SET i3 = 300;
SET i4 = -300;
SELECT i1, i2, i3, i4;
SET i1 = 10 * 10 * 10;
SET i2 = -10 * 10 * 10;
SET i3 = sign(10 * 10) * 10 * 20;
SET i4 = sign(-10 * 10) * -10 * 20;
SELECT i1, i2, i3, i4;
SET u1 = 1e200;
SET u2 = -1e200;
SET u3 = 300;
SET u4 = -300;
SELECT u1, u2, u3, u4;
SET u1 = 10 * 10 * 10;
SET u2 = -10 * 10 * 10;
SET u3 = sign(10 * 10) * 10 * 20;
SET u4 = sign(-10 * 10) * -10 * 20;
SELECT u1, u2, u3, u4;
SET d1 = 1234;
@ -376,33 +376,33 @@ BEGIN
DECLARE i1, i2, i3, i4 TINYINT;
DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
DECLARE d1, d2, d3 DECIMAL(64, 2);
SET i1 = 1e200;
SET i2 = -1e200;
SET i3 = 300;
SET i4 = -300;
SELECT i1, i2, i3, i4;
SET i1 = 10 * 10 * 10;
SET i2 = -10 * 10 * 10;
SET i3 = sign(10 * 10) * 10 * 20;
SET i4 = sign(-10 * 10) * -10 * 20;
SELECT i1, i2, i3, i4;
SET u1 = 1e200;
SET u2 = -1e200;
SET u3 = 300;
SET u4 = -300;
SELECT u1, u2, u3, u4;
SET u1 = 10 * 10 * 10;
SET u2 = -10 * 10 * 10;
SET u3 = sign(10 * 10) * 10 * 20;
SET u4 = sign(-10 * 10) * -10 * 20;
SELECT u1, u2, u3, u4;
SET d1 = 1234;
@ -615,7 +615,7 @@ BEGIN
WHILE i > 0 DO
INSERT INTO t1(log_msg) VALUES(CONCAT('p1: case1: case2: loop: i: ', i));
CASE MOD(i, 2)
WHEN 0 THEN
INSERT INTO t1(log_msg) VALUES('p1: case1: case2: loop: i is even');
@ -624,7 +624,7 @@ BEGIN
ELSE
INSERT INTO t1(log_msg) VALUES('p1: case1: case2: loop: ERROR');
END CASE;
SET i = i - 1;
END WHILE;
END;
@ -659,7 +659,7 @@ BEGIN
WHILE i > 0 DO
INSERT INTO t1(log_msg) VALUES(CONCAT('p1: case4: case5: loop: i: ', i));
CASE MOD(i, 2)
WHEN 0 THEN
INSERT INTO t1(log_msg) VALUES('p1: case4: case5: loop: i is even');
@ -668,7 +668,7 @@ BEGIN
ELSE
INSERT INTO t1(log_msg) VALUES('p1: case4: case5: loop: ERROR');
END CASE;
SET i = i - 1;
END WHILE;
END;
@ -867,7 +867,7 @@ BUG#13675
## DROP TABLE t1;
## END|
## delimiter ;|
##
##
## CALL p1(NOW());
## CALL p1('test');
## DROP PROCEDURE p1;
@ -1304,30 +1304,30 @@ DROP TABLE t1;
## DROP FUNCTION IF EXISTS f1;
## --enable_warnings
## delimiter |;
##
##
## CREATE PROCEDURE p1(arg ENUM('a', 'b'))
## BEGIN
## SELECT arg;
## END|
##
##
## CREATE PROCEDURE p2(arg ENUM('a', 'b'))
## BEGIN
## DECLARE var ENUM('c', 'd') DEFAULT arg;
##
##
## SELECT arg, var;
## END|
##
##
## CREATE FUNCTION f1(arg ENUM('a', 'b')) RETURNS ENUM('c', 'd')
## BEGIN
## RETURN arg;
## END|
##
##
## delimiter ;|
##
##
## CALL p1('c');
##
##
## CALL p2('a');
##
##
## SELECT f1('a');
## DROP PROCEDURE p1;
## DROP PROCEDURE p2;
@ -1548,7 +1548,7 @@ CREATE PROCEDURE bug27415_text_test2(entity_id_str_in VARCHAR(255))
BEGIN
DECLARE str_remainder VARCHAR(255);
DECLARE str_remainder2 VARCHAR(255);
SET str_remainder2 = entity_id_str_in;
select 'before substr', str_remainder2;
SET str_remainder = SUBSTRING(str_remainder2, 3);
@ -1606,7 +1606,7 @@ DROP PROCEDURE bug27415_text_test2|
drop function if exists f1;
drop table if exists t1;
create function f1() returns int
create function f1() returns int
begin
if @a=1 then set @b='abc';
else set @b=1;

View File

@ -962,7 +962,7 @@ select id, f1(), f3() from t1 order by id|
id f1() f3()
a 3 1
b 3 1
create function f4() returns double
create function f4() returns double
return (select d from t1, t2 where t1.data = t2.i and t1.id= "b")|
select f4()|
f4()
@ -1450,7 +1450,7 @@ create procedure h_se()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_se';
begin
declare continue handler for 1062 -- ER_DUP_ENTRY
@ -1462,11 +1462,11 @@ create procedure h_ss()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_ss';
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Inner (good)' as 'h_ss';
insert into t3 values (1);
end;
@ -1475,7 +1475,7 @@ create procedure h_sn()
deterministic
begin
-- Note: '02000' is more specific than NOT FOUND ;
-- there might be other not found states
-- there might be other not found states
declare continue handler for sqlstate '02000' -- no data
select 'Outer (bad)' as 'h_sn';
begin
@ -1503,7 +1503,7 @@ create procedure h_sx()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_sx';
begin
declare continue handler for sqlexception
@ -1768,7 +1768,7 @@ create table t3(a int)|
drop procedure if exists bug1862|
create procedure bug1862()
begin
insert into t3 values(2);
insert into t3 values(2);
flush tables;
end|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'flush tables' at line 4
@ -1929,7 +1929,7 @@ insert into t3 values (123456789012)|
drop procedure if exists bug2780|
create procedure bug2780()
begin
declare exit handler for sqlwarning set @x = 1;
declare exit handler for sqlwarning set @x = 1;
set @x = 0;
insert into t3 values (123456789012);
insert into t3 values (0);
@ -1945,12 +1945,12 @@ s1
0
drop procedure bug2780|
drop table t3|
create table t3 (
create table t3 (
OrderID int not null,
MarketID int,
primary key (OrderID)
)|
create table t4 (
create table t4 (
MarketID int not null,
Market varchar(60),
Status char(1),
@ -1962,20 +1962,20 @@ insert t4 (MarketID,Market,Status) values (1,"MarketID One","A")|
insert t4 (MarketID,Market,Status) values (2,"MarketID Two","A")|
drop procedure if exists bug2656_1|
create procedure bug2656_1()
begin
begin
select
m.Market
from t4 m JOIN t3 o
from t4 m JOIN t3 o
ON o.MarketID != 1 and o.MarketID = m.MarketID;
end |
drop procedure if exists bug2656_2|
create procedure bug2656_2()
begin
begin
select
m.Market
from
from
t4 m, t3 o
where
where
m.MarketID != 1 and m.MarketID = o.MarketID;
end |
call bug2656_1()|
@ -2213,7 +2213,7 @@ drop procedure if exists bug4904|
create procedure bug4904 ()
begin
declare continue handler for sqlstate 'HY000' begin end;
select s1 from t3 union select s2 from t3;
select s1 from t3 union select s2 from t3;
end|
call bug4904()|
s1
@ -2645,20 +2645,20 @@ end|
create procedure bug9074()
begin
declare x1, x2, x3, x4, x5, x6 int default 0;
begin
declare continue handler for sqlstate '23000' set x5 = 1;
insert into t3 values ('a', 'b');
set x6 = 1;
begin
declare continue handler for sqlstate '23000' set x5 = 1;
insert into t3 values ('a', 'b');
set x6 = 1;
end;
begin1_label:
begin
declare continue handler for sqlstate '23000' set x1 = 1;
insert into t3 values ('a', 'b');
set x2 = 1;
declare continue handler for sqlstate '23000' set x1 = 1;
insert into t3 values ('a', 'b');
set x2 = 1;
begin2_label:
begin
declare exit handler for sqlstate '23000' set x3 = 1;
set x4= 1;
begin
declare exit handler for sqlstate '23000' set x3 = 1;
set x4= 1;
insert into t3 values ('a','b');
set x4= 0;
end begin2_label;
@ -2822,22 +2822,22 @@ drop function if exists bug9775|
create function bug9775(v1 char(1)) returns enum('a','b') return v1|
select bug9775('a'),bug9775('b'),bug9775('c')|
bug9775('a') bug9775('b') bug9775('c')
a b
a b
drop function bug9775|
create function bug9775(v1 int) returns enum('a','b') return v1|
select bug9775(1),bug9775(2),bug9775(3)|
bug9775(1) bug9775(2) bug9775(3)
a b
a b
drop function bug9775|
create function bug9775(v1 char(1)) returns set('a','b') return v1|
select bug9775('a'),bug9775('b'),bug9775('a,b'),bug9775('c')|
bug9775('a') bug9775('b') bug9775('a,b') bug9775('c')
a b a
a b a
drop function bug9775|
create function bug9775(v1 int) returns set('a','b') return v1|
select bug9775(1),bug9775(2),bug9775(3),bug9775(4)|
bug9775(1) bug9775(2) bug9775(3) bug9775(4)
a b a,b
a b a,b
drop function bug9775|
drop function if exists bug8861|
create function bug8861(v1 int) returns year return v1|
@ -2900,12 +2900,12 @@ v
5
drop procedure bug5963_1|
drop table t3|
create procedure bug5963_2 (cfk_value int)
begin
if cfk_value in (select cpk from t3) then
set @x = 5;
end if;
end;
create procedure bug5963_2 (cfk_value int)
begin
if cfk_value in (select cpk from t3) then
set @x = 5;
end if;
end;
|
create table t3 (cpk int)|
insert into t3 values (1)|
@ -3140,16 +3140,16 @@ drop procedure if exists bug8692|
create table t3 (c1 varchar(5), c2 char(5), c3 enum('one','two'), c4 text, c5 blob, c6 char(5), c7 varchar(5))|
insert into t3 values ('', '', '', '', '', '', NULL)|
create procedure bug8692()
begin
declare v1 VARCHAR(10);
declare v2 VARCHAR(10);
declare v3 VARCHAR(10);
declare v4 VARCHAR(10);
declare v5 VARCHAR(10);
declare v6 VARCHAR(10);
declare v7 VARCHAR(10);
declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
open c8692;
begin
declare v1 VARCHAR(10);
declare v2 VARCHAR(10);
declare v3 VARCHAR(10);
declare v4 VARCHAR(10);
declare v5 VARCHAR(10);
declare v6 VARCHAR(10);
declare v7 VARCHAR(10);
declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
open c8692;
fetch c8692 into v1,v2,v3,v4,v5,v6,v7;
select v1, v2, v3, v4, v5, v6, v7;
end|
@ -3265,7 +3265,7 @@ drop procedure if exists bug12168|
drop table if exists t3|
drop procedure if exists bug11333|
create table t3 (c1 char(128))|
insert into t3 values
insert into t3 values
('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')|
create procedure bug11333(i int)
begin
@ -3651,7 +3651,7 @@ create procedure bug10100p(prm int, inout res int)
begin
set res = res * prm;
if prm > 1 then
call bug10100p(prm - 1, res);
call bug10100p(prm - 1, res);
end if;
end|
create procedure bug10100t(prm int)
@ -4192,7 +4192,7 @@ insert into t3 values
( '2005-01-04' ), ( '2005-02-01' ), ( '2005-02-02' )|
create procedure bug17476(pDateFormat varchar(10))
select date_format(t3.d, pDateFormat), count(*)
from t3
from t3
group by date_format(t3.d, pDateFormat)|
call bug17476('%Y-%m')|
date_format(t3.d, pDateFormat) count(*)
@ -4340,7 +4340,7 @@ use bug18344_0123456789012|
create procedure bug18344() begin end|
create procedure bug18344_2() begin end|
use test|
select schema_name from information_schema.schemata where
select schema_name from information_schema.schemata where
schema_name like 'bug18344%'|
schema_name
bug18344_012345678901
@ -4354,7 +4354,7 @@ bug18344 bug18344_0123456789012
bug18344_2 bug18344_0123456789012
drop database bug18344_012345678901|
drop database bug18344_0123456789012|
select schema_name from information_schema.schemata where
select schema_name from information_schema.schemata where
schema_name like 'bug18344%'|
schema_name
select routine_name,routine_schema from information_schema.routines where
@ -4465,7 +4465,7 @@ create database mysqltest1 charset=utf8|
create database mysqltest2 charset=utf8|
create procedure mysqltest1.p1()
begin
-- alters the default collation of database test
-- alters the default collation of database test
alter database character set koi8r;
end|
use mysqltest1|
@ -4941,7 +4941,7 @@ CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
BEGIN
DECLARE tracks VARCHAR(45);
SELECT GROUP_CONCAT(Track SEPARATOR ', ') FROM t4
WHERE Member_ID=paramMember AND Action='Enrolled' AND
WHERE Member_ID=paramMember AND Action='Enrolled' AND
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
WHERE Member_ID=paramMember GROUP BY Track) INTO tracks;
RETURN tracks;
@ -5264,13 +5264,13 @@ DROP FUNCTION IF EXISTS bug23760_rc_test|
CREATE TABLE bug23760 (
id INT NOT NULL AUTO_INCREMENT ,
num INT NOT NULL ,
PRIMARY KEY ( id )
PRIMARY KEY ( id )
)|
CREATE TABLE bug23760_log (
id INT NOT NULL AUTO_INCREMENT ,
reason VARCHAR(50)NULL ,
ammount INT NOT NULL ,
PRIMARY KEY ( id )
PRIMARY KEY ( id )
)|
CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
BEGIN
@ -5634,14 +5634,14 @@ select bug20777(18446744073709551616) as 'upper bounds unsigned bigint + 1';
ERROR 22003: Out of range value for column
select bug20777(-1) as 'lower bounds unsigned bigint - 1';
ERROR 22003: Out of range value for column
create table examplebug20777 as select
create table examplebug20777 as select
0 as 'i',
bug20777(9223372036854775806) as '2**63-2',
bug20777(9223372036854775807) as '2**63-1',
bug20777(9223372036854775808) as '2**63',
bug20777(9223372036854775809) as '2**63+1',
bug20777(18446744073709551614) as '2**64-2',
bug20777(18446744073709551615) as '2**64-1',
bug20777(18446744073709551615) as '2**64-1',
bug20777(18446744073709551616) as '2**64';
ERROR 22003: Out of range value for column
select bug20777(18446744073709551613)+1;
@ -5873,7 +5873,7 @@ select 3;
/*!00000 select 4; */
/*!99999 select 5; */
end
proc_25411_b
proc_25411_b
/* real comment */
/*! p1 int, */
/*!00000 p2 int */
@ -6606,7 +6606,7 @@ DROP FUNCTION f3;
DROP FUNCTION f4;
DROP TABLE t1;
#
# Bug#34197: CREATE PROCEDURE fails when COMMENT truncated in non
# Bug#34197: CREATE PROCEDURE fails when COMMENT truncated in non
# strict SQL mode
#
DROP PROCEDURE IF EXISTS p1;
@ -6657,7 +6657,7 @@ select * from t1 limit a, b;
Warnings:
Warning 5002 Resolve error
#
# Try to use data types not allowed in LIMIT
# Try to use data types not allowed in LIMIT
#
drop procedure p1;
create procedure p1(p1 date, p2 date) select * from t1 limit p1, p2;
@ -6727,7 +6727,7 @@ f1()
NULL
drop function f1;
#
# Try to use data types not allowed in LIMIT
# Try to use data types not allowed in LIMIT
#
create function f1(p1 date, p2 date)
returns int
@ -6815,10 +6815,10 @@ f1(3, 2)
drop table t1;
drop procedure p1;
drop function f1;
#
# BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
#
# BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
# FAILS IN SET_FIELD_ITERATOR
#
#
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT);
CREATE VIEW v1 AS SELECT a FROM t2;
@ -6838,7 +6838,7 @@ DROP PROCEDURE proc;
# --
# -- Bug 11765684 - 58674: SP-cache does not detect changes in
# -- pre-locking list caused by triggers
# ---
# ---
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t3;
@ -6868,7 +6868,7 @@ DROP PROCEDURE p1;
# --
# -- Bug#12652769 - 61470: case operator in stored routine retains old
# -- value of input parameter
# ---
# ---
DROP TABLE IF EXISTS t1;
DROP PROCEDURE IF EXISTS p1;
CREATE TABLE t1 (s1 CHAR(5) CHARACTER SET utf8);
@ -6945,10 +6945,10 @@ DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
CREATE TABLE t1 (c1 INT);
INSERT INTO t1 VALUES (1);
CREATE PROCEDURE p1()
BEGIN
DECLARE foo, cnt INT UNSIGNED DEFAULT 1;
SET foo = (SELECT MIN(c1) FROM t1 LIMIT cnt);
CREATE PROCEDURE p1()
BEGIN
DECLARE foo, cnt INT UNSIGNED DEFAULT 1;
SET foo = (SELECT MIN(c1) FROM t1 LIMIT cnt);
END|
CREATE PROCEDURE p2()
BEGIN

View File

@ -617,7 +617,7 @@ drop table a;
drop procedure p;
drop procedure pp;
#case 36
#case 36
create table a(a1 varchar(100));
insert into a values('a');
create table b(b1 varchar(100));
@ -1633,7 +1633,7 @@ create procedure p()
return 42;//
delimiter ;//
#case 89
#case 89
set @a=0;
select @a;
delimiter //;
@ -1679,7 +1679,7 @@ create function f(x int) returns int
begin
if x>1 then
return x;
else
else
signal SQLSTATE '01000';
end if;
end//
@ -1722,7 +1722,7 @@ select f(1);
drop function f;
### need has return in mysql function
###
###
delimiter //;
DROP FUNCTION IF EXISTS `fun6`//
@ -1752,8 +1752,8 @@ SELECT @num//
DROP FUNCTION IF EXISTS `fun6`//
delimiter ;//
### label dup
###
### label dup
###
delimiter //;
--disable_warnings ONCE
DROP TABLE IF EXISTS result1//
@ -1812,35 +1812,35 @@ DROP PROCEDURE IF EXISTS `pro_3`//
delimiter ;//
delimiter //;
### ### varchar
### ###
### ### varchar
### ###
### DROP TABLE IF EXISTS t2//
### --error 1074
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(16384)
### )//
### DROP TABLE IF EXISTS t3//
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(16384)
### )//
### DROP TABLE IF EXISTS t3//
### --error 1074
### CREATE TABLE t3 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(262145)
### CREATE TABLE t3 (
### id INT,
### res1 VARCHAR(128),
### d1 VARCHAR(262145)
### )//
### DROP FUNCTION IF EXISTS fun_l//
### --error 1074
### CREATE FUNCTION fun_l() RETURNS VARCHAR(262144)
### BEGIN
### DECLARE d1 VARCHAR(262144123456);
### DECLARE d1 VARCHAR(262144123456);
### SET d1='123456789012345678901234567890';
### RETURN '定义长度262144123456的VARCHAR(262144123456)类型的变量';
### END//
### --error 1305
### SELECT fun_l()//
### END//
### --error 1305
### SELECT fun_l()//
### char
###
### char
###
--disable_warnings
DROP TABLE IF EXISTS t1//
DROP TABLE IF EXISTS t2//
@ -1851,7 +1851,7 @@ delimiter //;
d1 CHAR(255)
)//
### --error 1074
### TODO:
### TODO:
### CREATE TABLE t2 (
### id INT,
### res1 VARCHAR(128),
@ -1879,7 +1879,7 @@ delimiter //;
### varbinary
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (
@ -1895,41 +1895,41 @@ CREATE TABLE t2 (
DROP FUNCTION IF EXISTS `fun_l`//
--error 1074
CREATE FUNCTION fun_l() RETURNS VARBINARY(65535)
BEGIN
BEGIN
DECLARE d1 VARBINARY(65536);
SET d1='123456789012345678901234567890';
RETURN '定义长度65536的VARCHAR类型的变量';
END//
RETURN '定义长度65536的VARCHAR类型的变量';
END//
--error 1305
SELECT fun_l()//
### number
###
###
DROP FUNCTION IF EXISTS `fun_l`//
--error 1426
CREATE FUNCTION fun_l() RETURNS DEC(65,30)
BEGIN
DECLARE a DEC(66,30);
BEGIN
DECLARE a DEC(66,30);
SET a=123450.1415;
RETURN a;
RETURN a;
END//
--error 1305
--error 1305
SELECT fun_l()//
DROP FUNCTION IF EXISTS `fun_2`//
--error 1425
CREATE FUNCTION fun_2() RETURNS DEC(65,30)
BEGIN
DECLARE a DEC(65,31);
BEGIN
DECLARE a DEC(65,31);
SET a=50.1;
RETURN a;
RETURN a;
END//
--error 1305
--error 1305
SELECT fun_2()//
### datetime
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t2//
--error 1426
@ -1949,7 +1949,7 @@ END//
SELECT fun_l()//
### datetime max value insert fail
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t2//
CREATE TABLE t2 (
@ -1962,7 +1962,7 @@ CREATE TABLE t2 (
INSERT INTO t2 VALUES(1,'插入DATETIME类型数据','1000-01-01 00:00:00.123','2000-01-01 00:00:00.123','9999-12-31 23:59:59.999999')//
DROP PROCEDURE IF EXISTS `pro_1`//
CREATE PROCEDURE pro_1()
BEGIN
BEGIN
DECLARE d1 DATETIME DEFAULT '1000-01-01 00:00:00.000000';
DECLARE d2 DATETIME(0) DEFAULT '2021-07-02 23:59:59.999999';
DECLARE d3 DATETIME(6) DEFAULT '9999-12-31 23:59:59.999999';
@ -1973,7 +1973,7 @@ CALL pro_1()//
SELECT * FROM t2//
### int
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (
@ -1995,7 +1995,7 @@ SELECT * FROM t1//
### commit
### rollback
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1//
CREATE TABLE t1
@ -2062,20 +2062,20 @@ BEGIN
END//
### BIT
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1;//
DROP PROCEDURE IF EXISTS `pro_2`;//
--error 1439
CREATE PROCEDURE pro_2()
BEGIN
CREATE TABLE t1 (id INT,a BIT(65));
INSERT INTO t1 VALUES(1,b'0');
CREATE TABLE t1 (id INT,a BIT(65));
INSERT INTO t1 VALUES(1,b'0');
END;
//
### load data
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (a INT)//
@ -2089,7 +2089,7 @@ BEGIN
END//
### lock
###
###
--disable_warnings ONCE
DROP TABLE IF EXISTS t1//
CREATE TABLE t1 (a INT)//

View File

@ -558,7 +558,7 @@ BEGIN
IF tmp_i_price > 0 THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 4, tmp_s_quantity);
@ -603,7 +603,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 6, tmp_s_quantity);
@ -718,7 +718,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 11, tmp_s_quantity);
@ -741,7 +741,7 @@ BEGIN
THEN
SET tmp_ol_amount = tmp_i_price * tmp_ol_quantity;
call new_order_2(tmp_w_id, tmp_d_id, tmp_i_id,
tmp_ol_quantity, tmp_i_price,
tmp_ol_quantity, tmp_i_price,
tmp_i_name, tmp_i_data,
out_d_next_o_id, tmp_ol_amount,
tmp_ol_supply_w_id, 12, tmp_s_quantity);
@ -821,7 +821,7 @@ BEGIN
END//
CREATE PROCEDURE order_status (in_c_id INT,
in_c_w_id INT,
in_c_w_id INT,
in_c_d_id INT,
in_c_last VARCHAR(16))
BEGIN
@ -1039,7 +1039,7 @@ BEGIN
DECLARE out_w_state VARCHAR(2);
DECLARE out_w_zip VARCHAR(9);
DECLARE out_w_ytd INTEGER;
DECLARE out_d_name VARCHAR(10);
DECLARE out_d_street_1 VARCHAR(20);
DECLARE out_d_street_2 VARCHAR(20);
@ -1047,7 +1047,7 @@ BEGIN
DECLARE out_d_state VARCHAR(2);
DECLARE out_d_zip VARCHAR(9);
DECLARE out_d_ytd INTEGER;
DECLARE out_c_id INTEGER;
DECLARE out_c_first VARCHAR(16);
DECLARE out_c_middle VARCHAR(2);
@ -1435,3 +1435,6 @@ DROP PROCEDURE new_order;
DROP PROCEDURE order_status;
DROP PROCEDURE payment;
DROP PROCEDURE stock_level;

View File

@ -45,7 +45,7 @@ select * from a;
drop table a;
drop procedure p;
#case 2
#case 2
create table a(a1 int);
delimiter //;
create procedure p()
@ -1489,3 +1489,4 @@ select * from b;
drop table a;
drop table b;
drop procedure p;

View File

@ -297,8 +297,8 @@ begin
DECLARE continue HANDLER FOR sqlexception insert into a values(-1);
begin
DECLARE aaa CONDITION FOR SQLSTATE '42S02';
DECLARE continue HANDLER FOR sqlexception
begin
DECLARE continue HANDLER FOR sqlexception
begin
insert into a values(0);
insert into t values(1);
insert into a values(6);

View File

@ -34,7 +34,7 @@ BEGIN
END|
DELIMITER ;|
--echo # should not return valgrind warnings
### TODO : --error 1305
### TODO : --error 1305
--error 1321
CALL p3(f2());
@ -55,8 +55,8 @@ BEGIN
END|
DELIMITER ;|
--echo # should not return valgrind warnings
### TODO : --error 1305
--error 1321
### TODO : --error 1305
--error 1321
CALL p3(f2());
DROP SCHEMA testdb;
@ -72,7 +72,7 @@ BEGIN
END|
DELIMITER ;|
--echo # should not return valgrind warnings
### TODO : --error 1305
### TODO : --error 1305
--error 1321
SELECT f2();
@ -91,36 +91,36 @@ USE test;
## DROP TRIGGER IF EXISTS tr1;
## DROP PROCEDURE IF EXISTS p1;
## --enable_warnings
##
##
## CREATE TABLE t1 (f1 INTEGER);
## CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
## CREATE PROCEDURE p1 () DROP TRIGGER tr1;
##
##
## CALL p1 ();
## --error ER_TRG_DOES_NOT_EXIST
## CALL p1 ();
##
##
## DROP TABLE t1;
## DROP PROCEDURE p1;
##
##
## --echo #
## --echo # Bug#50423: Crash on second call of a procedure dropping a trigger
## --echo #
##
##
## --disable_warnings
## DROP TABLE IF EXISTS t1;
## DROP TRIGGER IF EXISTS tr1;
## DROP PROCEDURE IF EXISTS p1;
## --enable_warnings
##
##
## CREATE TABLE t1 (f1 INTEGER);
## CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
## CREATE PROCEDURE p1 () DROP TRIGGER tr1;
##
##
## CALL p1 ();
## --error ER_TRG_DOES_NOT_EXIST
## CALL p1 ();
##
##
## DROP TABLE t1;
## DROP PROCEDURE p1;
@ -164,8 +164,8 @@ DROP DATABASE db1;
DROP DATABASE db2;
--echo #
--echo # Bug#13105873:valgrind warning:possible crash in foreign
--echo # key handling on subsequent create table if not exists
--echo # Bug#13105873:valgrind warning:possible crash in foreign
--echo # key handling on subsequent create table if not exists
--echo #
## oceanbase not support foreign key yet!
@ -184,7 +184,7 @@ DROP DATABASE db2;
## DELIMITER ;$
## CALL p1();
## --echo # below stmt should not return valgrind warnings
## CALL p1();
## CALL p1();
## DROP DATABASE testdb;
## USE test;
@ -237,7 +237,7 @@ CALL TESTP_bug11763507();
#SHOW CREATE PROCEDURE testp_bug11763507;
#SHOW CREATE PROCEDURE TESTP_bug11763507;
# INFORMATION SCHEMA
# INFORMATION SCHEMA
SELECT specific_name FROM INFORMATION_SCHEMA.ROUTINES WHERE specific_name LIKE 'testf_bug11763507';
SELECT specific_name FROM INFORMATION_SCHEMA.ROUTINES WHERE specific_name LIKE 'TESTF_bug11763507';

View File

@ -1,6 +1,6 @@
# owner: linlin.xll
# owner group: SQL1
# description:
# description:
#tags: pl
--disable_query_log
@ -62,3 +62,4 @@ select * from t3 order by f asc|
drop table t3|
drop procedure fib|
set @@max_sp_recursion_depth= 0|

View File

@ -266,7 +266,7 @@ BEGIN
WHILE i > 0 DO
INSERT INTO t1(log_msg) VALUES(CONCAT('p1: case1: case2: loop: i: ', i));
CASE MOD(i, 2)
WHEN 0 THEN
INSERT INTO t1(log_msg) VALUES('p1: case1: case2: loop: i is even');
@ -275,7 +275,7 @@ BEGIN
ELSE
INSERT INTO t1(log_msg) VALUES('p1: case1: case2: loop: ERROR');
END CASE;
SET i = i - 1;
END WHILE;
END;
@ -310,7 +310,7 @@ BEGIN
WHILE i > 0 DO
INSERT INTO t1(log_msg) VALUES(CONCAT('p1: case4: case5: loop: i: ', i));
CASE MOD(i, 2)
WHEN 0 THEN
INSERT INTO t1(log_msg) VALUES('p1: case4: case5: loop: i is even');
@ -319,7 +319,7 @@ BEGIN
ELSE
INSERT INTO t1(log_msg) VALUES('p1: case4: case5: loop: ERROR');
END CASE;
SET i = i - 1;
END WHILE;
END;
@ -505,7 +505,7 @@ DROP PROCEDURE p1;
## DROP TABLE t1;
## END|
## delimiter ;|
##
##
## CALL p1(NOW());
## CALL p1('test');
@ -741,7 +741,7 @@ CALL p2();
CALL p3();
--error ER_DATA_TOO_LONG
CALL p4('aaa');
CALL p4('aaa');
--error ER_DATA_TOO_LONG
CALL p5('aa');
--error ER_WARN_DATA_OUT_OF_RANGE
@ -1088,30 +1088,30 @@ DROP TABLE t1;
# Test case.
#
## delimiter |;
##
##
## CREATE PROCEDURE p1(arg ENUM('a', 'b'))
## BEGIN
## SELECT arg;
## END|
##
##
## CREATE PROCEDURE p2(arg ENUM('a', 'b'))
## BEGIN
## DECLARE var ENUM('c', 'd') DEFAULT arg;
##
##
## SELECT arg, var;
## END|
##
##
## CREATE FUNCTION f1(arg ENUM('a', 'b')) RETURNS ENUM('c', 'd')
## BEGIN
## RETURN arg;
## END|
##
##
## delimiter ;|
##
##
## CALL p1('c');
##
##
## CALL p2('a');
##
##
## SELECT f1('a');
#
@ -1430,7 +1430,7 @@ CREATE PROCEDURE bug27415_text_test2(entity_id_str_in VARCHAR(255))
BEGIN
DECLARE str_remainder VARCHAR(255);
DECLARE str_remainder2 VARCHAR(255);
SET str_remainder2 = entity_id_str_in;
select 'before substr', str_remainder2;
SET str_remainder = SUBSTRING(str_remainder2, 3);
@ -1458,7 +1458,7 @@ drop table if exists t1;
--enable_warnings
delimiter |;
create function f1() returns int
create function f1() returns int
begin
if @a=1 then set @b='abc';
else set @b=1;

View File

@ -1172,7 +1172,7 @@ select f1(), f3()|
select id, f1(), f3() from t1 order by id|
# Function which uses two different tables
create function f4() returns double
create function f4() returns double
return (select d from t1, t2 where t1.data = t2.i and t1.id= "b")|
select f4()|
@ -1197,7 +1197,7 @@ select f5(2)|
--error 1424
select f5(3)|
# OTOH this should work
# OTOH this should work
create function f6() returns int
begin
declare n int;
@ -1303,8 +1303,8 @@ unlock tables|
#
# Unlike for permanent tables we should be able to create, use
# and drop such tables in functions.
#
# Simplest function using temporary table. It is also test case for bug
#
# Simplest function using temporary table. It is also test case for bug
# #12198 "Temporary table aliasing does not work inside stored functions"
#--error 1422
#create function f9() returns int
@ -1318,7 +1318,7 @@ unlock tables|
# return a + b;
#end|
## This will emit warning as t3 was not existing before.
#--error 1305
#--error 1305
#select f9()|
#--error 1305
#select f9() from t1 limit 1|
@ -1767,7 +1767,7 @@ create procedure h_se()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_se';
begin
@ -1782,12 +1782,12 @@ create procedure h_ss()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_ss';
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Inner (good)' as 'h_ss';
insert into t3 values (1);
@ -1798,7 +1798,7 @@ create procedure h_sn()
deterministic
begin
-- Note: '02000' is more specific than NOT FOUND ;
-- there might be other not found states
-- there might be other not found states
declare continue handler for sqlstate '02000' -- no data
select 'Outer (bad)' as 'h_sn';
@ -1832,7 +1832,7 @@ create procedure h_sx()
deterministic
begin
-- integrity constraint violation
declare continue handler for sqlstate '23000'
declare continue handler for sqlstate '23000'
select 'Outer (bad)' as 'h_sx';
begin
@ -2127,7 +2127,7 @@ drop procedure if exists bug1862|
--error 1064
create procedure bug1862()
begin
insert into t3 values(2);
insert into t3 values(2);
flush tables;
end|
@ -2334,7 +2334,7 @@ insert into t3 values (123456789012)|
drop procedure if exists bug2780|
create procedure bug2780()
begin
declare exit handler for sqlwarning set @x = 1;
declare exit handler for sqlwarning set @x = 1;
set @x = 0;
insert into t3 values (123456789012);
@ -2360,7 +2360,7 @@ drop table t3|
#drop procedure if exists bug1863|
#
#create procedure bug1863(in1 int)
#begin
#begin
#
# declare ind int default 0;
# declare t1 int;
@ -2398,13 +2398,13 @@ drop table t3|
# BUG#2656
#
create table t3 (
create table t3 (
OrderID int not null,
MarketID int,
primary key (OrderID)
)|
create table t4 (
create table t4 (
MarketID int not null,
Market varchar(60),
Status char(1),
@ -2419,24 +2419,24 @@ insert t4 (MarketID,Market,Status) values (2,"MarketID Two","A")|
--disable_warnings ONCE
drop procedure if exists bug2656_1|
create procedure bug2656_1()
begin
begin
select
m.Market
from t4 m JOIN t3 o
from t4 m JOIN t3 o
ON o.MarketID != 1 and o.MarketID = m.MarketID;
end |
--disable_warnings ONCE
drop procedure if exists bug2656_2|
create procedure bug2656_2()
begin
begin
select
m.Market
from
from
t4 m, t3 o
where
where
m.MarketID != 1 and m.MarketID = o.MarketID;
end |
call bug2656_1()|
@ -2729,7 +2729,7 @@ drop function bug3788|
create function bug3788() returns binary(1) return 5|
select bug3788()|
drop function bug3788|
#
# BUG#4726
@ -2852,7 +2852,7 @@ create procedure bug4904 ()
begin
declare continue handler for sqlstate 'HY000' begin end;
select s1 from t3 union select s2 from t3;
select s1 from t3 union select s2 from t3;
end|
call bug4904()|
@ -3103,7 +3103,7 @@ begin
insert into t3 values (1);
insert into t3 values (1,2);
end|
create table t3 (s1 int, primary key (s1))|
insert into t3 values (1)|
call bug6029()|
@ -3230,7 +3230,7 @@ drop table t3|
#
# BUG#6857: current_time() in STORED PROCEDURES
#
--disable_warnings
--disable_warnings
drop procedure if exists bug6857|
--enable_warnings
create procedure bug6857()
@ -3343,7 +3343,7 @@ delimiter ;|
# BUG#8849: problem with insert statement with table alias's
#
# Rolling back changes to AND/OR structure of ON and WHERE clauses in SP
#
#
delimiter |;
--disable_warnings ONCE
@ -3450,25 +3450,25 @@ create procedure bug9074()
begin
declare x1, x2, x3, x4, x5, x6 int default 0;
begin
declare continue handler for sqlstate '23000' set x5 = 1;
begin
declare continue handler for sqlstate '23000' set x5 = 1;
insert into t3 values ('a', 'b');
set x6 = 1;
insert into t3 values ('a', 'b');
set x6 = 1;
end;
begin1_label:
begin
declare continue handler for sqlstate '23000' set x1 = 1;
insert into t3 values ('a', 'b');
set x2 = 1;
declare continue handler for sqlstate '23000' set x1 = 1;
insert into t3 values ('a', 'b');
set x2 = 1;
begin2_label:
begin
declare exit handler for sqlstate '23000' set x3 = 1;
begin
declare exit handler for sqlstate '23000' set x3 = 1;
set x4= 1;
set x4= 1;
insert into t3 values ('a','b');
set x4= 0;
end begin2_label;
@ -3730,16 +3730,16 @@ drop procedure bug9004_2|
#
--disable_warnings ONCE
drop procedure if exists bug7293|
insert into t1 values ('secret', 0)|
insert into t1 values ('secret', 0)|
create procedure bug7293(p1 varchar(100))
begin
if exists (select id from t1 where soundex(p1)=soundex(id)) then
select 'yes';
end if;
end;|
end;|
call bug7293('secret')|
call bug7293 ('secrete')|
call bug7293('secret')|
call bug7293 ('secrete')|
drop procedure bug7293|
delete from t1|
@ -3755,7 +3755,7 @@ drop view if exists v1|
create view v1 as select * from t1, t2 where id = s|
create procedure bug9841 ()
update v1 set data = 10|
update v1 set data = 10|
call bug9841()|
drop view v1|
@ -3779,15 +3779,15 @@ drop procedure bug5963_1|
drop table t3|
create procedure bug5963_2 (cfk_value int)
begin
if cfk_value in (select cpk from t3) then
set @x = 5;
end if;
end;
|
create table t3 (cpk int)|
insert into t3 values (1)|
create procedure bug5963_2 (cfk_value int)
begin
if cfk_value in (select cpk from t3) then
set @x = 5;
end if;
end;
|
create table t3 (cpk int)|
insert into t3 values (1)|
call bug5963_2(1)|
call bug5963_2(1)|
@ -4033,16 +4033,16 @@ create table t3 (c1 varchar(5), c2 char(5), c3 enum('one','two'), c4 text, c5 bl
insert into t3 values ('', '', '', '', '', '', NULL)|
create procedure bug8692()
begin
declare v1 VARCHAR(10);
declare v2 VARCHAR(10);
declare v3 VARCHAR(10);
declare v4 VARCHAR(10);
declare v5 VARCHAR(10);
declare v6 VARCHAR(10);
declare v7 VARCHAR(10);
declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
open c8692;
begin
declare v1 VARCHAR(10);
declare v2 VARCHAR(10);
declare v3 VARCHAR(10);
declare v4 VARCHAR(10);
declare v5 VARCHAR(10);
declare v6 VARCHAR(10);
declare v7 VARCHAR(10);
declare c8692 cursor for select c1,c2,c3,c4,c5,c6,c7 from t3;
open c8692;
fetch c8692 into v1,v2,v3,v4,v5,v6,v7;
select v1, v2, v3, v4, v5, v6, v7;
end|
@ -4196,7 +4196,7 @@ drop procedure if exists bug11333|
create table t3 (c1 char(128))|
insert into t3 values
insert into t3 values
('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')|
@ -4746,7 +4746,7 @@ create procedure bug10100p(prm int, inout res int)
begin
set res = res * prm;
if prm > 1 then
call bug10100p(prm - 1, res);
call bug10100p(prm - 1, res);
end if;
end|
create procedure bug10100t(prm int)
@ -4955,10 +4955,10 @@ begin
insert into t4 set a=null;
insert into t4 set a=null;
insert into t4 select null as a;
insert into t3 set a=null;
insert into t3 set a=null;
select * from t3;
end|
@ -5008,7 +5008,7 @@ drop procedure bug14376|
#
# Bug#5967 "Stored procedure declared variable used instead of column"
# The bug should be fixed later.
# Test precedence of names of parameters, variable declarations,
# Test precedence of names of parameters, variable declarations,
# variable declarations in nested compound statements, table columns,
# table columns in cursor declarations.
# According to the standard, table columns take precedence over
@ -5102,7 +5102,7 @@ select * from t1 order by data|
#
# A test case for Bug#15392 "Server crashes during prepared statement
# execute": make sure that stored procedure check for error conditions
# properly and do not continue execution if an error has been set.
# properly and do not continue execution if an error has been set.
#
# It's necessary to use several DBs because in the original code
# the successful return of mysql_change_db overrode the error from
@ -5290,7 +5290,7 @@ drop procedure if exists bug15231_6|
--enable_warnings
create table t3 (id int not null)|
create procedure bug15231_1()
begin
declare xid integer;
@ -5404,7 +5404,7 @@ insert into t3 values
create procedure bug17476(pDateFormat varchar(10))
select date_format(t3.d, pDateFormat), count(*)
from t3
from t3
group by date_format(t3.d, pDateFormat)|
call bug17476('%Y-%m')|
@ -5486,7 +5486,7 @@ begin
select id from t1 order by x, id;
end|
#
#
# BUG#14945: Truncate table doesn't reset the auto_increment counter
#
--disable_warnings ONCE
@ -5564,28 +5564,28 @@ drop procedure bug18787|
# (... if the database name is longer than 21 characters)
#
# 1234567890123456789012
create database bug18344_012345678901|
create database bug18344_012345678901|
use bug18344_012345678901|
create procedure bug18344() begin end|
create procedure bug18344_2() begin end|
create database bug18344_0123456789012|
create database bug18344_0123456789012|
use bug18344_0123456789012|
create procedure bug18344() begin end|
create procedure bug18344_2() begin end|
use test|
select schema_name from information_schema.schemata where
select schema_name from information_schema.schemata where
schema_name like 'bug18344%'|
select routine_name,routine_schema from information_schema.routines where
routine_schema like 'bug18344%'|
drop database bug18344_012345678901|
drop database bug18344_0123456789012|
drop database bug18344_012345678901|
drop database bug18344_0123456789012|
# Should be nothing left.
select schema_name from information_schema.schemata where
select schema_name from information_schema.schemata where
schema_name like 'bug18344%'|
select routine_name,routine_schema from information_schema.routines where
routine_schema like 'bug18344%'|
@ -5605,7 +5605,7 @@ create function bug12472() returns int return (select count(*) from t1)|
show create table t3|
--error 1146
select * from t3|
--error 1051
--error 1051
drop table t3|
# Check case when function is used indirectly through view
create view v1 as select bug12472() as j|
@ -5742,7 +5742,7 @@ create database mysqltest1 charset=utf8|
create database mysqltest2 charset=utf8|
create procedure mysqltest1.p1()
begin
-- alters the default collation of database test
-- alters the default collation of database test
alter database character set koi8r;
end|
use mysqltest1|
@ -6128,7 +6128,7 @@ DROP FUNCTION bug19862|
# Bug#21002 "Derived table not selecting from a "real" table fails in JOINs"
#
#
# A regression caused by the fix for Bug#18444: for derived tables we should
# set an empty string as the current database. They do not belong to any
# database and must be usable even if there is no database
@ -6227,7 +6227,7 @@ drop database това_е_дълго_име_за_база_данни_нали|
#
# BUG#21493: Crash on the second call of a procedure containing
# a select statement that uses an IN aggregating subquery
# a select statement that uses an IN aggregating subquery
#
CREATE TABLE t3 (
@ -6277,7 +6277,7 @@ CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
BEGIN
DECLARE tracks VARCHAR(45);
SELECT GROUP_CONCAT(Track SEPARATOR ', ') FROM t4
WHERE Member_ID=paramMember AND Action='Enrolled' AND
WHERE Member_ID=paramMember AND Action='Enrolled' AND
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
WHERE Member_ID=paramMember GROUP BY Track) INTO tracks;
RETURN tracks;
@ -6460,7 +6460,7 @@ drop procedure proc_21462_b|
#
# Bug#19733 "Repeated alter, or repeated create/drop, fails"
# Check that CREATE/DROP INDEX is re-execution friendly.
#
#
--disable_warnings
drop table if exists t3|
drop procedure if exists proc_bug19733|
@ -6489,7 +6489,7 @@ drop table t3|
#
# BUG#20492: Subsequent calls to stored procedure yeild incorrect
# result if join is used
# result if join is used
#
# Optimized ON expression in join wasn't properly saved for reuse.
#
@ -6664,14 +6664,14 @@ DROP FUNCTION IF EXISTS bug23760_rc_test|
CREATE TABLE bug23760 (
id INT NOT NULL AUTO_INCREMENT ,
num INT NOT NULL ,
PRIMARY KEY ( id )
PRIMARY KEY ( id )
)|
CREATE TABLE bug23760_log (
id INT NOT NULL AUTO_INCREMENT ,
reason VARCHAR(50)NULL ,
ammount INT NOT NULL ,
PRIMARY KEY ( id )
PRIMARY KEY ( id )
)|
CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
@ -6794,7 +6794,7 @@ begin
else set x:= x+100;
end case;
set x:=x + 500;
return x;
end|
@ -6954,7 +6954,7 @@ SELECT SUM(f2), bug25373(f1) FROM t3 GROUP BY f1 WITH ROLLUP|
DROP FUNCTION bug25373|
DROP TABLE t3|
#todo:
#todo:
#这里等共享表达式提交之后再将这个case补上
#SELECT SUM(f2), bug25373(f1) FROM t3 GROUP BY bug25373(f1) WITH ROLLUP
@ -7028,14 +7028,14 @@ select bug20777(18446744073709551616) as 'upper bounds unsigned bigint + 1';
--error 1264
select bug20777(-1) as 'lower bounds unsigned bigint - 1';
--error 1264
create table examplebug20777 as select
create table examplebug20777 as select
0 as 'i',
bug20777(9223372036854775806) as '2**63-2',
bug20777(9223372036854775807) as '2**63-1',
bug20777(9223372036854775808) as '2**63',
bug20777(9223372036854775809) as '2**63+1',
bug20777(18446744073709551614) as '2**64-2',
bug20777(18446744073709551615) as '2**64-1',
bug20777(18446744073709551615) as '2**64-1',
bug20777(18446744073709551616) as '2**64';
#insert into examplebug20777 values (1, 9223372036854775806, 9223372036854775807, 223372036854775808, 9223372036854775809, 18446744073709551614, 18446744073709551615, 8446744073709551616);
@ -7077,7 +7077,7 @@ BEGIN
RETURN v2;
END|
SELECT bug5274_f2()|
# Cleanup.
@ -7150,7 +7150,7 @@ drop function bug27354;
# Bug #28605: SHOW CREATE VIEW with views using stored_procedures no longer
# showing SP names.
#
CREATE TABLE t1 (a INT);
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2);
CREATE FUNCTION metered(a INT) RETURNS INT RETURN 12;
@ -7258,7 +7258,7 @@ drop procedure if exists test.sp_bug29050;
create database mysqltest_db1;
use mysqltest_db1;
# For the sake of its side effect
drop database mysqltest_db1;
drop database mysqltest_db1;
# Now we have no current database selected.
create table test.t1 (id int);
insert into test.t1 (id) values (1);
@ -7419,16 +7419,16 @@ begin
set x=-1;
return x;
end|
delimiter ;|
create view v1 as select 1 as one, f1() as days;
connect (bug29408,$OBMYSQL_MS0,root@mysql, ,*NO-ONE*,$OBMYSQL_PORT);
connection bug29408;
--source mysql_test/include/show_create_table_old_version_replica2.inc
show create view test.v1;
show create view test.v1;
select column_name from information_schema.columns
where table_name='v1' and table_schema='test';
@ -7951,7 +7951,7 @@ drop view v1;
drop table t1;
#
# Bug#38469 invalid memory read and/or crash with utf8 text field, stored procedure, uservar
# Bug#38469 invalid memory read and/or crash with utf8 text field, stored procedure, uservar
#
delimiter $;
--disable_warnings ONCE
@ -8221,15 +8221,15 @@ DROP TABLE t1;
#DROP VIEW t3;
#
#--echo #
#--echo # Bug #46629: Item_in_subselect::val_int(): Assertion `0'
#--echo # Bug #46629: Item_in_subselect::val_int(): Assertion `0'
#--echo # on subquery inside a SP
#--echo #
#CREATE TABLE t1(a INT);
#CREATE TABLE t2(a INT, b INT PRIMARY KEY);
#
#DELIMITER |;
#CREATE PROCEDURE p1 ()
#BEGIN
#CREATE PROCEDURE p1 ()
#BEGIN
# SELECT a FROM t1 A WHERE A.b IN (SELECT b FROM t2 AS B);
#END|
#DELIMITER ;|
@ -8500,7 +8500,7 @@ DROP FUNCTION f4;
DROP TABLE t1;
--echo #
--echo # Bug#34197: CREATE PROCEDURE fails when COMMENT truncated in non
--echo # Bug#34197: CREATE PROCEDURE fails when COMMENT truncated in non
--echo # strict SQL mode
--echo #
@ -8540,7 +8540,7 @@ DROP PROCEDURE p1;
#CREATE TEMPORARY TABLE t1 (f1 INT);
#
#--echo # t1 still refers to the view since it was inlined
#--echo #
#--echo #
##--error ER_NON_INSERTABLE_TABLE
#CALL p1(2);
#
@ -8654,7 +8654,7 @@ drop procedure p1;
create procedure p1(p1 integer, p2 integer)
select * from t1 limit a, b;
--echo #
--echo # Try to use data types not allowed in LIMIT
--echo # Try to use data types not allowed in LIMIT
--echo #
#--error ER_WRONG_SPVAR_TYPE_IN_LIMIT
drop procedure p1;
@ -8724,7 +8724,7 @@ drop function f1;
delimiter |;
--echo #
--echo # Try to use data types not allowed in LIMIT
--echo # Try to use data types not allowed in LIMIT
--echo #
create function f1(p1 date, p2 date)
returns int
@ -8813,10 +8813,10 @@ drop table t1;
drop procedure p1;
drop function f1;
--echo #
--echo # BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
--echo #
--echo # BUG#11766234: 59299: ASSERT (TABLE_REF->TABLE || TABLE_REF->VIEW)
--echo # FAILS IN SET_FIELD_ITERATOR
--echo #
--echo #
CREATE TABLE t1 (a INT);
CREATE TABLE t2 (a INT);
@ -8842,7 +8842,7 @@ DROP PROCEDURE proc;
--echo # --
--echo # -- Bug 11765684 - 58674: SP-cache does not detect changes in
--echo # -- pre-locking list caused by triggers
--echo # ---
--echo # ---
--disable_warnings
DROP TABLE IF EXISTS t1;
@ -8884,7 +8884,7 @@ DROP PROCEDURE p1;
--echo # --
--echo # -- Bug#12652769 - 61470: case operator in stored routine retains old
--echo # -- value of input parameter
--echo # ---
--echo # ---
--disable_warnings
DROP TABLE IF EXISTS t1;
@ -8942,20 +8942,20 @@ DROP PROCEDURE p1;
--disable_warnings
DROP TABLE IF EXISTS t1;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2;
--enable_warnings
CREATE TABLE t1 (c1 INT);
CREATE TABLE t1 (c1 INT);
INSERT INTO t1 VALUES (1);
delimiter |;
CREATE PROCEDURE p1()
BEGIN
DECLARE foo, cnt INT UNSIGNED DEFAULT 1;
SET foo = (SELECT MIN(c1) FROM t1 LIMIT cnt);
END|
CREATE PROCEDURE p1()
BEGIN
DECLARE foo, cnt INT UNSIGNED DEFAULT 1;
SET foo = (SELECT MIN(c1) FROM t1 LIMIT cnt);
END|
CREATE PROCEDURE p2()
BEGIN
@ -9041,7 +9041,7 @@ BEGIN
END;
END;
RETURN 1;
END $
END $
delimiter ;$
# This used to cause an assertion.

View File

@ -38,7 +38,7 @@ Outputs & filters:
affinitize
5 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p[0-9])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), rowset=16
7 - output([t2.c1]), filter(nil), rowset=16
@ -46,7 +46,7 @@ Outputs & filters:
8 - output([t2.c1]), filter(nil), rowset=16
9 - output([t2.c1]), filter(nil), rowset=16
access([t2.c1]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.c1]), range(MIN ; MAX)always true
select /*+ USE_PX parallel(3) */* from
(select c1,count(*) over(partition by c1) c2 from
@ -106,13 +106,13 @@ Outputs & filters:
10 - output([b.c1]), filter(nil), rowset=16
11 - output([b.c1]), filter(nil), rowset=16
access([b.c1]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.c1]), range(MIN ; MAX)always true
12 - output([a.c1], [a.c2]), filter(nil), rowset=16
affinitize
13 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-9])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
select a.c2,count(*) from (select /*+ USE_PX parallel(3) PQ_DISTRIBUTE(b HASH HASH) */a.c1,a.c2,b.c1 c3,b.c2 c4 from t1 a join t2 b on a.c1=b.c1)a group by a.c2;
c2 count(*)

View File

@ -47,7 +47,7 @@ Outputs & filters:
8 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
9 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
10 - output([VIEW2.t1.c2], [VIEW3.T_FUN_COUNT(*)], [VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW1.T_FUN_COUNT(*)]), filter(nil), rowset=16
11 - output([VIEW2.t1.c2], [VIEW3.T_FUN_COUNT(*)], [VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW1.T_FUN_COUNT(*)]), filter(nil), rowset=16
@ -123,7 +123,7 @@ Outputs & filters:
13 - output([b.__pk_increment], [b.c1], [b.c2]), filter(nil), rowset=16
14 - output([b.__pk_increment], [b.c1], [b.c2]), filter(nil), rowset=16
access([b.__pk_increment], [b.c1], [b.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
15 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
sort_keys([t1.c1, ASC])
@ -133,7 +133,7 @@ Outputs & filters:
18 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
19 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
explain select /*+ use_px parallel(2) use_merge(a b) */ * from (select /*+ NO_USE_HASH_AGGREGATION */ c1, c2, count(*) c3 from t1 group by 1, 2) a, t2 b where a.c1 = b.c1;
Query Plan
@ -176,7 +176,7 @@ Outputs & filters:
8 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
9 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
10 - output([b.__pk_increment], [b.c1], [b.c2], [b.c3]), filter(nil), rowset=16
sort_keys([b.c1, ASC])
@ -186,5 +186,5 @@ Outputs & filters:
13 - output([b.__pk_increment], [b.c1], [b.c2], [b.c3]), filter(nil), rowset=16
14 - output([b.__pk_increment], [b.c1], [b.c2], [b.c3]), filter(nil), rowset=16
access([b.__pk_increment], [b.c1], [b.c2], [b.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true

View File

@ -24,7 +24,7 @@ Outputs & filters:
force partition granule
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+use_px*/ * from t1;
Query Plan
@ -45,7 +45,7 @@ Outputs & filters:
force partition granule
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+use_px parallel(15)*/ * from t1;
Query Plan
@ -65,7 +65,7 @@ Outputs & filters:
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+no_use_px */ * from t1;
Query Plan
@ -86,7 +86,7 @@ Outputs & filters:
force partition granule
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+no_use_px use_px*/ * from t1;
Query Plan
@ -107,7 +107,7 @@ Outputs & filters:
force partition granule
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+use_px no_use_px */ * from t1;
Query Plan
@ -128,7 +128,7 @@ Outputs & filters:
force partition granule
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2], [t1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
drop table if exists t7;

View File

@ -27,7 +27,7 @@ Outputs & filters:
table_columns([{t_s: ({t_s: (t_s.c1, t_s.c2, t_s.c3)})}])
1 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
explain basic delete /*+use_px*/ from t_s;
Query Plan
@ -43,7 +43,7 @@ Outputs & filters:
table_columns([{t_s: ({t_s: (t_s.c1, t_s.c2, t_s.c3)})}])
1 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
delete /*+use_px*/ from t_s;
select * from t_s order by c1;
@ -74,7 +74,7 @@ Outputs & filters:
3 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
delete /*+use_px, parallel(10)*/ from t_s;
select * from t_s order by c1;
@ -107,7 +107,7 @@ Outputs & filters:
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
explain basic delete /*+use_px,parallel(10)*/ from t_p;
Query Plan
@ -131,7 +131,7 @@ Outputs & filters:
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
delete /*+use_px,parallel(10)*/ from t_p;
select * from t_p order by c1;
@ -164,8 +164,8 @@ Outputs & filters:
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
explain basic delete /*+use_px,parallel(10)*/ from t_p where c1 >= 5;
Query Plan
@ -189,8 +189,8 @@ Outputs & filters:
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
delete /*+use_px,parallel(10)*/ from t_p where c1 >= 5;
select * from t_p order by c1;
@ -220,8 +220,8 @@ Outputs & filters:
table_columns([{t_p: ({t_p: (t_p.c1, t_p.c2, t_p.c3)})}])
1 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
range_cond([t_p.c1 = 5])
explain basic delete /*+use_px,parallel(10)*/ from t_p where c1 = 5;
Query Plan
@ -244,8 +244,8 @@ Outputs & filters:
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
range_cond([t_p.c1 = 5])
explain basic delete /*+no_use_px,parallel(10)*/ from t_p where c1 = 5;
Query Plan
@ -268,8 +268,8 @@ Outputs & filters:
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
range_cond([t_p.c1 = 5])
delete /*+use_px,parallel(10)*/ from t_p where c1 = 5;
select * from t_p order by c1;
@ -318,13 +318,13 @@ Outputs & filters:
conds(nil), nl_params_([t_p.c1(:0)]), use_batch=true
5 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
6 - output(nil), filter(nil), rowset=16
access([GROUP_ID]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range(MIN ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range(MIN ; MAX),
range_cond([:0 = t_p4.c1])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c1 and t_p.c1 >= 5;
Query Plan
@ -360,14 +360,14 @@ Outputs & filters:
7 - output([t_p4.c1]), filter(nil), rowset=16
8 - output([t_p4.c1]), filter(nil), rowset=16
access([t_p4.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p4.c1]), range[5 ; MAX),
range_cond([t_p4.c1 >= 5])
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c1 and t_p.c1 >= 5;
select * from t_p order by c1;
@ -417,13 +417,13 @@ Outputs & filters:
7 - output([t_p4.c2]), filter(nil), rowset=16
8 - output([t_p4.c2]), filter([t_p4.c2 >= 5]), rowset=16
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c2 and t_p.c1 >= 5;
Query Plan
@ -459,13 +459,13 @@ Outputs & filters:
7 - output([t_p4.c2]), filter(nil), rowset=16
8 - output([t_p4.c2]), filter([t_p4.c2 >= 5]), rowset=16
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
delete /*+use_px, parallel(10)*/ t_p from t_p,t_p4 where t_p.c1 = t_p4.c2 and t_p.c1 >= 5;
select * from t_p order by c1;
@ -512,7 +512,7 @@ Outputs & filters:
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
5 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
6 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
7 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
@ -521,7 +521,7 @@ Outputs & filters:
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
explain basic delete /*+use_px,parallel(10) LEADING(t_s t_p) USE_NL(t_p) PQ_DISTRIBUTE(t_p NONE BROADCAST ) */ t_s,t_p from t_s,t_p;
Query Plan
@ -552,7 +552,7 @@ Outputs & filters:
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
5 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
6 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
7 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
@ -561,7 +561,7 @@ Outputs & filters:
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
delete /*+use_px,parallel(10)*/ t_s,t_p from t_s,t_p;
select * from t_p order by c1;
@ -610,12 +610,12 @@ Outputs & filters:
6 - output([t_p.c1]), filter(nil), rowset=16
7 - output([t_p.c1]), filter(nil), rowset=16
access([t_p.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
8 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
9 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
explain basic delete /*+use_px, parallel(10),leading(t_s,t_p),pq_distribute(t_p,none,broadcast)*/ t_s from t_s,t_p where t_p.c1 = t_s.c1;
Query Plan
@ -648,7 +648,7 @@ Outputs & filters:
5 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
6 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
7 - output([t_p.c1]), filter(nil), rowset=16
8 - output([t_p.c1]), filter(nil), rowset=16
@ -656,7 +656,7 @@ Outputs & filters:
9 - output([t_p.c1]), filter(nil), rowset=16
10 - output([t_p.c1]), filter(nil), rowset=16
access([t_p.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
delete /*+use_px, parallel(10),leading(t_s,t_p),pq_distribute(t_p,none,broadcast)*/ t_s from t_s,t_p where t_p.c1 = t_s.c1;
select * from t_s order by c1;
@ -697,12 +697,12 @@ Outputs & filters:
6 - output([t_p.c1]), filter(nil), rowset=16
7 - output([t_p.c1]), filter(nil), rowset=16
access([t_p.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range(MIN ; MAX)always true
8 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
9 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range(MIN ; MAX)always true
delete /*+use_px, parallel(10)*/ t_s from t_s,t_p where t_p.c1 = t_s.c1;
select * from t_s order by c1;
@ -743,8 +743,8 @@ Outputs & filters:
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
5 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
range_cond([t_p.c1 = 1])
6 - output(nil), filter(nil), rowset=16
7 - output(nil), filter(nil), rowset=16
@ -753,8 +753,8 @@ Outputs & filters:
9 - output(nil), filter(nil), rowset=16
10 - output(nil), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
range_cond([1 = t_s.c1])
explain basic delete /*+use_px, parallel(1)*/ t_p from t_s,t_p where t_p.c1 = t_s.c1 and t_p.c1 = 1;
Query Plan
@ -774,13 +774,13 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
2 - output(nil), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
range_cond([1 = t_s.c1])
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
range_cond([t_p.c1 = 1])
explain basic delete /*+use_px, parallel(10)*/ t_p from t_s,t_p where t_p.c1 = t_s.c1 and t_p.c1 = 1;
Query Plan
@ -811,8 +811,8 @@ Outputs & filters:
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
5 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[1 ; 1],
range_cond([t_p.c1 = 1])
6 - output(nil), filter(nil), rowset=16
7 - output(nil), filter(nil), rowset=16
@ -821,8 +821,8 @@ Outputs & filters:
9 - output(nil), filter(nil), rowset=16
10 - output(nil), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[1 ; 1],
range_cond([1 = t_s.c1])
delete /*+use_px, parallel(10)*/ t_p from t_s,t_p where t_p.c1 = t_s.c1 and t_p.c1 = 1;
select * from t_p order by c1;
@ -877,14 +877,14 @@ Outputs & filters:
6 - output(nil), filter(nil), rowset=16
7 - output(nil), filter([t_p4.c2 = 4]), rowset=16
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
8 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
range_cond([t_p.c1 = 4])
explain basic delete /*+use_px, parallel(1)*/ t_p from t_p4,t_p where t_p.c1 = t_p4.c2 and t_p4.c2 = 4;
Query Plan
@ -913,13 +913,13 @@ Outputs & filters:
force partition granule
5 - output(nil), filter([t_p4.c2 = 4]), rowset=16
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
6 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
7 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
range_cond([t_p.c1 = 4])
delete /*+use_px, parallel(1)*/ t_p from t_p4,t_p where t_p.c1 = t_p4.c2 and t_p4.c2 = 4;
select * from t_p order by c1;
@ -972,14 +972,14 @@ Outputs & filters:
6 - output(nil), filter(nil), rowset=16
7 - output(nil), filter([t_p4.c2 = 4]), rowset=16
access([t_p4.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_p4.c1]), range(MIN ; MAX)always true
8 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
9 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
10 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[4 ; 4],
range_cond([t_p.c1 = 4])
delete /*+use_px, parallel(10)*/ t_p from t_p4,t_p where t_p.c1 = t_p4.c2 and t_p4.c2 = 4;
select * from t_p order by c1;
@ -1025,8 +1025,8 @@ Outputs & filters:
3 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[5 ; MAX),
range_cond([t_s.c1 >= 5])
explain basic update /*+use_px, parallel(10)*/ t_s set t_s.c2 = 20 where t_s.c1 >= 5;
Query Plan
@ -1050,8 +1050,8 @@ Outputs & filters:
3 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_s.c1]), range[5 ; MAX),
range_cond([t_s.c1 >= 5])
update /*+use_px, parallel(10)*/ t_s set t_s.c2 = 20 where t_s.c1 >=5;
select * from t_s order by c1;
@ -1095,7 +1095,7 @@ Outputs & filters:
3 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter([t_s.c2 = 5]), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_s.c1]), range(MIN ; MAX)always true
explain basic update /*+use_px, parallel(10)*/ t_s set t_s.c1 = 20 where t_s.c2 = 5;
Query Plan
@ -1119,7 +1119,7 @@ Outputs & filters:
3 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter(nil), rowset=16
4 - output([t_s.c1], [t_s.c2], [t_s.c3]), filter([t_s.c2 = 5]), rowset=16
access([t_s.c1], [t_s.c2], [t_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_s.c1]), range(MIN ; MAX)always true
update /*+use_px, parallel(10)*/ t_s set t_s.c1 = 20 where t_s.c2 = 5;
select * from t_s order by c1;
@ -1164,8 +1164,8 @@ Outputs & filters:
update([t_p.c3=column_conv(INT,PS:(11,0),NULL,cast(20, INT(-1, 0)))])
4 - output([t_p.c1], [t_p.c3], [t_p.c2]), filter(nil), rowset=16
access([t_p.c1], [t_p.c3], [t_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
explain basic update /*+use_px, parallel(10)*/ t_p set t_p.c3 = 20 where t_p.c1 >= 5;
Query Plan
@ -1190,8 +1190,8 @@ Outputs & filters:
update([t_p.c3=column_conv(INT,PS:(11,0),NULL,cast(20, INT(-1, 0)))])
4 - output([t_p.c1], [t_p.c3], [t_p.c2]), filter(nil), rowset=16
access([t_p.c1], [t_p.c3], [t_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; MAX),
range_cond([t_p.c1 >= 5])
update /*+use_px, parallel(10)*/ t_p set t_p.c3 = 20 where t_p.c1 >= 5;
select * from t_p order by c1;
@ -1235,8 +1235,8 @@ Outputs & filters:
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
range_cond([t_p.c1 = 5])
explain basic update /*+use_px, parallel(10)*/ t_p set t_p.c1 = 20 where t_p.c1 = 5;
Query Plan
@ -1260,8 +1260,8 @@ Outputs & filters:
3 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
4 - output([t_p.c1], [t_p.c2], [t_p.c3]), filter(nil), rowset=16
access([t_p.c1], [t_p.c2], [t_p.c3]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
is_index_back=false, is_global_index=false,
range_key([t_p.c1]), range[5 ; 5],
range_cond([t_p.c1 = 5])
update /*+use_px, parallel(10)*/ t_p set t_p.c1 = 20 where t_p.c1 = 5;
select * from t_p order by c1;
@ -1306,8 +1306,8 @@ Outputs & filters:
update([pp.c3=column_conv(INT,PS:(11,0),NULL,cast(20, INT(-1, 0)))])
4 - output([pp.c1], [pp.c3], [pp.c2]), filter(nil), rowset=16
access([pp.c1], [pp.c3], [pp.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([pp.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([pp.c1]), range[5 ; MAX),
range_cond([pp.c1 >= 5])
explain basic update /*+use_px, parallel(10)*/ t_p as pp set pp.c3 = 20 where pp.c1 >= 5;
Query Plan
@ -1332,8 +1332,8 @@ Outputs & filters:
update([pp.c3=column_conv(INT,PS:(11,0),NULL,cast(20, INT(-1, 0)))])
4 - output([pp.c1], [pp.c3], [pp.c2]), filter(nil), rowset=16
access([pp.c1], [pp.c3], [pp.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
range_key([pp.c1]), range[5 ; MAX),
is_index_back=false, is_global_index=false,
range_key([pp.c1]), range[5 ; MAX),
range_cond([pp.c1 >= 5])
update /*+use_px, parallel(10)*/ t_p as pp set pp.c3 = 20 where pp.c1 >= 5;
select * from t_p order by c1;
@ -1377,7 +1377,7 @@ Outputs & filters:
3 - output([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), filter(nil), rowset=16
4 - output([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), filter([t_no_p.c1 >= 5]), rowset=16
access([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_no_p.__pk_increment]), range(MIN ; MAX)always true
explain basic update /*+use_px, parallel(10)*/ t_no_p set t_no_p.c1 = 20 where t_no_p.c1 >= 5;
Query Plan
@ -1401,7 +1401,7 @@ Outputs & filters:
3 - output([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), filter(nil), rowset=16
4 - output([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), filter([t_no_p.c1 >= 5]), rowset=16
access([t_no_p.__pk_increment], [t_no_p.c1], [t_no_p.c2], [t_no_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_no_p.__pk_increment]), range(MIN ; MAX)always true
update /*+use_px, parallel(10)*/ t_no_p set t_no_p.c1 = 20 where t_no_p.c1 >= 5;
select * from t_no_p order by c2;
@ -1447,7 +1447,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.c1], [ANONYMOUS_VIEW1.c2], [ANONYMOUS_VIEW1.c3])
2 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px*/ into t_s select * from t_temp_s;
Query Plan
@ -1468,7 +1468,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.c1], [ANONYMOUS_VIEW1.c2], [ANONYMOUS_VIEW1.c3])
2 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px*/ into t_s select * from t_temp_s;
select * from t_s order by c1;
@ -1518,7 +1518,7 @@ Outputs & filters:
4 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
5 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_s select * from t_temp_s;
Query Plan
@ -1546,7 +1546,7 @@ Outputs & filters:
4 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
5 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_s select * from t_temp_s;
select * from t_s order by c1;
@ -1597,7 +1597,7 @@ Outputs & filters:
4 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter([t_temp_p.c2 >= 5]), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_s select * from t_temp_p where t_temp_p.c2 >= 5;
Query Plan
@ -1625,7 +1625,7 @@ Outputs & filters:
4 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter([t_temp_p.c2 >= 5]), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_s select * from t_temp_p where t_temp_p.c2 >= 5;
select * from t_s order by c1;
@ -1678,12 +1678,12 @@ Outputs & filters:
7 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
8 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
10 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_s select t_temp_p.c1,t_temp_p.c2,t_temp_s.c3 from t_temp_p,t_temp_s where t_temp_p.c1 = t_temp_s.c1;
Query Plan
@ -1721,12 +1721,12 @@ Outputs & filters:
7 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
8 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
10 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_s select t_temp_p.c1,t_temp_p.c2,t_temp_s.c3 from t_temp_p,t_temp_s where t_temp_p.c1 = t_temp_s.c1;
select * from t_s order by c1;
@ -1773,7 +1773,7 @@ Outputs & filters:
4 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
5 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_p select * from t_temp_s;
Query Plan
@ -1801,7 +1801,7 @@ Outputs & filters:
4 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
5 - output([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c2], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_p select * from t_temp_s;
select * from t_p order by c1;
@ -1849,7 +1849,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.c1], [ANONYMOUS_VIEW1.c2], [ANONYMOUS_VIEW1.c3])
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_p select * from t_temp_p;
Query Plan
@ -1878,7 +1878,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.c1], [ANONYMOUS_VIEW1.c2], [ANONYMOUS_VIEW1.c3])
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_p select * from t_temp_p;
select * from t_p order by c1;
@ -1938,12 +1938,12 @@ Outputs & filters:
8 - output([t_temp_p5.c1]), filter(nil), rowset=16
9 - output([t_temp_p5.c1]), filter(nil), rowset=16
access([t_temp_p5.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p5.__pk_increment]), range(MIN ; MAX)always true
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_p.c3 from t_temp_p,t_temp_p5 where t_temp_p.c1 = t_temp_p5.c1;
Query Plan
@ -1984,12 +1984,12 @@ Outputs & filters:
8 - output([t_temp_p5.c1]), filter(nil), rowset=16
9 - output([t_temp_p5.c1]), filter(nil), rowset=16
access([t_temp_p5.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p5.__pk_increment]), range(MIN ; MAX)always true
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_p.c3 from t_temp_p,t_temp_p5 where t_temp_p.c1 = t_temp_p5.c1;
select * from t_p order by c1;
@ -2047,13 +2047,13 @@ Outputs & filters:
7 - output(nil), filter(nil), rowset=16
8 - output(nil), filter([3 = t_temp_p5.c1]), rowset=16
access([t_temp_p5.c1]), partitions(p3)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_temp_p5.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter([t_temp_p.c1 = 3]), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p3)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_p.c3 from t_temp_p,t_temp_p5 where t_temp_p.c1 = t_temp_p5.c1 and t_temp_p.c1 = 3;
select * from t_p order by c1;
@ -2104,12 +2104,12 @@ Outputs & filters:
8 - output([t_temp_p4.c1]), filter(nil), rowset=16
9 - output([t_temp_p4.c1]), filter(nil), rowset=16
access([t_temp_p4.c1]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p4.__pk_increment]), range(MIN ; MAX)always true
10 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
11 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px, parallel(10)*/ into t_p select t_temp_p.c1, t_temp_p.c2, t_temp_p.c3 from t_temp_p, t_temp_p4 where t_temp_p.c1 = t_temp_p4.c1;
select * from t_p order by c1;
@ -2166,12 +2166,12 @@ Outputs & filters:
7 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
8 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
10 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_s.c3 from t_temp_p,t_temp_s where t_temp_p.c1 = t_temp_s.c1;
Query Plan
@ -2209,12 +2209,12 @@ Outputs & filters:
7 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
8 - output([t_temp_p.c1], [t_temp_p.c2]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
9 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
10 - output([t_temp_s.c1], [t_temp_s.c3]), filter(nil), rowset=16
access([t_temp_s.c1], [t_temp_s.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_s.__pk_increment]), range(MIN ; MAX)always true
insert /*+use_px,parallel(10)*/ into t_p select t_temp_p.c1,t_temp_p.c2,t_temp_s.c3 from t_temp_p,t_temp_s where t_temp_p.c1 = t_temp_s.c1;
select * from t_p order by c1;
@ -2263,7 +2263,7 @@ Outputs & filters:
4 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
explain basic insert /*+use_px,parallel(10)*/ into t_p select * from t_temp_p on duplicate key update c3 = 2;
Query Plan
@ -2292,7 +2292,7 @@ Outputs & filters:
4 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
5 - output([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), filter(nil), rowset=16
access([t_temp_p.c1], [t_temp_p.c2], [t_temp_p.c3]), partitions(p[0-3])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t_temp_p.__pk_increment]), range(MIN ; MAX)always true
drop table if exists t_s,t_p,t_p4,t_no_p,t_temp_s,t_temp_p,t_temp_p4,t_temp_p5;

View File

@ -99,11 +99,11 @@ Outputs & filters:
sort_keys([stu.sid, ASC])
6 - output([stu.cls], [stu.sid], [stu.name]), filter(nil), rowset=256
access([stu.cls], [stu.sid], [stu.name]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([stu.cls], [stu.sid]), range(MIN,MIN ; MAX,MAX)always true
7 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
access([score.sid], [score.subject], [score.score]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([score.sid], [score.subject]), range(MIN,MIN ; MAX,MAX)always true
select /*+ USE_PX parallel(2) */ * from stu, score where stu.sid = score.sid order by score.sid;
sid name cls sid subject score

View File

@ -94,7 +94,7 @@ Outputs & filters:
3 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
4 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
access([score.sid], [score.subject], [score.score]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([score.sid], [score.subject]), range(MIN,MIN ; MAX,MAX)always true
5 - output([stu.sid], [stu.cls], [stu.name]), filter(nil), rowset=256
6 - output([stu.sid], [stu.cls], [stu.name]), filter(nil), rowset=256
@ -103,7 +103,7 @@ Outputs & filters:
8 - output([stu.cls], [stu.sid], [stu.name]), filter(nil), rowset=256
9 - output([stu.cls], [stu.sid], [stu.name]), filter([stu.sid < 12]), rowset=256
access([stu.cls], [stu.sid], [stu.name]), partitions(p[0-5])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([stu.cls], [stu.sid]), range(MIN,MIN ; MAX,MAX)always true
select /*+ USE_PX parallel(2) */ * from stu, score where stu.sid != score.sid and stu.sid < 12;
sid name cls sid subject score
@ -161,13 +161,13 @@ Outputs & filters:
5 - output([teacher.tid], [teacher.subject], [teacher.name]), filter(nil), rowset=256
6 - output([teacher.tid], [teacher.subject], [teacher.name]), filter(nil), rowset=256
access([teacher.tid], [teacher.subject], [teacher.name]), partitions(p1)
is_index_back=false, is_global_index=false,
range_key([teacher.tid]), range[1 ; 1],
is_index_back=false, is_global_index=false,
range_key([teacher.tid]), range[1 ; 1],
range_cond([teacher.tid = 1])
7 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
8 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
access([score.sid], [score.subject], [score.score]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([score.sid], [score.subject]), range(MIN,MIN ; MAX,MAX)always true
select /*+ USE_PX parallel(2) */ * from score, teacher where teacher.subject = score.subject and teacher.tid = 1;
sid subject score tid name subject

View File

@ -93,13 +93,13 @@ Outputs & filters:
merge_directions([ASC])
4 - output([score.sid], [score.subject], [score.score]), filter(nil), rowset=256
access([score.sid], [score.subject], [score.score]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([score.sid], [score.subject]), range(MIN,MIN ; MAX,MAX)always true
5 - output([stu.sid], [stu.cls], [stu.name]), filter(nil), rowset=256
sort_keys([stu.sid, ASC])
6 - output([stu.cls], [stu.sid], [stu.name]), filter(nil), rowset=256
access([stu.cls], [stu.sid], [stu.name]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([stu.cls], [stu.sid]), range(MIN,MIN ; MAX,MAX)always true
select /*+ USE_PX parallel(2) */ * from stu, score where stu.sid = score.sid;
sid name cls sid subject score

View File

@ -48,7 +48,7 @@ Outputs & filters:
group([skyline_int.v3]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v3, v4 order by v3;
Query Plan
@ -64,7 +64,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v4, v3 order by v3;
@ -81,7 +81,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v3, v4, v5 order by v3;
@ -98,7 +98,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v3, v5, v4 order by v3;
@ -115,7 +115,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id, v6 from skyline_int group by v3, v5, v4 order by v3;
@ -132,7 +132,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v6], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v6], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v4, v3, v5 order by v3;
@ -149,7 +149,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v4, v5, v3 order by v3;
@ -166,7 +166,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v5, v3, v4 order by v3;
@ -183,7 +183,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v1, tenant_id from skyline_int group by v5, v4, v3 order by v3;
@ -200,7 +200,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select sum(v1), tenant_id from skyline_int group by v6, v5, v4, v3 having sum(v1) > 100 order by v3;
@ -217,7 +217,7 @@ Outputs & filters:
group([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), agg_func([T_FUN_SUM(skyline_int.v1)])
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v6], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v6], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
group by will decide which index to use
@ -240,11 +240,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c3], [other.c2], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c1 and v2 = c3 group by v3, v4, v2;
@ -266,12 +266,12 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
3 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v2 = c1 group by v3;
Query Plan
@ -292,11 +292,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v2 = c1 group by v3, v4;
@ -318,11 +318,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v2 = c1 group by v4, v3;
@ -344,11 +344,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v4 = c3 and v3 = c2 and v2 = c1 group by v4, v3;
@ -370,11 +370,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v4 = c3 and v3 = c2 and v2 = c1 group by v4, v3 order by c2, c3;
@ -396,11 +396,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v4 = c3 and v3 = c1 and v2 = c2 group by v2, v4;
@ -422,11 +422,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c3], [other.c2], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v5 = c1 group by v3;
@ -448,11 +448,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v4 = c3 and v3 = c2 and v5 = c1 group by v3;
@ -474,11 +474,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v5 = c1 group by v3, v4;
@ -500,11 +500,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v5 = c1 and v4 = c3 and v3 = c2 group by v4, v3;
@ -526,11 +526,11 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c2 and v4 = c3 and v5 = c1 group by v3, v4, v5;
@ -553,13 +553,13 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v5], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1]), filter(nil), rowset=16
sort_keys([skyline_int.v5, ASC], [skyline_int.v3, ASC], [skyline_int.v4, ASC])
4 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v5 = c1 and v4 = c3 and v3 = c2 group by v5, v4, v3;
@ -582,13 +582,13 @@ Outputs & filters:
merge_directions([ASC], [ASC], [ASC])
2 - output([other.c1], [other.c3], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c3], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v5], [skyline_int.tenant_id], [skyline_int.v4], [skyline_int.v3], [skyline_int.v1]), filter(nil), rowset=16
sort_keys([skyline_int.v5, ASC], [skyline_int.v4, ASC], [skyline_int.v3, ASC])
4 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v5], [skyline_int.v4], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c1 group by v3;
@ -610,11 +610,11 @@ Outputs & filters:
merge_directions([ASC])
2 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c1 group by v4, v3;
Query Plan
@ -635,12 +635,12 @@ Outputs & filters:
merge_directions([ASC])
2 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c1 group by v5, v4;
Query Plan
@ -661,11 +661,11 @@ Outputs & filters:
merge_directions([ASC])
2 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c1 group by v5, v4 order by v4, v5;
@ -690,11 +690,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select max(v1), tenant_id from skyline_int join other on v3 = c1 group by v5, v4, v3 order by v3, v4, v5;
@ -716,12 +716,12 @@ Outputs & filters:
merge_directions([ASC])
2 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select max(v1), tenant_id, v6 from skyline_int join other on v3 = c1 group by v5, v4, v3 order by v3, v4, v5;
Query Plan
@ -745,11 +745,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v6], [skyline_int.v5], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v6], [skyline_int.v5], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct(v3) from skyline_int join other on v3 = c1 order by v3, v4, v5;
@ -771,11 +771,11 @@ Outputs & filters:
merge_directions([ASC])
2 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct(v4) from skyline_int join other on v4 = c1 order by v3, v4, v5;
@ -800,11 +800,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct(v4) from skyline_int join other on v4 = c1 order by v3, v4, v5, v6;
@ -829,11 +829,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v5, v4, v3 from skyline_int join other on v4 = c1 order by v3;
@ -858,11 +858,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v5, v4, v3 from other left join skyline_int on v4 = c1 order by v3;
@ -887,11 +887,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v4, v5, v6 from other left join skyline_int on v4 = c1 and v5 = c2 order by v4, v5, v6;
@ -916,11 +916,11 @@ Outputs & filters:
merge_directions([ASC], [ASC])
3 - output([other.c1], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v4, v5 from skyline_int union select c1, c2, c3 from other;
@ -937,12 +937,12 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select v4, v5, v6 from skyline_int intersect select v3, v4, v5 from skyline_int;
Query Plan
@ -958,12 +958,12 @@ Outputs & filters:
0 - output([INTERSECT([1])], [INTERSECT([2])], [INTERSECT([3])]), filter(nil), rowset=16
1 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
2 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v4, v5, v6 from skyline_int union select v2, v3, v4 from skyline_int;
@ -980,12 +980,12 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
2 - output([skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 = 100 and v5 = 100 order by v3, v4, v5;
@ -999,9 +999,9 @@ Outputs & filters:
-------------------------------------
0 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,100,MIN,
MIN,MIN ; 100,100,100,MAX,MAX,MAX),
MIN,MIN ; 100,100,100,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 = 100], [skyline_int.v5 = 100])
explain select v3, v4, v5 from skyline_int where v3 in (100, 200, 300) group by v3, v4, v5 order by v3, v4, v5;
Query Plan
@ -1020,7 +1020,7 @@ Outputs & filters:
distinct([skyline_int.v3], [skyline_int.v4], [skyline_int.v5])
2 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter([skyline_int.v3 IN (100, 200, 300)]), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v3, v4, v5 from skyline_int where v3 in (100, 200, 300) order by v3, v4, v5;
@ -1040,7 +1040,7 @@ Outputs & filters:
distinct([skyline_int.v3], [skyline_int.v4], [skyline_int.v5])
2 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter([skyline_int.v3 IN (100, 200, 300)]), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 > 100 group by v4, v3, v5;
@ -1057,9 +1057,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MAX,MAX,
MAX,MAX ; 100,MAX,MAX,MAX,MAX,MAX),
MAX,MAX ; 100,MAX,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 > 100])
explain select v4, v5, v6 from skyline_int where v3 = 100 group by v3, v5;
Query Plan
@ -1075,7 +1075,7 @@ Outputs & filters:
group([skyline_int.v5]), agg_func(nil)
1 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), filter([skyline_int.v3 = 100]), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v3, v5 from skyline_int where v4 = 100;
@ -1092,7 +1092,7 @@ Outputs & filters:
distinct([skyline_int.v3], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v5]), filter([skyline_int.v4 = 100]), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v3, v5 from skyline_int where v4 > 100 and v4 < 200;
@ -1109,9 +1109,9 @@ Outputs & filters:
distinct([skyline_int.v3], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(100,MAX,MAX,MAX,
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v4 > 100], [skyline_int.v4 < 200])
explain select v3, v5 from skyline_int where v4 > 100 and v4 < 200 order by v4, v2;
Query Plan
@ -1127,9 +1127,9 @@ Outputs & filters:
sort_keys([skyline_int.v4, ASC], [skyline_int.v2, ASC]), prefix_pos(1)
1 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(100,MAX,MAX,MAX,
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v4 > 100], [skyline_int.v4 < 200])
explain select v3, v5 from skyline_int where v4 > 100 and v4 < 200 order by v4, v2 limit 100;
Query Plan
@ -1145,9 +1145,9 @@ Outputs & filters:
sort_keys([skyline_int.v4, ASC], [skyline_int.v2, ASC]), topn(100), prefix_pos(1)
1 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v2]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(100,MAX,MAX,MAX,
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
MAX,MAX ; 200,MIN,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v4 > 100], [skyline_int.v4 < 200])
explain select v3, v5 from skyline_int where v5 = 100 group by v4, v2;
Query Plan
@ -1163,7 +1163,7 @@ Outputs & filters:
group([skyline_int.v4], [skyline_int.v2]), agg_func(nil)
1 - output([skyline_int.v5], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter([skyline_int.v5 = 100]), rowset=16
access([skyline_int.v5], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v5 from skyline_int where v5 = 100 group by v4, v2 limit 100;
@ -1183,7 +1183,7 @@ Outputs & filters:
group([skyline_int.v4], [skyline_int.v2]), agg_func(nil)
2 - output([skyline_int.v5], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), filter([skyline_int.v5 = 100]), rowset=16
access([skyline_int.v5], [skyline_int.v3], [skyline_int.v4], [skyline_int.v2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v6 from skyline_int join other on skyline_int.v3 = other.c1 and skyline_int.v5 = other.c2 order by v3, v4;
@ -1206,13 +1206,13 @@ Outputs & filters:
merge_directions([ASC], [ASC])
2 - output([other.c1], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
3 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v6], [skyline_int.v5]), filter(nil), rowset=16
sort_keys([skyline_int.v3, ASC], [skyline_int.v5, ASC])
4 - output([skyline_int.v3], [skyline_int.v5], [skyline_int.v6], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v5], [skyline_int.v6], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v6 from skyline_int join other on skyline_int.v3 = other.c1 and skyline_int.v5 = other.c2 order by v3;
@ -1232,13 +1232,13 @@ Outputs & filters:
merge_directions([ASC], [ASC])
1 - output([other.c1], [other.c2]), filter(nil), rowset=16
access([other.c1], [other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
2 - output([skyline_int.v3], [skyline_int.v6], [skyline_int.v5]), filter(nil), rowset=16
sort_keys([skyline_int.v3, ASC], [skyline_int.v5, ASC])
3 - output([skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v3, v5 from skyline_int join other where skyline_int.v4 = other.c1 order by v4, v5, v6;
@ -1263,11 +1263,11 @@ Outputs & filters:
merge_directions([ASC])
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select v3, v5 from skyline_int join other where skyline_int.v4 = other.c1 group by v4, v5;
@ -1289,12 +1289,12 @@ Outputs & filters:
merge_directions([ASC])
2 - output([skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v3], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select distinct v4, v5 from skyline_int join other where skyline_int.v4 = other.c1;
Query Plan
@ -1315,12 +1315,12 @@ Outputs & filters:
merge_directions([ASC])
2 - output([skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select v4, v5 from skyline_int join other where skyline_int.v4 = other.c1 order by v4, v5;
Query Plan
@ -1338,12 +1338,12 @@ Outputs & filters:
merge_directions([ASC])
1 - output([skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
2 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain (select v4, v5, v6 from skyline_int join other on skyline_int.v4 = other.c1 ) union select c1, c2, c3 from other;
Query Plan
@ -1364,16 +1364,16 @@ Outputs & filters:
merge_directions([ASC])
2 - output([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), filter(nil), rowset=16
access([skyline_int.v4], [skyline_int.v5], [skyline_int.v6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v3], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output([other.c1]), filter(nil), rowset=16
access([other.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
4 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select v1, tenant_id from skyline_int group by v2, v3, v4 order by v2, v3, v4, v5;
Query Plan
@ -1389,7 +1389,7 @@ Outputs & filters:
group([skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), agg_func(nil)
1 - output([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v1], [skyline_int.tenant_id], [skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v2, v3, v4, v5 from skyline_int group by v2, v3, v4;
@ -1406,7 +1406,7 @@ Outputs & filters:
group([skyline_int.v2], [skyline_int.v3], [skyline_int.v4]), agg_func(nil)
1 - output([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v2], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain (select c1, c2, c3 from other group by c1, c2) union select c1, c2, c3 from other group by c1, c2;
@ -1423,11 +1423,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=16
1 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
2 - output([other.c1], [other.c2], [other.c3]), filter(nil), rowset=16
access([other.c1], [other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c1]), range(MIN ; MAX)always true
explain select distinct v3, v4, v5 from skyline_int order by v3, v4, v5, v6;
Query Plan
@ -1443,7 +1443,7 @@ Outputs & filters:
distinct([skyline_int.v3], [skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v6], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,
MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select distinct v3, v4 from skyline_int union select distinct c2, c3 from other;
@ -1460,12 +1460,12 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
2 - output([other.c2], [other.c3]), filter(nil), rowset=16
access([other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain (select v3, v4 from skyline_int order by v3, v4) union select distinct c2, c3 from other order by v3, v4;
Query Plan
@ -1481,12 +1481,12 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
2 - output([other.c2], [other.c3]), filter(nil), rowset=16
access([other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain (select v3, v4 from skyline_int order by v3, v4) union (select distinct c2, c3 from other order by c2, c3) order by 1,2;
Query Plan
@ -1502,12 +1502,12 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
2 - output([other.c2], [other.c3]), filter(nil), rowset=16
access([other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+use_nl(skyline_int other)*/tenant_id from skyline_int join other where skyline_int.v3 = other.c2 group by v3, v4;
Query Plan
@ -1527,13 +1527,13 @@ Outputs & filters:
conds(nil), nl_params_([skyline_int.v3(:0)]), use_batch=true
2 - output([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
3 - output(nil), filter(nil), rowset=16
access([GROUP_ID]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN ; MAX),
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN ; MAX),
range_cond([:0 = other.c2])
explain select /*+use_nl(skyline_int other)*/tenant_id from skyline_int join other where skyline_int.v3 = other.c2 group by v3, v4, v5;
Query Plan
@ -1553,13 +1553,13 @@ Outputs & filters:
conds(nil), nl_params_([skyline_int.v3(:0)]), use_batch=true
2 - output([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output(nil), filter(nil), rowset=16
access([GROUP_ID]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN ; MAX),
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN ; MAX),
range_cond([:0 = other.c2])
explain select /*use_nl(skyline_int other)*/tenant_id from skyline_int join other where skyline_int.v3 = other.c2 and skyline_int.v4 = other.c3 group by v3, v4, v5;
Query Plan
@ -1580,12 +1580,12 @@ Outputs & filters:
merge_directions([ASC], [ASC])
2 - output([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.tenant_id], [skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
3 - output([other.c2], [other.c3]), filter(nil), rowset=16
access([other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
explain select /*+use_hash(skyline_int other)*/ v3, v4 from skyline_int join other on skyline_int.v3 = other.c2 order by v3, v4, v5;
Query Plan
@ -1605,11 +1605,11 @@ Outputs & filters:
equal_conds([skyline_int.v3 = other.c2]), other_conds(nil)
2 - output([other.c2]), filter(nil), rowset=16
access([other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN,MIN ; MAX,MAX)always true
3 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select /*+use_hash(skyline_int other)*/ distinct v3, v4 from skyline_int join other on skyline_int.v3 = other.c2 order by v3, v4, v5;
@ -1633,11 +1633,11 @@ Outputs & filters:
equal_conds([skyline_int.v3 = other.c2]), other_conds(nil)
3 - output([other.c2]), filter(nil), rowset=16
access([other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN,MIN ; MAX,MAX)always true
4 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,
MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
explain select /*+leading(other skyline_int) use_hash(other skyline_int)*/ distinct v3, v4 from skyline_int join other on skyline_int.v3 = other.c2 union select c2, c3 from other;
@ -1657,7 +1657,7 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([other.c2], [other.c3]), filter(nil), rowset=16
access([other.c2], [other.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c3], [other.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
sort_keys([skyline_int.v3, ASC], [skyline_int.v4, ASC])
@ -1665,11 +1665,11 @@ Outputs & filters:
equal_conds([skyline_int.v3 = other.c2]), other_conds(nil)
4 - output([other.c2]), filter(nil), rowset=16
access([other.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([other.c2], [other.c1]), range(MIN,MIN ; MAX,MAX)always true
5 - output([skyline_int.v3], [skyline_int.v4]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,
MAX,MAX)always true
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 > 100 group by v3, v4, v5;
@ -1686,9 +1686,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MAX,MAX,
MAX,MAX ; 100,MAX,MAX,MAX,MAX,MAX),
MAX,MAX ; 100,MAX,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 > 100])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 >= 100 group by v3, v4, v5;
Query Plan
@ -1704,9 +1704,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MIN,MIN,
MIN,MIN ; 100,MAX,MAX,MAX,MAX,MAX),
MIN,MIN ; 100,MAX,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 >= 100])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 < 100 group by v3, v4, v5;
Query Plan
@ -1722,9 +1722,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,NULL,MAX,MAX,
MAX,MAX ; 100,100,MIN,MIN,MIN,MIN),
MAX,MAX ; 100,100,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 < 100])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 <= 100 group by v3, v4, v5;
Query Plan
@ -1740,9 +1740,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,NULL,MAX,MAX,
MAX,MAX ; 100,100,MAX,MAX,MAX,MAX),
MAX,MAX ; 100,100,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 <= 100])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 > 100 and v4 < 1000 group by v3, v4, v5;
Query Plan
@ -1758,9 +1758,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MAX,MAX,
MAX,MAX ; 100,1000,MIN,MIN,MIN,MIN),
MAX,MAX ; 100,1000,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 > 100], [skyline_int.v4 < 1000])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 >= 100 and v4 < 1000 group by v3, v4, v5;
Query Plan
@ -1776,9 +1776,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MIN,MIN,
MIN,MIN ; 100,1000,MIN,MIN,MIN,MIN),
MIN,MIN ; 100,1000,MIN,MIN,MIN,MIN),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 >= 100], [skyline_int.v4 < 1000])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 > 100 and v4 <= 1000 group by v3, v4, v5;
Query Plan
@ -1794,9 +1794,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MAX,MAX,
MAX,MAX ; 100,1000,MAX,MAX,MAX,MAX),
MAX,MAX ; 100,1000,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 > 100], [skyline_int.v4 <= 1000])
explain select v3, v4, v5 from skyline_int where v3 = 100 and v4 >= 100 and v4 <= 1000 group by v3, v4, v5;
Query Plan
@ -1812,9 +1812,9 @@ Outputs & filters:
distinct([skyline_int.v4], [skyline_int.v5])
1 - output([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), filter(nil), rowset=16
access([skyline_int.v3], [skyline_int.v4], [skyline_int.v5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([skyline_int.v3], [skyline_int.v4], [skyline_int.v5], [skyline_int.v2], [skyline_int.v1], [skyline_int.tenant_id]), range(100,100,MIN,MIN,
MIN,MIN ; 100,1000,MAX,MAX,MAX,MAX),
MIN,MIN ; 100,1000,MAX,MAX,MAX,MAX),
range_cond([skyline_int.v3 = 100], [skyline_int.v4 >= 100], [skyline_int.v4 <= 1000])
set @@recyclebin = 'off';
drop database hualong;

View File

@ -63,7 +63,7 @@ create table tmp (pk int primary key, c1 int, c2 int, c3 int, c4 int, c5 int,
index idx_c1_c2_c3(c1, c2 ,c3),
index idx_c1_c2_c3_c4(c1, c2, c3, c4));
##
##
create table t9 (c1 int primary key, c2 int, c3 int, c4 varchar(100), c5 int,
index idx_c2_c5 (c2, c5),
index idx_c2_c3_c5 (c2, c3, c5),
@ -338,7 +338,7 @@ explain select * from t8 where e = 1 or f = 1 order by b;
explain select * from t8 where d = 1 order by b;
##
##
## part expr 决定路径
explain select avg(c1) over (partition by c2) from t9 order by c1;

View File

@ -253,7 +253,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t1, BIGINT(-1, 0)))]), filter(nil), rowset=16
access([t.t1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t2) from t;
+---------+
@ -273,7 +273,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t2, BIGINT(-1, 0)))]), filter(nil), rowset=16
access([t.t2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t3) from t;
+---------+
@ -293,7 +293,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t3, BIGINT(-1, 0)))]), filter(nil), rowset=16
access([t.t3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t4) from t;
+---------+
@ -313,7 +313,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t4, BIGINT(-1, 0)))]), filter(nil), rowset=16
access([t.t4]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t5) from t;
+---------+
@ -333,7 +333,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t5)]), filter(nil), rowset=16
access([t.t5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t6) from t;
+---------+
@ -353,7 +353,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t6, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t7) from t;
+---------+
@ -373,7 +373,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t7, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t7]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t8) from t;
+---------+
@ -393,7 +393,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t8, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t8]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t9) from t;
+---------+
@ -413,7 +413,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t9, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t9]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t10) from t;
+----------+
@ -433,7 +433,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t10)]), filter(nil), rowset=16
access([t.t10]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t11) from t;
+---------------------+
@ -453,7 +453,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t11, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t11]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t12) from t;
+---------------------+
@ -473,7 +473,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t12, DOUBLE UNSIGNED(-1, -1)))]), filter(nil), rowset=16
access([t.t12]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t13) from t;
+----------+
@ -493,7 +493,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t13)]), filter(nil), rowset=16
access([t.t13]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t14) from t;
+----------+
@ -513,7 +513,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t14)]), filter(nil), rowset=16
access([t.t14]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t15) from t;
+----------+
@ -533,7 +533,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t15)]), filter(nil), rowset=16
access([t.t15]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t16) from t;
+----------+
@ -553,7 +553,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(t.t16)]), filter(nil), rowset=16
access([t.t16]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t17) from t;
+----------------+
@ -573,7 +573,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t17, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t17]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t18) from t;
+----------------+
@ -593,7 +593,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t18, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t18]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t19) from t;
+----------+
@ -613,7 +613,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t19, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t19]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t20) from t;
+----------+
@ -633,7 +633,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t20, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t20]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t21) from t;
+----------+
@ -653,7 +653,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t21, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t22) from t;
+----------+
@ -673,7 +673,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t22, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t23) from t;
+----------+
@ -693,7 +693,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t23, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t24) from t;
+----------+
@ -713,7 +713,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t24, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t24]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t25) from t;
+----------+
@ -733,7 +733,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t25, DOUBLE(-1, -1)))]), filter(nil)
access([t.t25]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t26) from t;
+----------+
@ -753,7 +753,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t26, DOUBLE(-1, -1)))]), filter(nil)
access([t.t26]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t27) from t;
+----------+
@ -773,7 +773,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t27, BIGINT UNSIGNED(-1, 0)))]), filter(nil), rowset=16
access([t.t27]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t28) from t;
+----------+
@ -793,7 +793,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t28, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t28]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select abs(t29) from t;
+----------+
@ -813,7 +813,7 @@ Outputs & filters:
-------------------------------------
0 - output([abs(cast(t.t29, DOUBLE(-1, -1)))]), filter(nil), rowset=16
access([t.t29]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
drop table if exists t1;

View File

@ -26,7 +26,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int AND t1.col_null]), filter(nil), rowset=16
access([t1.col_int], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int and col_null from t1;
+----------------------+
@ -46,7 +46,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null AND t1.col_int]), filter(nil), rowset=16
access([t1.col_null], [t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null and col_int from t1;
+----------------------+
@ -67,7 +67,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int AND cast(t1.col_varchar, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_int], [t1.col_varchar]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int and col_varchar from t1;
+-------------------------+
@ -89,7 +89,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar, DOUBLE(-1, -1)) AND t1.col_int]), filter(nil), rowset=16
access([t1.col_varchar], [t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar and col_int from t1;
+-------------------------+
@ -112,7 +112,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int AND cast(t1.col_varchar_num, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_int], [t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int and col_varchar_num from t1;
+-----------------------------+
@ -132,7 +132,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) AND t1.col_int]), filter(nil), rowset=16
access([t1.col_varchar_num], [t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num and col_int from t1;
+-----------------------------+
@ -153,7 +153,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int AND 0]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int and 0 from t1;
+---------------+
@ -173,7 +173,7 @@ Outputs & filters:
-------------------------------------
0 - output([0 AND t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 0 and col_int from t1;
+---------------+
@ -195,7 +195,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null AND t1.col_null]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null and col_null from t1;
+-----------------------+
@ -215,7 +215,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null AND cast(t1.col_varchar_num, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null], [t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null and col_varchar_num from t1;
+------------------------------+
@ -235,7 +235,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) AND t1.col_null]), filter(nil), rowset=16
access([t1.col_varchar_num], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num and col_null from t1;
+------------------------------+
@ -256,7 +256,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null AND cast(t1.col_varchar, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null], [t1.col_varchar]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null and col_varchar from t1;
+--------------------------+
@ -278,7 +278,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar, DOUBLE(-1, -1)) AND t1.col_null]), filter(nil), rowset=16
access([t1.col_varchar], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar and col_null from t1;
+--------------------------+
@ -301,7 +301,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null AND 0]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null and 0 from t1;
+----------------+
@ -323,7 +323,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) AND 0]), filter(nil), rowset=16
access([t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num and 0 from t1;
+-----------------------+
@ -343,7 +343,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) AND 0]), filter(nil), rowset=16
access([t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num and 0 from t1;
+-----------------------+
@ -365,7 +365,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int AND cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int and '' from t1;
+----------------+
@ -385,7 +385,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) AND t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' and col_int from t1;
+----------------+
@ -406,7 +406,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar, DOUBLE(-1, -1)) AND cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_varchar]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar and '' from t1;
+--------------------+
@ -428,7 +428,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) AND cast(t1.col_varchar, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_varchar]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' and col_varchar from t1;
+--------------------+
@ -448,7 +448,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) AND cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num and '' from t1;
+------------------------+
@ -469,7 +469,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) AND cast(t1.col_varchar_num, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' and col_varchar_num from t1;
+------------------------+
@ -495,7 +495,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int OR t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int or col_int from t1;
+--------------------+
@ -515,7 +515,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_zero OR t1.col_zero]), filter(nil), rowset=16
access([t1.col_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_zero or col_zero from t1;
+----------------------+
@ -535,7 +535,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_zero, DOUBLE(-1, -1)) OR cast(t1.col_varchar_zero, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_varchar_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_zero or col_varchar_zero from t1;
+--------------------------------------+
@ -557,7 +557,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR t1.col_null]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or col_null from t1;
+----------------------+
@ -577,7 +577,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int OR t1.col_null]), filter(nil), rowset=16
access([t1.col_int], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int or col_null from t1;
+---------------------+
@ -597,7 +597,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR t1.col_int]), filter(nil), rowset=16
access([t1.col_null], [t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or col_int from t1;
+---------------------+
@ -618,7 +618,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_zero OR t1.col_null]), filter(nil), rowset=16
access([t1.col_zero], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_zero or col_null from t1;
+----------------------+
@ -638,7 +638,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR t1.col_zero]), filter(nil), rowset=16
access([t1.col_null], [t1.col_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or col_zero from t1;
+----------------------+
@ -659,7 +659,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_num, DOUBLE(-1, -1)) OR t1.col_null]), filter(nil), rowset=16
access([t1.col_varchar_num], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_num or col_null from t1;
+-----------------------------+
@ -679,7 +679,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR cast(t1.col_varchar_num, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null], [t1.col_varchar_num]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or col_varchar_num from t1;
+-----------------------------+
@ -700,7 +700,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_varchar_zero, DOUBLE(-1, -1)) OR t1.col_null]), filter(nil), rowset=16
access([t1.col_varchar_zero], [t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_varchar_zero or col_null from t1;
+------------------------------+
@ -720,7 +720,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR cast(t1.col_varchar_zero, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null], [t1.col_varchar_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or col_varchar_zero from t1;
+------------------------------+
@ -742,7 +742,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_null OR cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_null or '' from t1;
+----------------+
@ -762,7 +762,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) OR t1.col_null]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' or col_null from t1;
+----------------+
@ -783,7 +783,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_int OR cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_int or '' from t1;
+---------------+
@ -803,7 +803,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) OR t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' or col_int from t1;
+---------------+
@ -824,7 +824,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.col_zero OR cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_zero or '' from t1;
+----------------+
@ -844,7 +844,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) OR t1.col_zero]), filter(nil), rowset=16
access([t1.col_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' or col_zero from t1;
+----------------+
@ -865,7 +865,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t1.col_empty_str, DOUBLE(-1, -1)) OR cast('', DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_empty_str]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select col_empty_str or '' from t1;
+---------------------+
@ -887,7 +887,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 AND 2 AND 3 AND t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 and 2 and 3 and col_int from t1;
+---------------------------+
@ -907,7 +907,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 AND t1.col_null AND 3 AND t1.col_int]), filter(nil), rowset=16
access([t1.col_null], [t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 and col_null and 3 and col_int from t1;
+----------------------------------+
@ -927,7 +927,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 AND t1.col_null AND 3 AND t1.col_zero]), filter(nil), rowset=16
access([t1.col_null], [t1.col_zero]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 and col_null and 3 and col_zero from t1;
+-----------------------------------+
@ -947,7 +947,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 AND t1.col_null AND 3 AND cast(t1.col_empty_str, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t1.col_null], [t1.col_empty_str]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 and col_null and 3 and col_empty_str from t1;
+----------------------------------------+
@ -969,7 +969,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 OR 2 OR t1.col_int]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 or 2 or col_int from t1;
+-------------------+
@ -989,7 +989,7 @@ Outputs & filters:
-------------------------------------
0 - output([1 OR 2 OR t1.col_null]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select 1 or 2 or col_null from t1;
+--------------------+
@ -1009,7 +1009,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast('', DOUBLE(-1, -1)) OR 0 OR t1.col_null]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select '' or 0 or col_null from t1;
+---------------------+
@ -1056,7 +1056,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1], [t1.c1 AND t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c1, c1 and c1 from t1;
+------+------+-----------+
@ -1075,7 +1075,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1], [t1.c1 OR t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c1, c1 or c1 from t1;
+------+------+----------+
@ -1094,7 +1094,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c1 AND t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c2, c1 and c2 from t1;
+------+------+-----------+
@ -1113,7 +1113,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c1 OR t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c2, c1 or c2 from t1;
+------+------+----------+
@ -1132,7 +1132,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c3], [t1.c1 AND t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c3, c1 and c3 from t1;
+------+------+-----------+
@ -1151,7 +1151,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c3], [t1.c1 OR t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c1, c3, c1 or c3 from t1;
+------+------+----------+
@ -1170,7 +1170,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c1], [t1.c2 AND t1.c1]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c1, c2 and c1 from t1;
+------+------+-----------+
@ -1189,7 +1189,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c1], [t1.c2 OR t1.c1]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c1, c2 or c1 from t1;
+------+------+----------+
@ -1208,7 +1208,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c2], [t1.c2 AND t1.c2]), filter(nil), rowset=16
access([t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c2, c2 and c2 from t1;
+------+------+-----------+
@ -1227,7 +1227,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c2], [t1.c2 OR t1.c2]), filter(nil), rowset=16
access([t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c2, c2 or c2 from t1;
+------+------+----------+
@ -1246,7 +1246,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c3], [t1.c2 AND t1.c3]), filter(nil), rowset=16
access([t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c3, c2 and c3 from t1;
+------+------+-----------+
@ -1265,7 +1265,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c3], [t1.c2 OR t1.c3]), filter(nil), rowset=16
access([t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, c3, c2 or c3 from t1;
+------+------+----------+
@ -1284,7 +1284,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c1], [t1.c3 AND t1.c1]), filter(nil), rowset=16
access([t1.c3], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c1, c3 and c1 from t1;
+------+------+-----------+
@ -1303,7 +1303,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c1], [t1.c3 OR t1.c1]), filter(nil), rowset=16
access([t1.c3], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c1, c3 or c1 from t1;
+------+------+----------+
@ -1322,7 +1322,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c2], [t1.c3 AND t1.c2]), filter(nil), rowset=16
access([t1.c3], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c2, c3 and c2 from t1;
+------+------+-----------+
@ -1341,7 +1341,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c2], [t1.c3 OR t1.c2]), filter(nil), rowset=16
access([t1.c3], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c2, c3 or c2 from t1;
+------+------+----------+
@ -1360,7 +1360,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c3], [t1.c3 AND t1.c3]), filter(nil), rowset=16
access([t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c3, c3 and c3 from t1;
+------+------+-----------+
@ -1379,7 +1379,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c3], [t1.c3], [t1.c3 OR t1.c3]), filter(nil), rowset=16
access([t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c3, c3, c3 or c3 from t1;
+------+------+----------+

View File

@ -58,3 +58,4 @@ select * from v1;
| 0 |
+----------+
drop view v1;

View File

@ -7328,7 +7328,7 @@ Outputs & filters:
-------------------------------------
0 - output([nullif(t1.c1, t1.c2)]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select nullif(c1, c2) from t1;
+---------------------------+
@ -7347,7 +7347,7 @@ Outputs & filters:
-------------------------------------
0 - output([nullif(t1.c2, t1.c1)]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select nullif(c2, c1) from t1;
+----------------+
@ -7366,7 +7366,7 @@ Outputs & filters:
-------------------------------------
0 - output([nullif(t1.c1, t1.c1)]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select nullif(c1, c1) from t1;
+----------------+
@ -7385,7 +7385,7 @@ Outputs & filters:
-------------------------------------
0 - output([nullif(t1.c2, t1.c2)]), filter(nil), rowset=16
access([t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select nullif(c2, c2) from t1;
+----------------+
@ -7574,7 +7574,7 @@ select nullif(z0_test0,'中文字符') from t1;
+---------------------------------+
drop table t1;
##bugfix:
##bugfix:
create table t1 (pk double) PARTITION BY key (pk) partitions 1;
insert into t1 values( NULLIF( 100.2345, 1 ));
select * from t1;
@ -7603,7 +7603,7 @@ from
) as c3
) as subq_0;
##bugfix:
##bugfix:
create table t1 (pk int);
insert into t1 values (1);
select pk, ( NULLIF( 14152561829011783680, INSTR( TRIM( SUBSTRING( HEX( SUBSTRING( 'a',1, LEAST( 218, 20 ) ) ) , 1 , LEAST( 218, 20 ) ) ), 'oh' ) ) ) s , INSTR( TRIM( SUBSTRING( HEX( SUBSTRING( 'a',1, LEAST( 218, 20 ) ) ) , 1 , LEAST( 218, 20 ) ) ), 'oh' ) s2 from t1;
@ -7656,7 +7656,7 @@ select * from t2;
+------+------+------+------+
drop table t1,t2;
##
##
select collation(nullif('a', binary 'b'));
+------------------------------------+
| collation(nullif('a', binary 'b')) |

View File

@ -106,3 +106,4 @@ select repeat(c1, 10),repeat(c2,10),repeat(c3,10) from t2;
| aaaaaaaaaa | bbbbbbbbbb | cccccccccc |
+----------------+---------------+---------------+
drop table t2;

View File

@ -97,7 +97,7 @@ select c1, substring_index("a,b,c,d", ",", c1), c2, substring_index("a,b,c,d", "
| -9223372036854775807 | a,b,c,d | 9223372036854775807 | a,b,c,d | -9223372036854775807.00 | a,b,c,d | -9223372036854775807 | a,b,c,d |
+----------------------+-------------------------------------+---------------------+-------------------------------------+-------------------------+-------------------------------------+----------------------+-------------------------------------+
//for
//for
drop table if exists t2, t3;
create table t2(c1 varchar(20));
create table t3(c1 varchar(20));

View File

@ -140,7 +140,7 @@ select concat('[', trim(both c2 from c1), ']') x from t1;
drop table if exists t1;
drop view if exists v1;
// bug:
// bug:
create view v1 as select nullif(trim(repeat('abc', 1+1)), 'a');
desc v1;
+---------------------------------------+----------+------+-----+---------+-------+
@ -193,3 +193,4 @@ select TRIM(LEADING 'a' FROM TRIM(SUBSTR(REPEAT(NULL, 4 + 1), 1, LEAST(146, 20))
+-----------------------------------------------------------------------------+
| NULL |
+-----------------------------------------------------------------------------+

View File

@ -40,12 +40,12 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=16
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=16
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
EXPLAIN select * from t1,t2;
Query Plan
@ -63,12 +63,12 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=16
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), rowset=16
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select * from t1,t2;
+------+------+------+------+------+------+

View File

@ -66,7 +66,7 @@ Outputs & filters:
force partition granule
3 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
select * from t3 a ;
+----+------+
@ -104,7 +104,7 @@ Outputs & filters:
3 - output([a.c1], [a.c2], [a.c2 + 1 + a.c1]), filter(nil), rowset=16
4 - output([a.c1], [a.c2], [a.c2 + 1 + a.c1]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
select /*+ parallel(2) NO_USE_HASH_AGGREGATION */ a.c1,a.c2+a.c1 from t3 a group by a.c1,a.c2 order by a.c2+1+a.c1;
+----+-----------+
@ -152,13 +152,13 @@ Outputs & filters:
6 - output([a.c1], [a.c2]), filter(nil), rowset=16
7 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
8 - output([b.c1]), filter(nil), rowset=16
affinitize
9 - output([b.c1]), filter(nil), rowset=16
access([b.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.c1]), range(MIN ; MAX)always true
select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on a.c2=b.c1 order by a.c1,a.c2;
+----+------+
@ -205,12 +205,12 @@ Outputs & filters:
6 - output([a.c1], [a.c2]), filter(nil), rowset=16
7 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
8 - output([b.c1]), filter(nil), rowset=16
9 - output([b.c1]), filter(nil), rowset=16
access([b.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.c1]), range(MIN ; MAX)always true
select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on a.c2+2=b.c1+1 order by a.c1,a.c2+2;
+----+------+
@ -257,13 +257,13 @@ Outputs & filters:
6 - output([a.c1], [a.c2]), filter(nil), rowset=16
7 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
8 - output([b.c1]), filter(nil), rowset=16
affinitize
9 - output([b.c1]), filter(nil), rowset=16
access([b.c1]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.c1]), range(MIN ; MAX)always true
select /*+ parallel(2) pq_distribute(a hash hash) NO_USE_HASH_AGGREGATION */ a.c1,a.c2 from t3 a right outer join t3 b on abs(a.c2)+2=b.c1 order by a.c1,a.c2+2;
+----+------+
@ -314,7 +314,7 @@ Outputs & filters:
affinitize
6 - output([b.c2], [b.c1]), filter(nil), rowset=16
access([b.c2], [b.c1]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
7 - output([a.c1], [a.c2]), filter(nil), rowset=16
8 - output([a.c1], [a.c2]), filter(nil), rowset=16
@ -322,7 +322,7 @@ Outputs & filters:
9 - output([a.c1], [a.c2]), filter(nil), rowset=16
10 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b where a.c1=b.c2 order by a.c1,b.c1;
+------+------+------+------+
@ -368,12 +368,12 @@ Outputs & filters:
6 - output([b.c2], [b.c1]), filter(nil), rowset=16
7 - output([b.c2], [b.c1]), filter(nil), rowset=16
access([b.c2], [b.c1]), partitions(p[0-5])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.__pk_increment]), range(MIN ; MAX)always true
8 - output([a.c1], [a.c2]), filter(nil), rowset=16
9 - output([a.c1], [a.c2]), filter(nil), rowset=16
access([a.c1], [a.c2]), partitions(p[0-4])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.__pk_increment]), range(MIN ; MAX)always true
select /*+ parallel(2) pq_distribute(b broadcast none) */ * from t1 a, t2 b where a.c1+2=b.c2 + 1 order by a.c1,b.c1+2;
+------+------+------+------+
@ -423,7 +423,7 @@ Outputs & filters:
7 - output([a.c1]), filter(nil), rowset=16
8 - output([a.c1]), filter(nil), rowset=16
access([a.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([a.c1]), range(MIN ; MAX)always true
9 - output([b.c2]), filter(nil), rowset=16
10 - output([b.c2]), filter(nil), rowset=16
@ -431,7 +431,7 @@ Outputs & filters:
11 - output([b.c2]), filter(nil), rowset=16
12 - output([b.c2]), filter(nil), rowset=16
access([b.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([b.c1]), range(MIN ; MAX)always true
select /*+ use_px parallel(2) */ c2,sum(c1) from (select a.c1,b.c2 from t5 a , t5 b where a.c1=b.c2) group by c2 order by 1,2;
+------+---------+

View File

@ -179,7 +179,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN t1.col_int = 1 THEN 'a' WHEN t1.col_int = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case col_int when 1 then 'a' when 2 then 'b' else 'c' end from t1;
+-----------------------------------------------------------+
@ -199,7 +199,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN cast(t1.col_int, DECIMAL(11, 0)) = cast('1', DECIMAL(1, -1)) THEN 'a' WHEN t1.col_int = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=16
access([t1.col_int]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case col_int when '1' then 'a' when 2 then 'b' else 'c' end from t1;
+-------------------------------------------------------------+
@ -219,7 +219,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN t1.col_null = 1 THEN 'a' WHEN t1.col_null = 2 THEN 'b' ELSE 'c' END]), filter(nil), rowset=16
access([t1.col_null]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case col_null when 1 then 'a' when 2 then 'b' else 'c' end from t1;
+------------------------------------------------------------+
@ -335,10 +335,10 @@ Query Plan
===============================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN cast(t1.a, VARCHAR(1048576)) = t1.cond1 THEN '1' WHEN cast(t1.a, VARCHAR(1048576)) = cast(t1.cond2, VARCHAR(1048576)) THEN '2' ELSE
0 - output([CASE WHEN cast(t1.a, VARCHAR(1048576)) = t1.cond1 THEN '1' WHEN cast(t1.a, VARCHAR(1048576)) = cast(t1.cond2, VARCHAR(1048576)) THEN '2' ELSE
NULL END]), filter(nil), rowset=16
access([t1.a], [t1.cond1], [t1.cond2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case a when cond1 then '1' when cond2 then '2' end from t1;
+----------------------------------------------------+
@ -358,7 +358,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN cast(t1.a, VARCHAR(1048576)) = t1.cond1 THEN 'eq' ELSE 'neq' END]), filter(nil), rowset=16
access([t1.a], [t1.cond1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case a when cond1 then 'eq' else 'neq' end from t1;
+--------------------------------------------+
@ -378,7 +378,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN t1.a = t1.cond2 THEN 'eq' ELSE 'neq' END]), filter(nil), rowset=16
access([t1.a], [t1.cond2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case a when cond2 then 'eq' else 'neq' end from t1;
+--------------------------------------------+
@ -398,7 +398,7 @@ Outputs & filters:
-------------------------------------
0 - output([CASE WHEN CASE WHEN t1.a = 'cond' THEN 'eq' ELSE 'neq' END = 'eq' THEN 'ok' ELSE 'not ok' END]), filter(nil), rowset=16
access([t1.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select case case a when 'cond' then 'eq' else 'neq' end when 'eq' then 'ok' else 'not ok' end from t1;
+----------------------------------------------------------------------------------------+

View File

@ -50,7 +50,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.tinyint_t]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = tinyint_t from t limit 1;
+------------------+
@ -69,7 +69,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.smallint_t]), filter(nil), rowset=16
access([t.smallint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = smallint_t from t limit 1;
+--------------------+
@ -88,7 +88,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.mediumint_t]), filter(nil), rowset=16
access([t.mediumint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = mediumint_t from t limit 1;
+---------------------+
@ -107,7 +107,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.int32_t]), filter(nil), rowset=16
access([t.int32_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = int32_t from t limit 1;
+-----------------+
@ -126,7 +126,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.bigint_t]), filter(nil), rowset=16
access([t.bigint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = bigint_t from t limit 1;
+------------------+
@ -145,7 +145,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.utinyint_t]), filter(nil), rowset=16
access([t.utinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = utinyint_t from t limit 1;
+-------------------+
@ -164,7 +164,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.usmallint_t]), filter(nil), rowset=16
access([t.usmallint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = usmallint_t from t limit 1;
+---------------------+
@ -183,7 +183,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.umedium_t]), filter(nil), rowset=16
access([t.umedium_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = umedium_t from t limit 1;
+-------------------+
@ -202,7 +202,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.uint32_t]), filter(nil), rowset=16
access([t.uint32_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = uint32_t from t limit 1;
+------------------+
@ -221,7 +221,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.ubigint_t]), filter(nil), rowset=16
access([t.ubigint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = ubigint_t from t limit 1;
+-------------------+
@ -240,7 +240,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.float_t]), filter(nil), rowset=16
access([t.float_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = float_t from t limit 1;
+----------------+
@ -259,7 +259,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.ufloat_t]), filter(nil), rowset=16
access([t.ufloat_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = ufloat_t from t limit 1;
+------------------+
@ -278,7 +278,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.double_t]), filter(nil), rowset=16
access([t.double_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = double_t from t limit 1;
+-----------------+
@ -297,7 +297,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.udouble_t]), filter(nil), rowset=16
access([t.udouble_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = udouble_t from t limit 1;
+-------------------+
@ -316,7 +316,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.number_t]), filter(nil), rowset=16
access([t.number_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = number_t from t limit 1;
+-----------------+
@ -335,7 +335,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.unumber_t]), filter(nil), rowset=16
access([t.unumber_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = unumber_t from t limit 1;
+-------------------+
@ -354,7 +354,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.datetime_t]), filter(nil), rowset=16
access([t.datetime_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = datetime_t from t limit 1;
+-------------------+
@ -373,7 +373,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.timestamp_t]), filter(nil), rowset=16
access([t.timestamp_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = timestamp_t from t limit 1;
+---------------------+
@ -392,7 +392,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.date_t]), filter(nil), rowset=16
access([t.date_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = date_t from t limit 1;
+----------------+
@ -411,7 +411,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.time_t]), filter(nil), rowset=16
access([t.time_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = time_t from t limit 1;
+----------------+
@ -430,7 +430,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.year_t]), filter(nil), rowset=16
access([t.year_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = year_t from t limit 1;
+----------------+
@ -449,7 +449,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.varchar_t]), filter(nil), rowset=16
access([t.varchar_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = varchar_t from t limit 1;
+------------------+
@ -468,7 +468,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.char_t]), filter(nil), rowset=16
access([t.char_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = char_t from t limit 1;
+----------------+
@ -487,7 +487,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.tinytext_t]), filter(nil), rowset=16
access([t.tinytext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = tinytext_t from t limit 1;
+--------------------+
@ -506,7 +506,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.mediumtext_t]), filter(nil)
access([t.mediumtext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = mediumtext_t from t limit 1;
+----------------------+
@ -525,7 +525,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.longtext_t]), filter(nil)
access([t.longtext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = longtext_t from t limit 1;
+--------------------+
@ -544,7 +544,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.bit_t]), filter(nil), rowset=16
access([t.bit_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = bit_t from t limit 1;
+--------------+
@ -563,7 +563,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.enum_t]), filter(nil), rowset=16
access([t.enum_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = enum_t from t limit 1;
+----------------+
@ -582,7 +582,7 @@ Outputs & filters:
-------------------------------------
0 - output([NULL = t.set_t]), filter(nil), rowset=16
access([t.set_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select NULL = set_t from t limit 1;
+---------------+
@ -602,7 +602,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.tinyint_t]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = tinyint_t from t limit 1;
+-----------------------+
@ -621,7 +621,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.smallint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.smallint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = smallint_t from t limit 1;
+-------------------------+
@ -640,7 +640,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.mediumint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.mediumint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = mediumint_t from t limit 1;
+--------------------------+
@ -659,7 +659,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.int32_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.int32_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = int32_t from t limit 1;
+----------------------+
@ -678,7 +678,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.bigint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.bigint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = bigint_t from t limit 1;
+-----------------------+
@ -697,7 +697,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.utinyint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.utinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = utinyint_t from t limit 1;
+------------------------+
@ -716,7 +716,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.usmallint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.usmallint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = usmallint_t from t limit 1;
+--------------------------+
@ -735,7 +735,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.umedium_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.umedium_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = umedium_t from t limit 1;
+------------------------+
@ -754,7 +754,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.uint32_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.uint32_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = uint32_t from t limit 1;
+-----------------------+
@ -773,7 +773,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.ubigint_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.ubigint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = ubigint_t from t limit 1;
+------------------------+
@ -792,7 +792,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DOUBLE(-1, -1)) = cast(t.float_t, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.float_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = float_t from t limit 1;
+---------------------+
@ -811,7 +811,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DOUBLE(-1, -1)) = cast(t.ufloat_t, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.ufloat_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = ufloat_t from t limit 1;
+-----------------------+
@ -830,7 +830,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DOUBLE(-1, -1)) = t.double_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.double_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = double_t from t limit 1;
+----------------------+
@ -849,7 +849,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DOUBLE(-1, -1)) = cast(t.udouble_t, DOUBLE(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.udouble_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = udouble_t from t limit 1;
+------------------------+
@ -868,7 +868,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = t.number_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.number_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = number_t from t limit 1;
+----------------------+
@ -887,7 +887,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.unumber_t, DECIMAL(10, 0))]), filter(nil), rowset=16
access([t.tinyint_t], [t.unumber_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = unumber_t from t limit 1;
+------------------------+
@ -906,7 +906,7 @@ Outputs & filters:
-------------------------------------
0 - output([INTERNAL_FUNCTION(t.tinyint_t, 110, 17) = t.datetime_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.datetime_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = datetime_t from t limit 1;
+------------------------+
@ -925,7 +925,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, TIMESTAMP(-1, -1)) = t.timestamp_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.timestamp_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = timestamp_t from t limit 1;
+--------------------------+
@ -944,7 +944,7 @@ Outputs & filters:
-------------------------------------
0 - output([INTERNAL_FUNCTION(t.tinyint_t, 110, 19) = t.date_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.date_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = date_t from t limit 1;
+---------------------+
@ -963,7 +963,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, TIME(-1, -1)) = t.time_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.time_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = time_t from t limit 1;
+---------------------+
@ -982,7 +982,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.year_t, DECIMAL(4, 0))]), filter(nil), rowset=16
access([t.tinyint_t], [t.year_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = year_t from t limit 1;
+---------------------+
@ -1001,7 +1001,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.varchar_t, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.varchar_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = varchar_t from t limit 1;
+-----------------------+
@ -1020,7 +1020,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.char_t, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.char_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = char_t from t limit 1;
+---------------------+
@ -1039,7 +1039,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.tinytext_t, DECIMAL(-1, -1))]), filter(nil), rowset=16
access([t.tinyint_t], [t.tinytext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = tinytext_t from t limit 1;
+-------------------------+
@ -1058,7 +1058,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.mediumtext_t, DECIMAL(-1, -1))]), filter(nil)
access([t.tinyint_t], [t.mediumtext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = mediumtext_t from t limit 1;
+---------------------------+
@ -1077,7 +1077,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.longtext_t, DECIMAL(-1, -1))]), filter(nil)
access([t.tinyint_t], [t.longtext_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = longtext_t from t limit 1;
+-------------------------+
@ -1096,7 +1096,7 @@ Outputs & filters:
-------------------------------------
0 - output([cast(t.tinyint_t, DECIMAL(4, 0)) = cast(t.bit_t, DECIMAL(1, 0))]), filter(nil), rowset=16
access([t.tinyint_t], [t.bit_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = bit_t from t limit 1;
+-------------------+
@ -1115,7 +1115,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.enum_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.enum_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = enum_t from t limit 1;
+---------------------+
@ -1134,7 +1134,7 @@ Outputs & filters:
-------------------------------------
0 - output([t.tinyint_t = t.set_t]), filter(nil), rowset=16
access([t.tinyint_t], [t.set_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select tinyint_t = set_t from t limit 1;
+--------------------+
@ -1365,7 +1365,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) = (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) = (1, tinyint_t) from t limit 1;
+-------------------------+
@ -1384,7 +1384,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) = (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) = (2, tinyint_t) from t limit 1;
+-------------------------+
@ -1404,7 +1404,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) < (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) < (1, tinyint_t) from t limit 1;
+-------------------------+
@ -1423,7 +1423,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) < (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) < (2, tinyint_t) from t limit 1;
+-------------------------+
@ -1443,7 +1443,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) <= (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) <= (1, tinyint_t) from t limit 1;
+--------------------------+
@ -1462,7 +1462,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) <= (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) <= (2, tinyint_t) from t limit 1;
+--------------------------+
@ -1482,7 +1482,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) > (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) > (1, tinyint_t) from t limit 1;
+-------------------------+
@ -1501,7 +1501,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) > (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) > (2, tinyint_t) from t limit 1;
+-------------------------+
@ -1521,7 +1521,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) >= (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) >= (1, tinyint_t) from t limit 1;
+--------------------------+
@ -1540,7 +1540,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) >= (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) >= (2, tinyint_t) from t limit 1;
+--------------------------+
@ -1560,7 +1560,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) != (1, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) != (1, tinyint_t) from t limit 1;
+--------------------------+
@ -1579,7 +1579,7 @@ Outputs & filters:
-------------------------------------
0 - output([(1, 1) != (2, t.tinyint_t)]), filter(nil), rowset=16
access([t.tinyint_t]), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t.__pk_increment]), range(MIN ; MAX)always true
select (1, 1) != (2, tinyint_t) from t limit 1;
+--------------------------+

View File

@ -32,7 +32,7 @@ Outputs & filters:
distinct([t1.c2], [t1.c1])
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, sum(c1) from (select distinct c2, c1 from t1) x group by c2;
+------+---------+
@ -63,7 +63,7 @@ Outputs & filters:
distinct([t1.c2], [t1.c1])
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, sum(c1 + c2) from (select distinct c2, c1 from t1) x group by c2;
+------+--------------+
@ -94,7 +94,7 @@ Outputs & filters:
distinct([t1.c2], [t1.c1])
3 - output([t1.c2], [t1.c1]), filter(nil), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select c2, sum(c1 + c2), max(c3) from (select c1, c2, c1 + 2 as c3 from (select distinct c2, c1 from t1) x ) y group by c2;
+------+--------------+---------+
@ -116,7 +116,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([t1.c2 = 1]), rowset=16
access([t1.c2], [t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select * from t1 where c2 in (select 1 from t1);
+------+------+

View File

@ -34,7 +34,7 @@ Outputs & filters:
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5], [t1.c6], [t1.c7], [t1.c8], [t1.c9], [t1.c10], [t1.c11], [t1.c12], [t1.c13], [t1.c14], [t1.c15],
[t1.c16], [t1.c17], [t1.c18], [t1.c19], [t1.c20], [t1.c21], [t1.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1]), range(MIN ; MAX)always true
select * from t1;
+----+------+------+------+------+------+------+------+------+------+------+------+--------+-------+---------+--------+------+------+---------------------+---------------------+------------+---------+
@ -166,7 +166,7 @@ select * from t2;
drop table t1;
drop table t2;
bug:
bug:
drop table if exists t2;
create table t2 (c1 int primary key, c2 int) partition by hash(c1) partitions 3;
insert into t2 select -127,30 from dual;

View File

@ -29,7 +29,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(MIN,MIN ; MAX,MAX)always true
select * from t1;
+----+----+------+------+------------+
@ -54,7 +54,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(MIN,MIN ; MAX,MAX)always true
select * from t1 order by c1 desc, c2 desc;
+----+----+------+------+------------+
@ -79,7 +79,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c1 + t1.c2 < cast(10, DECIMAL(2, 0))]), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.c1], [t1.c2]), range(MIN,MIN ; MAX,MAX)always true
select * from t1 where c1 + c2 < 10;
+----+----+------+------+------------+
@ -101,7 +101,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
limit(2), offset(nil), is_index_back=false, is_global_index=false,
limit(2), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(MIN,MIN ; MAX,MAX)always true
select * from t1 limit 2;
+----+----+------+------+------------+
@ -121,8 +121,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(5,MIN ; 5,MAX),
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(5,MIN ; 5,MAX),
range_cond([t1.c1 = cast(5, DECIMAL(1, 0))])
select * from t1 where c1 = 5;
+----+----+------+------+------------+
@ -142,8 +142,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(5,MIN ; 5,MAX), (7,MIN ; 7,MAX),
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range(5,MIN ; 5,MAX), (7,MIN ; 7,MAX),
range_cond([t1.c1 = cast(5, DECIMAL(1, 0)) OR t1.c1 = cast(7, DECIMAL(1, 0))])
select * from t1 where c1 = 5 or c1 = 7;
+----+----+------+------+------------+
@ -165,8 +165,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range[2,4 ; 2,4], [7,5 ; 7,5], [8,7 ; 8,7],
is_index_back=false, is_global_index=false,
range_key([t1.c1], [t1.c2]), range[2,4 ; 2,4], [7,5 ; 7,5], [8,7 ; 8,7],
range_cond([(T_OP_OR, t1.c1 = cast(2, DECIMAL(1, 0)) AND t1.c2 = cast(4, DECIMAL(1, 0)), t1.c1 = cast(7, DECIMAL(1, 0)) AND t1.c2 = cast(5, DECIMAL(1,
0)), t1.c1 = cast(8, DECIMAL(1, 0)) AND t1.c2 = cast(7, DECIMAL(1, 0)))])
select * from t1 where (c1 = 2 and c2 = 4) or (c1 = 7 and c2 = 5) or (c1 = 8 and c2 = 7);
@ -186,11 +186,11 @@ Query Plan
==================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c1 + cast(cast(2, DECIMAL(1, 0)), DECIMAL(10, 0)) < cast(10, DECIMAL(2, 0))], [t1.c4
0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c1 + cast(cast(2, DECIMAL(1, 0)), DECIMAL(10, 0)) < cast(10, DECIMAL(2, 0))], [t1.c4
> t1.c3]), rowset=16
access([t1.c1], [t1.c2], [t1.c4], [t1.c3], [t1.c5]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[true,false],
range_key([t1.c2], [t1.c1]), range(2,MIN ; 2,MAX),
is_index_back=true, is_global_index=false, filter_before_indexback[true,false],
range_key([t1.c2], [t1.c1]), range(2,MIN ; 2,MAX),
range_cond([t1.c2 = cast(2, DECIMAL(1, 0))])
select * from t1 where c2 = 2 and c1 + c2 < 10 and c4 > c3;
+----+----+------+------+------------+
@ -211,8 +211,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
range_key([t1.c2], [t1.c1]), range(4,MAX ; MAX,MAX),
is_index_back=false, is_global_index=false,
range_key([t1.c2], [t1.c1]), range(4,MAX ; MAX,MAX),
range_cond([t1.c2 > cast(4, DECIMAL(1, 0))])
select c1, c2 from t1 where c2 > 4;
+----+----+
@ -256,8 +256,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c1 < 4]), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[true],
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,4),
is_index_back=true, is_global_index=false, filter_before_indexback[true],
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,4),
range_cond([t1.c2 > 1])
select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c1 < 4;
+----+------+------+
@ -280,8 +280,8 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c3 < 4]), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
range_cond([t1.c2 > 1])
select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c2 > 1 and c3 < 4;
+----+------+------+
@ -302,7 +302,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c3 != 1]), rowset=16
access([t1.c1], [t1.c3], [t1.c2]), partitions(p0)
limit(2), offset(nil), is_index_back=true, is_global_index=false, filter_before_indexback[false],
limit(2), offset(nil), is_index_back=true, is_global_index=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
select /*+index(t1 idx)*/ c1, c2, c3 from t1 where c3 != 1 limit 2;
+----+------+------+

View File

@ -92,7 +92,7 @@ while ($cnt <= 29)
inc $cnt;
}
#verify bugfix of
#verify bugfix of
--disable_warnings
drop table if exists t1;
--enable_warnings

View File

@ -168,7 +168,7 @@ while ($left <= $cnt)
select case when 'a' = 'a' then 'branch1' when 'b' then c1 else c2 end from t1;
--echo // 结果应该为2,且when expr上面都应该 有bool expr
--echo // TODO: 没有出现预期的warning
--echo // cast的bug:
--echo // cast的bug:
select case when 'a' then 'str' when 'b' then c1 else c2 end from t1;
--echo // 结果应该为'branch2',且if表达式会被转为case表达式,但是不应该有bool expr,因为判断本身就带有布尔语义
select if ('a' = 'b', c1, 'branch2') from t1;

View File

@ -29,7 +29,7 @@ select char_length(c2) from t1;
select char_length(c3) from t1;
select char_length(c4) from t1;
select char_length(c5) from t1;
# bug here:
# bug here:
# select char_length(c6) from t1;

View File

@ -162,7 +162,7 @@ drop table t1;
--echo ##bugfix:
--echo ##bugfix:
create table t1 (pk double) PARTITION BY key (pk) partitions 1;
insert into t1 values( NULLIF( 100.2345, 1 ));
select * from t1;
@ -189,7 +189,7 @@ from
--enable_result_log
##bugfix:
##bugfix:
create table t1 (pk int);
insert into t1 values (1);
select pk, ( NULLIF( 14152561829011783680, INSTR( TRIM( SUBSTRING( HEX( SUBSTRING( 'a',1, LEAST( 218, 20 ) ) ) , 1 , LEAST( 218, 20 ) ) ), 'oh' ) ) ) s , INSTR( TRIM( SUBSTRING( HEX( SUBSTRING( 'a',1, LEAST( 218, 20 ) ) ) , 1 , LEAST( 218, 20 ) ) ), 'oh' ) s2 from t1;
@ -210,7 +210,7 @@ desc t2;
select * from t2;
drop table t1,t2;
##
##
select collation(nullif('a', binary 'b'));
## test nullif with enumset parameter.

View File

@ -73,7 +73,7 @@ while ($left <= $cnt)
--sleep 2
--explain_protocol 0
set timestamp = 1600000000;
--echo ##bugfix:
--echo ##bugfix:
select ifnull(null, utc_time(4));
--disable_warnings

View File

@ -46,7 +46,7 @@ select substring_index(1.414, 1, 2);
--disable_warnings
select c1, substring_index("a,b,c,d", ",", c1), c2, substring_index("a,b,c,d", ",", c2), c3, substring_index("a,b,c,d", ",", c3), c4, substring_index("a,b,c,d", ",", c4) from t1;
--echo //for
--echo //for
drop table if exists t2, t3;
create table t2(c1 varchar(20));
create table t3(c1 varchar(20));

View File

@ -37,7 +37,7 @@ alter system flush plan cache global;
set @@ob_enable_plan_cache = 0;
let $cnt=22;
let $left=1;
## bug:
## bug:
## timestampadd(second, c14/c16, c19/c20)四种情况结果有误
while ($left <= $cnt)
{

View File

@ -51,7 +51,7 @@ select concat('[', trim(both c2 from c1), ']') x from t1;
drop table if exists t1;
drop view if exists v1;
--enable_warnings
--echo // bug:
--echo // bug:
create view v1 as select nullif(trim(repeat('abc', 1+1)), 'a');
desc v1;
select * from v1;

View File

@ -66,7 +66,7 @@ select truncate(1.11, c_null) from t1;
select truncate(c_null, -1) from t1;
## truncate(c20, c16) 结果与mysql不一致,cast(c16 as signed)的结果发生变化导致truncate的结果变化
## cast的结果符合预期,tuncate的结果不符合预期。bug:
## cast的结果符合预期,tuncate的结果不符合预期。bug:
let $cnt=22;
let $left=1;
while ($left <= $cnt)

View File

@ -99,7 +99,7 @@ select * from t2;
drop table t1;
drop table t2;
--echo bug:
--echo bug:
--disable_warnings
drop table if exists t2;
--enable_warnings

View File

@ -45,11 +45,11 @@ Outputs & filters:
equal_conds([t2.b = t1.a]), other_conds(nil)
1 - output([t1.a]), filter(nil), rowset=16
access([t1.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.b], [t2.a]), filter(nil), rowset=16
access([t2.b], [t2.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
select * from t2 where b in (select a from t1);
a b
@ -80,11 +80,11 @@ Outputs & filters:
equal_conds([t3.b = t1.a]), other_conds(nil)
1 - output([t1.a]), filter(nil), rowset=16
access([t1.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t3.pk1], [t3.pk2], [t3.pk3], [t3.b], [t3.a]), filter(nil), rowset=16
access([t3.pk1], [t3.pk2], [t3.pk3], [t3.b], [t3.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.pk1], [t3.pk2], [t3.pk3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
select * from t3 where b in (select a from t1);
a b pk1 pk2 pk3
@ -116,11 +116,11 @@ Outputs & filters:
equal_conds([t3.b = t0.a]), other_conds(nil)
1 - output([t0.a]), filter(nil), rowset=256
access([t0.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t0.__pk_increment]), range(MIN ; MAX)always true
2 - output([t3.pk1], [t3.pk2], [t3.b], [t3.a]), filter(nil), rowset=256
access([t3.pk1], [t3.pk2], [t3.b], [t3.a]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.pk1], [t3.pk2]), range(MIN,MIN ; MAX,MAX)always true
select * from t3 where b in (select A.a+B.a from t0 A, t0 B where B.a<5);
a b pk1 pk2
@ -153,11 +153,11 @@ Outputs & filters:
equal_conds([t1.a = t2.b]), other_conds(nil)
1 - output([t1.a], [t1.b]), filter(nil), rowset=16
access([t1.a], [t1.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.b]), filter(nil), rowset=16
access([t2.b]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.b], [t2.__pk_increment]), range(MIN,MIN ; MAX,MAX)always true
select * from t1;
a b
@ -216,18 +216,18 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
2 - output([t2.c1]), filter([cast(1, DECIMAL(1, 0)) = cast(t2.c2, DECIMAL(-1, -1))]), rowset=16
access([t2.c2], [t2.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
3 - output(nil), filter(nil), rowset=16
4 - output(nil), filter(nil), rowset=16
access(nil)
5 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t3.__pk_increment]), range(MIN ; MAX)always true
6 - output([t2.c6]), filter(nil), rowset=16
access([t2.c6]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
drop table t2, t3;
#

View File

@ -403,7 +403,7 @@ insert/**/ into pujydypf values ('ok', '20605', 'yes', 'testcase');
select /*+use_merge(t1 t2), leading(t1 t2 t3)*/ t1.hldgddm, t2.pzjzqzh, t2.pzjzdjydy, t3.pjyjydy, t3.pjyscdm from cghldinf t1 left join puzdjypf t2 on t2.pzjzqzh = t1.hldgddm left join pujydypf t3 on t2.pzjzdjydy = t3.pjyjydy and t3.pjyscdm = '01' where hldgddm = 'A100013208';
select /*+no_rewrite, use_merge(t1 t2), leading(t1 t2 t3)*/ t1.hldgddm, t2.pzjzqzh, t2.pzjzdjydy, t3.pjyjydy, t3.pjyscdm from cghldinf t1 left join puzdjypf t2 on t2.pzjzqzh = t1.hldgddm left join pujydypf t3 on t2.pzjzdjydy = t3.pjyjydy and t3.pjyscdm = '01' where hldgddm = 'A100013208';
## bug:
## bug:
--disable_warnings
drop table if exists t1, t2;
--enable_warnings

View File

@ -104,7 +104,7 @@ select * from
where rn = 1;
# mysql 8.0 window_function bug:
# aone:
# aone:
# select c_birth_month, c_birth_year, c_customer_sk, c_first_name,
#first_value(c_first_name) over (partition by c_birth_month order by c_birth_year, c_customer_sk),
# last_value(c_first_name) over (partition by c_birth_month order by c_birth_year, c_customer_sk) ,

View File

@ -178,7 +178,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
@ -279,7 +279,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select count(*) from t1) select * from cte;
@ -303,7 +303,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 > 1]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
@ -333,7 +333,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([cast(t1.c1, DOUBLE(-1, -1)) + cast('1', DOUBLE(-1, -1)) <= cast(3, DOUBLE(-1, -1))]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
@ -362,7 +362,7 @@ Outputs & filters:
group([t1.c1]), agg_func(nil)
1 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
Warnings:
Warning 1052 Column 'c1' in group statement is ambiguous
@ -397,7 +397,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 > 2]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS ( select c1, c2 from t1 where t1.c1 > 2)
@ -430,7 +430,7 @@ Outputs & filters:
sort_keys([t1.c2, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS ( select c1, c2 + 1 as c3 from t1 order by c2)
@ -467,11 +467,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
2 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
with
cte2 AS (select * from t1 left join t2 on t1.c1=t2.c21 order by t1.c1)
@ -510,12 +510,12 @@ Outputs & filters:
conds([t1.c1 = t2.c21]), nl_params_(nil), use_batch=false
1 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
3 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
@ -549,11 +549,11 @@ Outputs & filters:
equal_conds([t2.c21 = t1.c1]), other_conds(nil)
1 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte0 AS (select * from t2) select /*+ leading(t2 cte0) use_nl(cte0)*/ * from cte0, t1 where cte0.c21 = t1.c1;
@ -627,11 +627,11 @@ Outputs & filters:
0 - output([UNION([1])], [UNION([2])]), filter(nil), rowset=16
1 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c21], [t2.c22]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH cte AS
@ -681,12 +681,12 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output(nil), filter([t1.c1 IS NOT NULL]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
3 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c1 = 1]), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH cte AS
@ -718,7 +718,7 @@ Outputs & filters:
-------------------------------------
0 - output([t3.c1]), filter(nil), rowset=16
access([t3.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.c1]), range(MIN ; MAX)always true
with cte0 as (select * from t3 partition(p0)) select cte0.c1 from cte0;
@ -741,7 +741,7 @@ Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), rowset=16
access([t5.c1], [t5.c2], [t5.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t5.c1]), range(MIN ; MAX)always true
with cte as (select * from t5 partition(p0)) select * from cte;
@ -769,7 +769,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
@ -801,7 +801,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1 + 1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS ( select c1 + 1 as col1 from t1)
@ -831,7 +831,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1 + 1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS ( select c1 + 1 as col1 from t1)
@ -861,7 +861,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1 + 1 + 3]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS ( select c1 + 1 as col1 from t1)
@ -892,7 +892,7 @@ Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with
cte AS (select 1 from t1)
@ -925,7 +925,7 @@ Outputs & filters:
sort_keys([t1.c1, ASC])
1 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH cte2 AS (select c1 from t1)
select c1 from cte2 order by c1;
@ -958,11 +958,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
1 - output([t2.c21]), filter([t2.c21 IN (1, 4, 7, 11)]), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1]), filter([t1.c1 IN (1, 4, 7, 11)]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH cte2 AS (select c1 from t1)
select z1.c1 from cte2 z1, t2 where z1.c1 in (1,4,7,11) and z1.c1 = t2.c21;
@ -992,11 +992,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
1 - output([t2.c21]), filter([t2.c21 IN (1, 4, 7)]), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1]), filter([t1.c1 IN (1, 4, 7)]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 AS (SELECT c1 as abc, c2 FROM t1)
@ -1026,7 +1026,7 @@ Outputs & filters:
sort_keys([t1.c2, ASC])
1 - output([t1.c1], [t1.c2]), filter([t1.c1 IN (1, 4, 11)]), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (name1, name2) AS (select c1, c2 from t1)
@ -1057,7 +1057,7 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
1 - output(nil), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([VIEW1.count(*)]), filter(nil), rowset=16
3 - output([VIEW1.count(*)]), filter(nil), rowset=16
@ -1066,7 +1066,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
5 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select * from t1) select (select count(*) from cte) from t2;
+----------------------------+
@ -1098,11 +1098,11 @@ Outputs & filters:
equal_conds([t1.c1 = t1.c1]), other_conds(nil)
1 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte AS (select c1 from t1)
select cte.c1 from cte z1, cte where z1.c1 = cte.c1;
@ -1138,13 +1138,13 @@ Outputs & filters:
access([z1.c1])
2 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([cte.c1]), filter(nil), rowset=16
access([cte.c1])
4 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte AS (select c1 from t1)
select /*+no_rewrite()*/ cte.c1 from cte z1, cte where z1.c1 = cte.c1;
@ -1181,11 +1181,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds([t2.c21 != t1.c1])
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
with
cte1 AS( select * from t1)
@ -1216,7 +1216,7 @@ Outputs & filters:
force partition granule
3 - output([t3.c1], [t3.c2]), filter(nil), rowset=16
access([t3.c1], [t3.c2]), partitions(p[0-1])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.c1]), range(MIN ; MAX)always true
WITH cte2 AS (select * from t3)
select * from cte2 partition(p0);
@ -1246,7 +1246,7 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 AS (SELECT c1, c2 FROM t1),
@ -1278,7 +1278,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (c1)AS(select c1 from t1),
@ -1315,11 +1315,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c21], [t2.c22]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1360,11 +1360,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21], [t2.c22]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1401,11 +1401,11 @@ Outputs & filters:
equal_conds([t1.c2 = t2.c21]), other_conds(nil)
1 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1436,11 +1436,11 @@ Outputs & filters:
equal_conds([t1.c1 = t1.c1]), other_conds(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1481,12 +1481,12 @@ Outputs & filters:
conds([t1.c1 < t1.c1 + 1 * 2]), nl_params_(nil), use_batch=false
1 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
3 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1575,7 +1575,7 @@ Outputs & filters:
equal_conds([t1.c1 = VIEW1.d]), other_conds(nil)
1 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([VIEW1.d]), filter(nil), rowset=16
access([VIEW1.d])
@ -1583,18 +1583,18 @@ Outputs & filters:
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))(:0)]), init_plan_idxs_(nil), use_batch=false
4 - output([t2.c22]), filter(nil), startup_filter([:0]), rowset=16
access([t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
5 - output([UNION([1])]), filter(nil), rowset=16
limit(1), offset(nil)
6 - output([UNION([1])]), filter(nil), rowset=16
7 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
8 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1632,24 +1632,24 @@ Outputs & filters:
access([cte1.a])
2 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c22]), filter(nil), rowset=16
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))(:0)]), init_plan_idxs_(nil), use_batch=false
4 - output([t2.c22]), filter(nil), startup_filter([:0]), rowset=16
access([t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
5 - output([UNION([1])]), filter(nil), rowset=16
limit(1), offset(nil)
6 - output([UNION([1])]), filter(nil), rowset=16
7 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
8 - output([1]), filter(nil), rowset=16
access(nil), partitions(p0)
limit(1), offset(nil), is_index_back=false, is_global_index=false,
limit(1), offset(nil), is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1682,11 +1682,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds([t1.c2 != t2.c22])
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21], [t2.c22]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH
cte1 (a, b) AS (SELECT c1, c2 FROM t1),
@ -1717,11 +1717,11 @@ Outputs & filters:
0 - output([UNION([1])]), filter(nil), rowset=16
1 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH cte2 AS (select c1 from t1)
select c1 from cte2
@ -1766,11 +1766,11 @@ Outputs & filters:
access([cte2.c1])
2 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH cte2 AS (select c1 from t1)
select /*+no_rewrite()*/ c1 from cte2
@ -1810,11 +1810,11 @@ Outputs & filters:
0 - output([INTERSECT([1])], [INTERSECT([2])], [INTERSECT([3])]), filter(nil), rowset=16
1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
2 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH cte2 AS (select c1 from t1)
select * from t1 intersect (select * from t2);
@ -1854,7 +1854,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select c21 from t2)
select * from (with cte as (select c1 from t1) select * from cte) t;
@ -1883,7 +1883,7 @@ Outputs & filters:
-------------------------------------
0 - output([t2.c21]), filter(nil), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
with cte as (select c21 from t2)
select * from (with cte1 as (select c1 from t1) select * from cte) t;
@ -1920,7 +1920,7 @@ Outputs & filters:
force partition granule
3 - output([t3.c1]), filter(nil), rowset=16
access([t3.c1]), partitions(p[0-1])
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t3.c1]), range(MIN ; MAX)always true
with cte as (select c21 from t2)
select * from (with cte as (select c1 from t1) select * from (with cte as (select c1 from t3) select * from cte) cte) t;
@ -1974,11 +1974,11 @@ Outputs & filters:
equal_conds([t2.c21 = t1.c1]), other_conds(nil)
1 - output([t2.c21], [t2.c22]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH cte_outer AS (select * from t2)
select t1.*, t4.* from t1
@ -2022,11 +2022,11 @@ Outputs & filters:
equal_conds([t2.c21 = t1.c1]), other_conds(nil)
2 - output([t1.c1]), filter([t1.c1 > 1000]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t2.c21], [t2.c22]), filter([t2.c21 > 1000]), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
WITH cte_outer AS (select * from t2)
select t3.*, t4.* from
@ -2052,7 +2052,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 > 1000]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select * from (WITH t2 AS (select c1 from t1) select c1 from t2 where t2.c1 > 1000) t;
+------+
@ -2076,11 +2076,11 @@ Outputs & filters:
exec_params_(nil), onetime_exprs_([subquery(1)(:0)]), init_plan_idxs_(nil), use_batch=false
1 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1]), filter([t1.c1 > 1000]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select ( WITH cte AS (select c1 from t1) select c1 from cte where cte.c1 > 1000), t2.* from t2;
+---------------------------------------------------------------------------+------+------+------+
@ -2107,7 +2107,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 > 0], [t1.c1 > 1000]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
is_index_back=false, is_global_index=false, filter_before_indexback[false,false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select t3.* from ( WITH cte AS (select c1 from t1) select c1 from cte where cte.c1 > 1000) t3 where t3.c1 > 0;
+------+
@ -2138,11 +2138,11 @@ Outputs & filters:
equal_conds([t1.c1 = t1.c1]), other_conds(nil)
2 - output([t1.c1]), filter([t1.c1 > 1000]), rowset=16
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([t1.c1], [t1.c2]), filter([t1.c1 > 1000]), rowset=16
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
select t3.*, t4.* from
(WITH cte AS (select c1 from t1) select c1 from cte where cte.c1 > 1000) t3
@ -2171,11 +2171,11 @@ Outputs & filters:
equal_conds([t2.c21 = t1.c1]), other_conds(nil)
1 - output([t2.c21], [t2.c22], [t2.c23]), filter(nil), rowset=16
access([t2.c21], [t2.c22], [t2.c23]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select * from t1) select * from (with cte as (select * from t2) select * from cte) t3, cte where t3.c21 = cte.c1;
+------+------+------+------+------+------+
@ -2300,7 +2300,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil), rowset=16
access(nil), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select count(*) as k from t1) select * from cte where k = 1;
+------+
@ -2325,7 +2325,7 @@ Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
WITH
cte0 AS ( select * from t1)
@ -2364,7 +2364,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.c1], [ANONYMOUS_VIEW1.c2], [ANONYMOUS_VIEW1.c3])
2 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=16
access([t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
insert into t1 with cte as (select * from t1) SELECT * FROM cte;
@ -2387,7 +2387,7 @@ Outputs & filters:
access([ANONYMOUS_VIEW1.a], [ANONYMOUS_VIEW1.b], [ANONYMOUS_VIEW1.a])
2 - output([t2.c21], [t2.c22], [t2.c21]), filter(nil), rowset=16
access([t2.c21], [t2.c22]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
insert into t1 with cte (a,b,c) as (select c21,c22,c23 from t2) select a,b,a from cte;
select * from t1;
@ -2442,7 +2442,7 @@ Outputs & filters:
conds(nil), nl_params_(nil), use_batch=false
2 - output([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), filter([t1.c2 = 2]), rowset=16
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
3 - output([cte.count(*)+99]), filter(nil), rowset=16
4 - output([cte.count(*)+99]), filter(nil), rowset=16
@ -2451,7 +2451,7 @@ Outputs & filters:
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
6 - output([T_FUN_COUNT(*)]), filter([t2.c21 = 1]), rowset=16
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
update t1 set c1=(with cte as (select count(*)+99 from t2 where c21=1) select * from cte) where c2 = 2;
select * from t1;
@ -2501,7 +2501,7 @@ Outputs & filters:
sort_keys([t1.c1, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), rowset=256
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte as (select c1, max(c2), CASE max(c2) when 4 then 4 when 43 then 43 else 1 end from t1 group by c1 order by c1) select * from cte;
+------+---------+-------------------------------------------------------+
@ -2537,11 +2537,11 @@ Outputs & filters:
equal_conds([t1.c1 = t2.c21]), other_conds(nil)
3 - output([t2.c21]), filter(nil), rowset=256
access([t2.c21]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t2.__pk_increment]), range(MIN ; MAX)always true
4 - output([t1.c1], [t1.c2]), filter(nil), rowset=256
access([t1.c1], [t1.c2]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
with cte(c1, c2) as (select t1.c1, t1.c2 from t1, t2 where t1.c1 = t2.c21) select c1, max(c2), CASE max(c2) when 4 then 4 when 43 then 43 else 1 end from cte group by c1 order by c1;
+------+---------+-------------------------------------------------------+
@ -2582,11 +2582,11 @@ Outputs & filters:
group(nil), agg_func([T_FUN_MAX(T_FUN_MAX(t1.c1))])
4 - output([T_FUN_MAX(t1.c1)]), filter(nil), rowset=256
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
5 - output([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=256
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
delete from t1 where c1 = ( with cte as (select max( c1 ) from ( select * from t1 )) select * from cte);
@ -2614,11 +2614,11 @@ Outputs & filters:
group(nil), agg_func([T_FUN_MAX(T_FUN_MAX(t1.c1))])
4 - output([T_FUN_MAX(t1.c1)]), filter(nil), rowset=256
access([t1.c1]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
5 - output([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), filter(nil), rowset=256
access([t1.__pk_increment], [t1.c1], [t1.c2], [t1.c3]), partitions(p0)
is_index_back=false, is_global_index=false,
is_index_back=false, is_global_index=false,
range_key([t1.__pk_increment]), range(MIN ; MAX)always true
delete from t1 where c1 = ( with cte (a) as (select max( c1 ) from t1 ) select * from cte);
@ -2632,11 +2632,11 @@ with cte as (select * from t1) select 1 from dual;
| 1 |
+---+
with recursive cte1 as
with recursive cte1 as
(
select 1 as c1, 2 as c2, 3 as c3, 4 as c4, 5 as c5, 6 as c6, 7 as c7, 8 as c8, 9 as c9, 10 as c10, 11 as c11, 12 as c12
union all
select c1+1,c2+1,c3+1,c4+1,c5+1,c6+1,c7+1,c8+1,c9+1,c10+1, c11+1, c12+1 from cte1 where c1 < 10
select c1+1,c2+1,c3+1,c4+1,c5+1,c6+1,c7+1,c8+1,c9+1,c10+1, c11+1, c12+1 from cte1 where c1 < 10
)
select * from cte1;
+------+------+------+------+------+------+------+------+------+------+------+------+

View File

@ -1844,22 +1844,22 @@ Outputs & filters:
4 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
5 - output([1], [1], [1]), filter(nil)
values({1, 1, 1})
6 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
6 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
1)]), filter([cte1.a < 10]), rowset=256
access([cte1.a], [cte1.b], [cte1.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
7 - output([column_conv(BIGINT,PS:(1,0),NULL,cte2.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.c +
7 - output([column_conv(BIGINT,PS:(1,0),NULL,cte2.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.c +
1)]), filter([cte2.a < 10]), rowset=256
access([cte2.a], [cte2.b], [cte2.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
8 - output([column_conv(BIGINT,PS:(1,0),NULL,cte3.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte3.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte3.c +
8 - output([column_conv(BIGINT,PS:(1,0),NULL,cte3.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte3.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte3.c +
1)]), filter(nil), rowset=256
conds([cte3.a < cte2.b]), nl_params_(nil), use_batch=false
9 - output([cte3.a], [cte3.b], [cte3.c]), filter([cte3.a < 10]), rowset=256
access([cte3.a], [cte3.b], [cte3.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
10 - output([cte2.b]), filter(nil), rowset=256
11 - output([cte2.b]), filter([cte2.a < 3]), rowset=256
@ -1868,15 +1868,15 @@ Outputs & filters:
13 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
14 - output([1], [1], [1]), filter(nil)
values({1, 1, 1})
15 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
15 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
1)]), filter([cte1.a < 10]), rowset=256
access([cte1.a], [cte1.b], [cte1.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
16 - output([column_conv(BIGINT,PS:(1,0),NULL,cte2.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.c +
16 - output([column_conv(BIGINT,PS:(1,0),NULL,cte2.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte2.c +
1)]), filter([cte2.a < 10]), rowset=256
access([cte2.a], [cte2.b], [cte2.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
17 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
18 - output([cte1.a], [cte1.b]), filter(nil), rowset=256
@ -1884,10 +1884,10 @@ Outputs & filters:
19 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), rowset=256
20 - output([1], [1], [1]), filter(nil)
values({1, 1, 1})
21 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
21 - output([column_conv(BIGINT,PS:(1,0),NULL,cte1.a + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.b + 1)], [column_conv(BIGINT,PS:(1,0),NULL,cte1.c +
1)]), filter([cte1.a < 10]), rowset=256
access([cte1.a], [cte1.b], [cte1.c])
is_index_back=false, is_global_index=false, filter_before_indexback[false],
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key(nil), range(MIN ; MAX)
set ob_query_timeout = 100000000;

View File

@ -755,11 +755,11 @@ delete from t1 where c1 = ( with cte (a) as (select max( c1 ) from t1 ) select *
--echo ##############################
with cte as (select * from t1) select 1 from dual;
with recursive cte1 as
with recursive cte1 as
(
select 1 as c1, 2 as c2, 3 as c3, 4 as c4, 5 as c5, 6 as c6, 7 as c7, 8 as c8, 9 as c9, 10 as c10, 11 as c11, 12 as c12
union all
select c1+1,c2+1,c3+1,c4+1,c5+1,c6+1,c7+1,c8+1,c9+1,c10+1, c11+1, c12+1 from cte1 where c1 < 10
select c1+1,c2+1,c3+1,c4+1,c5+1,c6+1,c7+1,c8+1,c9+1,c10+1, c11+1, c12+1 from cte1 where c1 < 10
)
select * from cte1;