问题现象
对于 SQL 中包含聚合函数的场景,优化器会尝试对聚合函数进行分组上拉(Group By Pullup)的改写, 目的是将 Group By 操作延迟到 Join 操作之后执行。触发这种改写通常是因为 Join 之后中间结果集会变小,可以减少 Group By 操作的代价。
形如下面的 SQL,对于子查询中的聚合函数 sum(),存在相关子查询 rp.AMOUNT + (SELECT sum(lixi.amount) FROM PTL_RECE_POSITION lixi WHERE prp.PORTFOLIO_ID = lixi.PORTFOLIO_ID)。 在 OceanBase 数据库 V3.x 的场景下, 含聚合函数且聚合函数中有相关子查询的场景下,优化器在对于 sum() 整体进行的上拉改写,改写过程中,替换子查询中的表达式存在问题,导致计划生成失败。
SELECT aa.amount
FROM (
SELECT sum(
prp.AMOUNT + (
SELECT sum(lixi.amount)
FROM PTL_RECE_POSITION lixi
WHERE prp.PORTFOLIO_ID = lixi.PORTFOLIO_ID
)
) amount,
prp.SEC_ACCT_ID secAcctId
FROM PTL_RECE_POSITION prp
where prp.HODING_TYPE = '03'
AND prp.REC_TYPE IN ('01', '02')
GROUP BY prp.SEC_ACCT_ID
) aa
LEFT JOIN PTL_RECE_POSITION_FLOW bb on bb.SEC_ACCT_ID = aa.secAcctId;
计划生成失败,OBServer 日志报错如下。
[2024-12-30 10:36:54.738752] WDIAG [SQL.OPT] ob_logical_operator.cpp:2131 [2613054][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=8] [dc=0][errcode=-4000] failed to produce all required expressions(operator="SUBPLAN FILTER", expr_producers=[{consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:16, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"deptcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:18, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"projcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:19, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"typecd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:20, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"issuno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:17, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"acctdp", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:16, producer_branch:6, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[2], table_id:18446744073709551581, column_id:18, database_name:"nxyfi", table_name:"abd", synonym_name:"", synonym_db_name:"", column_name:"TOITEM", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:16, producer_branch:6, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:16, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[2], table_id:18446744073709551581, column_id:19, database_name:"nxyfi", table_name:"abd", synonym_name:"", synonym_db_name:"", column_name:"ATDEPT", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:45, producer_branch:0, is_shared_:false, expr:{item_type:"T_FUN_SUM", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:19, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}, expr_info:["IS_AGG", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_AGG", "CNT_FUNC"], rel_id:[1], expr_level:0, expr_levels:[0], children:[{item_type:"T_OP_ADD", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:19, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_FUNC"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_FUN_SYS_IFNULL", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_FUNC", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_FUNC"], rel_id:[1], expr_levels:[0], func:"ifnull", children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:18, scale:2}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:25, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"apcd.ESTIEA", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551615}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:0, precision:18, scale:2}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":55}}], enum_set_values:[]}, {item_type:"T_FUN_SYS_IFNULL", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:12, precision:11, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_FUNC", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_FUNC"], rel_id:[1], expr_levels:[0], func:"ifnull", children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:11, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:26, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"apcd.ADDEAM", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551615}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:0, precision:11, scale:0}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":56}}], enum_set_values:[]}]}], distinct:false, order_by:[], separator_param_expr:null, udf_meta:{tenant_id:18446744073709551615, name:"", ret:0, dl:"", type:0}, linear_inter_expr:null, is_nested_aggr:false, pl_agg_udf_expr:null}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:18, scale:2}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:25, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"apcd.ESTIEA", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551615}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:11, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:26, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"apcd.ADDEAM", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551615}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_QUERY", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}, expr_info:["IS_SUB_QUERY", "CNT_SUB_QUERY"], rel_id:[1, 2], id:1, expr_level:0, expr_levels:[0, 1], output_column:1, is_set:false, is_cursor:false, column_types:[{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}], enum_set_values:[]}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_QUERY", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}, expr_info:["IS_SUB_QUERY", "CNT_SUB_QUERY"], rel_id:[1, 2], id:2, expr_level:0, expr_levels:[0, 1], output_column:1, is_set:false, is_cursor:false, column_types:[{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}], enum_set_values:[]}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_QUERY", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}, expr_info:["IS_SUB_QUERY", "CNT_SUB_QUERY"], rel_id:[1, 2], id:3, expr_level:0, expr_levels:[0, 1], output_column:1, is_set:false, is_cursor:false, column_types:[{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:20, precision:18, scale:2}, flag:0, calc_type:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}}], enum_set_values:[]}}, {consumer_id:67, producer_id:45, producer_branch:0, is_shared_:false, expr:{item_type:"T_FUN_SUM", result_type:{meta:{type:"DECIMAL", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:1, precision:1, scale:0}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_AGG", "CNT_CONST", "CNT_PARAM", "CNT_AGG"], rel_id:[], expr_level:0, expr_levels:[0], children:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"BIGINT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:1, precision:1, scale:0}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":40}}], distinct:false, order_by:[], separator_param_expr:null, udf_meta:{tenant_id:18446744073709551615, name:"", ret:0, dl:"", type:0}, linear_inter_expr:null, is_nested_aggr:false, pl_agg_udf_expr:null}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:30, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:21, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"billno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"CHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:8, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:22, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"mkdate", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:16, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:23, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"mkdept", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:15, producer_branch:0, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:26, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:24, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"banjdt", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551615}}, {consumer_id:67, producer_id:18, producer_branch:7, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[3], table_id:18446744073709551580, column_id:21, database_name:"nxyfi", table_name:"pd1", synonym_name:"", synonym_db_name:"", column_name:"DEPTNAME", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:20, producer_branch:8, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[4], table_id:18446744073709551579, column_id:21, database_name:"nxyfi", table_name:"pd2", synonym_name:"", synonym_db_name:"", column_name:"DEPTNAME", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:22, producer_branch:9, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[5], table_id:18446744073709551578, column_id:21, database_name:"nxyfi", table_name:"pd3", synonym_name:"", synonym_db_name:"", column_name:"DEPTNAME", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:24, producer_branch:10, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[6], table_id:18446744073709551577, column_id:21, database_name:"nxyfi", table_name:"pd4", synonym_name:"", synonym_db_name:"", column_name:"DEPTNAME", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:16, producer_branch:6, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[2], table_id:18446744073709551581, column_id:17, database_name:"nxyfi", table_name:"abd", synonym_name:"", synonym_db_name:"", column_name:"TYPENA", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:26, producer_branch:11, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:256, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[7], table_id:18446744073709551576, column_id:17, database_name:"nxyfi", table_name:"app", synonym_name:"", synonym_db_name:"", column_name:"PROJNA", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:28, producer_branch:12, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:200, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[8], table_id:18446744073709551575, column_id:19, database_name:"nxyfi", table_name:"ci", synonym_name:"", synonym_db_name:"", column_name:"ITEMNA", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:30, producer_branch:13, is_shared_:false, expr:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:100, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[9], table_id:18446744073709551574, column_id:17, database_name:"nxyfi", table_name:"bi", synonym_name:"", synonym_db_name:"", column_name:"ISSUNA", expr_level:0, expr_levels:[0], column_flags:68719476736, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"DATE", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:-1, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":49}}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_OP_CNN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:78, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_FUNC", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_FUNC"], rel_id:[1], expr_levels:[0], func:"concat", children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:16, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"deptcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:1, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":0}}, {item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:18, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"projcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:1, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":1}}, {item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:19, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"typecd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:1, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":2}}, {item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:20, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"issuno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}], enum_set_values:[]}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_OP_CASE", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], arg_case:null, default:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:16, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"deptcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, when:[{item_type:"T_OP_OR", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_OR", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_OP_EQ", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "IS_SIMPLE_COND"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:16, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"deptcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:0, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":3}}]}, {item_type:"T_OP_IS", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["IS_IS_EXPR", "CNT_CONST", "CNT_COLUMN", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:16, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"deptcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_NULL", result_type:{meta:{type:"NULL", collation:"binary", coercibility:"IGNORABLE"}, accuracy:{length:0, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"NULL":"NULL"}}, {item_type:"T_BOOL", result_type:{meta:{type:"TINYINT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"TINYINT":0}}]}]}], then:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":4}}], decode:false}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_OP_CASE", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], arg_case:null, default:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:18, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"projcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, when:[{item_type:"T_OP_OR", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_OR", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_OP_EQ", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "IS_SIMPLE_COND"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:18, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"projcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:0, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":5}}]}, {item_type:"T_OP_IS", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["IS_IS_EXPR", "CNT_CONST", "CNT_COLUMN", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:15, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:18, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"projcd", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_NULL", result_type:{meta:{type:"NULL", collation:"binary", coercibility:"IGNORABLE"}, accuracy:{length:0, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"NULL":"NULL"}}, {item_type:"T_BOOL", result_type:{meta:{type:"TINYINT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"TINYINT":0}}]}]}], then:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":6}}], decode:false}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_OP_CASE", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST_EXPR", "CNT_CONST", "CNT_PARAM"], rel_id:[], expr_levels:[], arg_case:null, default:{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":37}}, when:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":70}}], then:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":10}}], decode:false}}, {consumer_id:67, producer_id:67, producer_branch:0, is_shared_:false, expr:{item_type:"T_OP_CASE", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], arg_case:null, default:{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:20, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"issuno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, when:[{item_type:"T_OP_OR", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_OR", "CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "CNT_OR", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_OP_EQ", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["CNT_CONST", "CNT_COLUMN", "CNT_PARAM", "IS_SIMPLE_COND"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:20, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"issuno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:0, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":11}}]}, {item_type:"T_OP_IS", result_type:{meta:{type:"INT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:1, scale:0}, flag:1, calc_type:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}}, expr_info:["IS_IS_EXPR", "CNT_CONST", "CNT_COLUMN", "CNT_IS_EXPR"], rel_id:[1], expr_levels:[0], children:[{item_type:"T_REF_COLUMN", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"IMPLICIT"}, accuracy:{length:20, precision:-1, scale:-1}, flag:1048577, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:18446744073709551582, column_id:20, database_name:"", table_name:"t1", synonym_name:"", synonym_db_name:"", column_name:"issuno", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:false, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false, is_unique_key_column:false, is_mul_key_column:false, srs_id:18446744073709551584}, {item_type:"T_NULL", result_type:{meta:{type:"NULL", collation:"binary", coercibility:"IGNORABLE"}, accuracy:{length:0, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"NULL":"NULL"}}, {item_type:"T_BOOL", result_type:{meta:{type:"TINYINT", collation:"binary", coercibility:"NUMERIC"}, accuracy:{length:-1, precision:-1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "CNT_CONST"], rel_id:[], value:{"TINYINT":0}}]}]}], then:[{item_type:"T_QUESTIONMARK", result_type:{meta:{type:"VARCHAR", collation:"utf8mb4_general_ci", coercibility:"COERCIBLE"}, accuracy:{length:4, precision:1, scale:-1}, flag:1, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_CONST", "IS_PARAM", "CNT_CONST", "CNT_PARAM"], rel_id:[], value:{"UNKNOWN":12}}], decode:false}}], ret=-4000)
[2024-12-30 10:36:54.738782] WDIAG [SQL.OPT] ob_logical_operator.cpp:2415 [2613054][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=27] [dc=0][errcode=-4000] failed to perform post traverse action(ret=-4000, operation=0)
[2024-12-30 10:36:54.738789] WDIAG [SQL.OPT] ob_log_plan.cpp:7240 [2613054][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=5] [dc=0][errcode=-4000] failed to apply operation to operator(operation=0, ret=-4000)
[2024-12-30 10:36:54.738807] WDIAG [SQL.OPT] ob_log_plan.h:1432 [2613054][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=4] [dc=0][errcode=-4000] failed to do plan traverse(ret=-4000, op=0)
无论执行 SQL 还是查询 SQL 的执行计划,都会返回报错 errcode=-4000。
对于上面的SQL,禁止优化器改写之后,生成如下的计划。
对于 Group By 的上拉改写,如果成功的话,会出现在 1 号算子之上。

关键诊断信息
触发条件
在 OceanBase 数据库 V3.x 版本的场景下,聚合函数且聚合函数中有相关子查询的场景下,优化器尝试进行 Group By 上拉改写。
事前巡检
对于形如上面的 SQL,可以提前添加 Hint 避免 Group By 上拉改写的发生。
事后诊断
无论执行 SQL 还是查询 SQL 的执行计划,都会返回报错 errcode=-4000。
OBServer 日志中,会在计划生成阶段报错 failed to perform post traverse action - 4000。
问题原因
在 OceanBase 数据库 V3.x 版本的场景下,含聚合函数且聚合函数中有相关子查询的场景下,优化器在对于 sum() 整体进行的上拉改写过程中,替换子查询中的表达式存在问题,导致计划生成失败。
问题的风险及影响
group by 上拉改写失败。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 MySQL 租户,对于 Oracle 租户无影响。
影响版本
OceanBase 数据库企业版 V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本、V3.2.4 GA(oceanbase-3.2.4.0-100000072022102819)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V3.2.3 BP11(oceanbase-3.2.3.3-111000032024070822)、V3.2.4 BP7(oceanbase-3.2.4.7-107000012023113010)。
注意
OceanBase 数据库 V4.x 版本不存在此类问题。
对 SQL 使用添加 Hint 提示
/*+ NO_REWRITE */或者在计划执行 Group By 上拉的地方添加 Hint 提示/*+ NO_MERGE */。
规避方式
对 SQL 使用添加 Hint 提示 /*+ NO_REWRITE */ 或者在计划执行 Group By 上拉的地方添加 Hint 提示 /*+ NO_MERGE */。