[FEAT MERGE] enhance mview rewrite, support join MAV fast refresh and real-time mview
Co-authored-by: hy-guo <fqboyg@gmail.com>
This commit is contained in:
@ -3446,7 +3446,9 @@ int ObSql::generate_plan(ParseResult &parse_result,
|
||||
&self_addr_,
|
||||
phy_plan,
|
||||
result.get_exec_context(),
|
||||
stmt))) { //rewrite stmt
|
||||
stmt,
|
||||
stmt_need_privs,
|
||||
stmt_ora_need_privs))) { //rewrite stmt
|
||||
LOG_WARN("Failed to transform stmt", K(ret));
|
||||
} else if (OB_FAIL(generate_stmt_with_reconstruct_sql(stmt,
|
||||
pc_ctx,
|
||||
@ -3571,6 +3573,10 @@ int ObSql::generate_stmt_with_reconstruct_sql(ObDMLStmt* &stmt,
|
||||
session->get_charsets4parser(),
|
||||
pc_ctx->def_name_ctx_);
|
||||
stmt->get_query_ctx()->global_dependency_tables_.reuse();
|
||||
ObStmtNeedPrivs mock_stmt_need_privs;
|
||||
ObStmtOraNeedPrivs mock_stmt_ora_need_privs;
|
||||
mock_stmt_need_privs.need_privs_.set_allocator(&pc_ctx->allocator_);
|
||||
mock_stmt_ora_need_privs.need_privs_.set_allocator(&pc_ctx->allocator_);
|
||||
if (OB_FAIL(parser.parse(sql, parse_result))) {
|
||||
LOG_WARN("failed to parser sql", K(ret));
|
||||
} else if (OB_FAIL(generate_stmt(parse_result,
|
||||
@ -3591,6 +3597,8 @@ int ObSql::generate_stmt_with_reconstruct_sql(ObDMLStmt* &stmt,
|
||||
phy_plan,
|
||||
result.get_exec_context(),
|
||||
stmt,
|
||||
mock_stmt_need_privs,
|
||||
mock_stmt_ora_need_privs,
|
||||
true))) { //rewrite stmt
|
||||
LOG_WARN("Failed to transform stmt", K(ret));
|
||||
}
|
||||
@ -3719,6 +3727,8 @@ int ObSql::transform_stmt(ObSqlSchemaGuard *sql_schema_guard,
|
||||
ObPhysicalPlan *phy_plan,
|
||||
ObExecContext &exec_ctx,
|
||||
ObDMLStmt *&stmt,
|
||||
ObStmtNeedPrivs &stmt_need_privs,
|
||||
ObStmtOraNeedPrivs &stmt_ora_need_privs,
|
||||
bool ignore_trace_event)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
@ -3759,6 +3769,8 @@ int ObSql::transform_stmt(ObSqlSchemaGuard *sql_schema_guard,
|
||||
trans_ctx.opt_stat_mgr_ = opt_stat_mgr;
|
||||
trans_ctx.sql_schema_guard_ = sql_schema_guard;
|
||||
trans_ctx.self_addr_ = self_addr;
|
||||
trans_ctx.stmt_need_privs_ = &stmt_need_privs;
|
||||
trans_ctx.stmt_ora_need_privs_ = &stmt_ora_need_privs;
|
||||
// trans_ctx.merged_version_ = merged_version;
|
||||
|
||||
trans_ctx.phy_plan_ = phy_plan;
|
||||
|
||||
Reference in New Issue
Block a user