[FEAT MERGE] 4.1 PL/SQL enhence & development

This commit is contained in:
obdev
2023-01-09 08:47:31 +00:00
committed by ob-robot
parent 322032b9ca
commit 08802d94f6
98 changed files with 5260 additions and 2676 deletions

View File

@ -184,6 +184,8 @@ public:
stmt::StmtType get_stmt_type() const;
stmt::StmtType get_inner_stmt_type() const;
stmt::StmtType get_literal_stmt_type() const;
const common::ObString& get_stmt_ps_sql() const { return ps_sql_; }
common::ObString& get_stmt_ps_sql() { return ps_sql_; }
int64_t get_query_string_id() const;
static void refresh_location_cache(ObTaskExecutorCtx &task_exec_ctx, bool is_nonblock, int err);
int refresh_location_cache(bool is_nonblock);
@ -198,8 +200,10 @@ public:
if (0 < my_session_.get_pl_exact_err_msg().length()) {
my_session_.get_pl_exact_err_msg().reset();
}
is_init_ = true;
return common::OB_SUCCESS;
}
bool is_inited() const { return is_init_; }
common::ObIAllocator& get_mem_pool() { return mem_pool_; }
ObExecContext &get_exec_context() { return exec_ctx_ != nullptr ? *exec_ctx_ : *inner_exec_ctx_; }
void set_exec_context(ObExecContext &exec_ctx) { exec_ctx_ = &exec_ctx; }
@ -213,7 +217,7 @@ public:
int add_returning_param_column(const common::ObField &param);
int from_plan(const ObPhysicalPlan &phy_plan, const common::ObIArray<ObPCParam *> &raw_params);
int to_plan(const bool is_ps_mode, ObPhysicalPlan *phy_plan);
int to_plan(const PlanCacheMode mode, ObPhysicalPlan *phy_plan);
const common::ObString &get_statement_name() const;
void set_statement_id(const uint64_t stmt_id);
void set_statement_name(const common::ObString name);
@ -420,6 +424,8 @@ private:
bool is_returning_;
bool is_com_filed_list_; //used to mark COM_FIELD_LIST
common::ObString wild_str_;//uesd to save filed wildcard in COM_FIELD_LIST;
common::ObString ps_sql_; // for sql in pl
bool is_init_;
};
@ -490,7 +496,9 @@ inline ObResultSet::ObResultSet(ObSQLSessionInfo &session, common::ObIAllocator
executor_(),
is_returning_(false),
is_com_filed_list_(false),
wild_str_()
wild_str_(),
ps_sql_(),
is_init_(false)
{
message_[0] = '\0';
// Always called in the ObResultSet constructor