diff --git a/src/sql/engine/cmd/ob_table_executor.cpp b/src/sql/engine/cmd/ob_table_executor.cpp index d3044a9d1d0af02f4a12b887a5915632da5bda3d..58290bf6b53f274b0279eb9a63c4a88e72de4671 100644 --- a/src/sql/engine/cmd/ob_table_executor.cpp +++ b/src/sql/engine/cmd/ob_table_executor.cpp @@ -112,6 +112,7 @@ int ObCreateTableExecutor::prepare_ins_arg(ObCreateTableStmt &stmt, obj_print_params, param_store, true); + select_stmt_printer.set_is_root(true); // print hint as root stmt if (OB_ISNULL(buf)) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("allocate memory failed"); diff --git a/src/sql/resolver/ddl/ob_create_table_resolver.cpp b/src/sql/resolver/ddl/ob_create_table_resolver.cpp index 5940ce83be064dec21a5a27d183339776ce0dc32..813eb4354bab2de8b2462084a23518777aa4f02b 100644 --- a/src/sql/resolver/ddl/ob_create_table_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_table_resolver.cpp @@ -1548,6 +1548,10 @@ int ObCreateTableResolver::resolve_table_elements_from_select(const ParseNode &p if (OB_ISNULL(select_stmt)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid select stmt", K(select_stmt)); + } else if (OB_FAIL(params_.query_ctx_->query_hint_.init_query_hint(allocator_, + session_info_, + select_stmt))) { + LOG_WARN("failed to init query hint.", K(ret)); } else { ObIArray &select_items = select_stmt->get_select_items(); ObColumnSchemaV2 column; diff --git a/src/sql/resolver/ddl/ob_create_view_resolver.cpp b/src/sql/resolver/ddl/ob_create_view_resolver.cpp index 714677261a16f9b6447d2d64d7d00bb8e79acaa1..b41637448c579da6da1a1a858615b74e603c6f19 100644 --- a/src/sql/resolver/ddl/ob_create_view_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_view_resolver.cpp @@ -531,6 +531,7 @@ int ObCreateViewResolver::stmt_print(const ObSelectStmt *stmt, params_.schema_checker_->get_schema_guard(), obj_print_params, true); stmt_printer.set_column_list(column_list); + stmt_printer.set_is_root(true); // print hint as root stmt if (OB_FAIL(stmt_printer.do_print())) { if (OB_SIZE_OVERFLOW == ret && buf_len < OB_MAX_PACKET_LENGTH) { buf_len = std::min(buf_len * 2, OB_MAX_PACKET_LENGTH);