CP 3.1 commit to open source
This commit is contained in:
committed by
wangzelin.wzl
parent
2b51e4f001
commit
09edba0ff6
@ -1536,6 +1536,24 @@ int ObRawExprUtils::extract_column_exprs(const ObIArray<ObRawExpr*>& exprs, ObIA
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObRawExprUtils::mark_column_explicited_reference(ObRawExpr& expr)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObSEArray<ObRawExpr*, 2> column_exprs;
|
||||
if (OB_FAIL(extract_column_exprs(&expr, column_exprs))) {
|
||||
LOG_WARN("extract column exprs failed", K(ret), K(expr));
|
||||
}
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < column_exprs.count(); ++i) {
|
||||
if (!column_exprs.at(i)->is_column_ref_expr()) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("column expr is unexpected", K(ret));
|
||||
} else {
|
||||
static_cast<ObColumnRefRawExpr*>(column_exprs.at(i))->set_explicited_reference();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObRawExprUtils::extract_column_ids(const ObIArray<ObRawExpr*>& exprs, common::ObIArray<uint64_t>& column_ids)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
@ -220,6 +220,7 @@ public:
|
||||
static int extract_column_exprs(const ObRawExpr* raw_expr, common::ObIArray<ObRawExpr*>& column_exprs);
|
||||
static int extract_column_exprs(
|
||||
const common::ObIArray<ObRawExpr*>& exprs, common::ObIArray<ObRawExpr*>& column_exprs);
|
||||
static int mark_column_explicited_reference(ObRawExpr& expr);
|
||||
static int extract_column_ids(const ObIArray<ObRawExpr*>& exprs, common::ObIArray<uint64_t>& column_ids);
|
||||
static int extract_column_ids(const ObRawExpr* raw_expr, common::ObIArray<uint64_t>& column_ids);
|
||||
static int extract_table_ids(const ObRawExpr* raw_expr, common::ObIArray<uint64_t>& table_ids);
|
||||
|
||||
Reference in New Issue
Block a user