diff --git a/src/executor/operator/physical_command.cpp b/src/executor/operator/physical_command.cpp index cb67cfe83a..f69a78660a 100644 --- a/src/executor/operator/physical_command.cpp +++ b/src/executor/operator/physical_command.cpp @@ -82,7 +82,12 @@ bool PhysicalCommand::Execute(QueryContext *query_context, OperatorState *operat Status status = Status::DataTypeMismatch("Integer", set_command->value_type_str()); RecoverableError(status); } - query_context->storage()->catalog()->ResizeProfileHistory(set_command->value_int()); + i32 value_int = set_command->value_int(); + if(value_int < 0) { + Status status = Status::InvalidCommand(fmt::format("Try to set profile record capacity with invalid value {}", value_int)); + RecoverableError(status); + } + query_context->storage()->catalog()->ResizeProfileHistory(value_int); return true; } case GlobalVariable::kInvalid: { diff --git a/src/executor/operator/physical_show.cpp b/src/executor/operator/physical_show.cpp index 3cdf196f82..eae79fbb0f 100644 --- a/src/executor/operator/physical_show.cpp +++ b/src/executor/operator/physical_show.cpp @@ -2102,6 +2102,11 @@ void PhysicalShow::ExecuteShowBlockColumn(QueryContext *query_context, ShowOpera } SizeT column_count = table_entry->ColumnCount(); + if(!column_id_.has_value()) { + String error_message = "No column id is given."; + UnrecoverableError(error_message); + return; + } SizeT table_column_id = *column_id_; if (table_column_id >= column_count) { @@ -4695,6 +4700,22 @@ void PhysicalShow::ExecuteShowTransaction(QueryContext *query_context, ShowOpera value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); } + ++column_id; + { + Value value = Value::MakeVarchar(std::to_string(*txn_id_)); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + } + + { + SizeT column_id = 0; + { + Value value = Value::MakeVarchar("session_id"); + ValueExpression value_expr(value); + value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]); + } + ++column_id; { Value value = Value::MakeVarchar(std::to_string(*session_id_)); diff --git a/src/planner/logical_planner.cpp b/src/planner/logical_planner.cpp index 35a5572147..d21d542541 100644 --- a/src/planner/logical_planner.cpp +++ b/src/planner/logical_planner.cpp @@ -1385,6 +1385,7 @@ Status LogicalPlanner::BuildShowBlockColumn(const ShowStatement *statement, Shar bind_context_ptr->GenerateTableIndex(), statement->segment_id_, statement->block_id_, + statement->chunk_id_, statement->column_id_); this->logical_plan_ = logical_show;