Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/executor/operator/physical_import.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import meta_info;

namespace infinity {

class DataBlock;
struct DataBlock;

class ZxvParserCtx {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/executor/operator/physical_limit.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export module physical_limit;

namespace infinity {

class DataBlock;
struct DataBlock;

export class LimitCounter {
public:
Expand Down
2 changes: 1 addition & 1 deletion src/executor/operator/physical_match.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import parse_fulltext_options;
namespace infinity {

class ResultCacheManager;
class DataBlock;
struct DataBlock;

export class PhysicalMatch final : public PhysicalOperator {
public:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ namespace infinity {

struct LoadMeta;
class ResultCacheManager;
class DataBlock;
struct DataBlock;

export class PhysicalMergeMatchTensor final : public PhysicalOperator {
public:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import meta_info;
namespace infinity {

class ResultCacheManager;
class DataBlock;
struct DataBlock;
struct BlockIndex;

export class PhysicalScanBase : public PhysicalOperator {
Expand Down
91 changes: 13 additions & 78 deletions src/executor/operator/physical_show.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1372,8 +1372,7 @@ void PhysicalShow::ExecuteShowIndexChunk(QueryContext *query_context, ShowOperat

// Get tables from catalog
NewTxn *txn = query_context->GetNewTxn();
auto [chunk_index_info, status] =
txn->GetChunkIndexInfo(db_name_, *object_name_, index_name_.value(), segment_id_.value(), chunk_id_.value());
auto [chunk_index_info, status] = txn->GetChunkIndexInfo(db_name_, *object_name_, index_name_.value(), segment_id_.value(), chunk_id_.value());
if (!status.ok()) {
RecoverableError(status);
return;
Expand Down Expand Up @@ -1554,7 +1553,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
auto bigint_type = MakeShared<DataType>(LogicalType::kBigInt);

// Get tables from catalog
Vector<TableDetail> tables_detail;
Vector<SharedPtr<TableDetail>> tables_detail;
Status status;
NewTxn *txn = query_context->GetNewTxn();
status = txn->GetTables(db_name_, tables_detail);
Expand All @@ -1570,7 +1569,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
SizeT row_count = 0;
output_block_ptr->Init(column_types);

for (auto &table_detail : tables_detail) {
for (auto &table_detail_ptr : tables_detail) {
// Initialize the output data block
if (!output_block_ptr) {
output_block_ptr = DataBlock::MakeUniquePtr();
Expand All @@ -1580,7 +1579,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
SizeT column_id = 0;
{
// Append schema name to the 0 column
const String *db_name = table_detail.db_name_.get();
const String *db_name = table_detail_ptr->db_name_.get();
Value value = Value::MakeVarchar(*db_name);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
Expand All @@ -1589,14 +1588,14 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
++column_id;
{
// Append table name to the 1 column
const String *table_name = table_detail.table_name_.get();
const String *table_name = table_detail_ptr->table_name_.get();
Value value = Value::MakeVarchar(*table_name);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
}

++column_id;
TableEntryType table_type = table_detail.table_entry_type_;
TableEntryType table_type = table_detail_ptr->table_entry_type_;
{
// Append base table type to the 2 column
const String &base_table_type_str = ToString(table_type);
Expand All @@ -1610,7 +1609,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
// Append column count the 3 column
switch (table_type) {
case TableEntryType::kTableEntry: {
Value value = Value::MakeBigInt(static_cast<i64>(table_detail.column_count_));
Value value = Value::MakeBigInt(static_cast<i64>(table_detail_ptr->column_count_));
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
break;
Expand All @@ -1631,7 +1630,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
switch (table_type) {
case TableEntryType::kTableEntry:
case TableEntryType::kCollectionEntry: {
Value value = Value::MakeBigInt(static_cast<i64>(table_detail.block_count_));
Value value = Value::MakeBigInt(static_cast<i64>(table_detail_ptr->block_count_));
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
break;
Expand All @@ -1649,7 +1648,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
switch (table_type) {
case TableEntryType::kCollectionEntry:
case TableEntryType::kTableEntry: {
Value value = Value::MakeBigInt(static_cast<i64>(table_detail.block_capacity_));
Value value = Value::MakeBigInt(static_cast<i64>(table_detail_ptr->block_capacity_));
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
break;
Expand All @@ -1667,7 +1666,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
switch (table_type) {
case TableEntryType::kCollectionEntry:
case TableEntryType::kTableEntry: {
Value value = Value::MakeBigInt(static_cast<i64>(table_detail.segment_count_));
Value value = Value::MakeBigInt(static_cast<i64>(table_detail_ptr->segment_count_));
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
break;
Expand All @@ -1682,7 +1681,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
++column_id;
{
// Append segment capacity the 7 column
SizeT default_row_size = table_detail.segment_capacity_;
SizeT default_row_size = table_detail_ptr->segment_capacity_;
Value value = Value::MakeBigInt(default_row_size);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
Expand All @@ -1691,7 +1690,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
++column_id;
{
// Append segment capacity the 8 column
Value value = Value::MakeVarchar(*table_detail.table_comment_);
Value value = Value::MakeVarchar(*table_detail_ptr->table_comment_);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
}
Expand All @@ -1711,71 +1710,7 @@ void PhysicalShow::ExecuteShowTables(QueryContext *query_context, ShowOperatorSt
}

void PhysicalShow::ExecuteShowViews(QueryContext *query_context, ShowOperatorState *show_operator_state) {
// Define output table schema
auto varchar_type = MakeShared<DataType>(LogicalType::kVarchar);
auto bigint_type = MakeShared<DataType>(LogicalType::kBigInt);

// Get tables from catalog
Vector<ViewDetail> views_detail;
Status status;
NewTxn *txn = query_context->GetNewTxn();
status = txn->GetViews(db_name_, views_detail);
if (!status.ok()) {
show_operator_state->status_ = status.clone();
RecoverableError(status);
}

// Prepare the output data block
UniquePtr<DataBlock> output_block_ptr = DataBlock::MakeUniquePtr();
Vector<SharedPtr<DataType>>
column_types{varchar_type, varchar_type, varchar_type, bigint_type, bigint_type, bigint_type, bigint_type, bigint_type};
SizeT row_count = 0;
output_block_ptr->Init(column_types);

for (auto &view_detail : views_detail) {
if (!output_block_ptr) {
output_block_ptr = DataBlock::MakeUniquePtr();
output_block_ptr->Init(column_types);
}

SizeT column_id = 0;
{
// Append schema name to the 0 column
const String *db_name = view_detail.db_name_.get();
Value value = Value::MakeVarchar(*db_name);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
}

++column_id;
{
// Append table name to the 1 column
const String *table_name = view_detail.view_name_.get();
Value value = Value::MakeVarchar(*table_name);
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
}

++column_id;
{
// Append base table type to the 2 column
Value value = Value::MakeBigInt(static_cast<i64>(view_detail.column_count_));
ValueExpression value_expr(value);
value_expr.AppendToChunk(output_block_ptr->column_vectors[column_id]);
}

if (++row_count == output_block_ptr->capacity()) {
output_block_ptr->Finalize();
show_operator_state->output_.emplace_back(std::move(output_block_ptr));
output_block_ptr = nullptr;
row_count = 0;
}
}

if (output_block_ptr) {
output_block_ptr->Finalize();
show_operator_state->output_.emplace_back(std::move(output_block_ptr));
}
RecoverableError(Status::NotSupport("SHOW VIEW isn't implemented"));
}

void PhysicalShow::ExecuteShowProfiles(QueryContext *query_context, ShowOperatorState *show_operator_state) {
Expand Down
2 changes: 1 addition & 1 deletion src/storage/meta/entry/block_entry.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ namespace infinity {
class BufferManager;
struct SegmentEntry;
struct TableEntry;
class DataBlock;
struct DataBlock;
struct WalBlockInfo;

/// class BlockEntry
Expand Down
2 changes: 1 addition & 1 deletion src/storage/meta/meta_state.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace infinity {
struct SegmentEntry;
struct BlockEntry;
struct BlockColumnEntry;
class DataBlock;
struct DataBlock;
class ColumnVector;

export struct MetaColumnVectorState {
Expand Down
2 changes: 1 addition & 1 deletion src/storage/new_txn/base_txn_store.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import txn_state;

namespace infinity {

class DataBlock;
struct DataBlock;
class IndexBase;
class ColumnDef;

Expand Down
36 changes: 9 additions & 27 deletions src/storage/new_txn/new_txn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ import segment_entry;
import txn_allocator_task;
import meta_type;
import base_txn_store;
import buffer_handle;

namespace infinity {

Expand Down Expand Up @@ -142,6 +143,11 @@ NewTxn::~NewTxn() {
#endif
}

TransactionID NewTxn::TxnID() const { return txn_context_ptr_->txn_id_; }

void NewTxn::AddOperation(const SharedPtr<String> &operation_text) { txn_context_ptr_->AddOperation(operation_text); }
Vector<SharedPtr<String>> NewTxn::GetOperations() const { return txn_context_ptr_->GetOperations(); }

void NewTxn::CheckTxnStatus() {
TxnState txn_state = this->GetTxnState();
if (txn_state != TxnState::kStarted) {
Expand Down Expand Up @@ -292,7 +298,7 @@ Status NewTxn::ListDatabase(Vector<String> &db_names) {
}

// Table and Collection OPs
Status NewTxn::GetTables(const String &db_name, Vector<TableDetail> &output_table_array) {
Status NewTxn::GetTables(const String &db_name, Vector<SharedPtr<TableDetail>> &output_table_array) {
this->CheckTxn(db_name);

Vector<String> table_names;
Expand All @@ -307,8 +313,8 @@ Status NewTxn::GetTables(const String &db_name, Vector<TableDetail> &output_tabl
if (!status.ok()) {
return status;
}
output_table_array.push_back(TableDetail{});
status = table_meta->GetTableDetail(output_table_array.back(), db_name, table_name);
output_table_array.push_back(MakeShared<TableDetail>());
status = table_meta->GetTableDetail(*output_table_array.back(), db_name, table_name);
if (!status.ok()) {
return status;
}
Expand Down Expand Up @@ -965,30 +971,6 @@ Status NewTxn::ApplyTableSnapshot(const SharedPtr<TableSnapshotInfo> &table_snap
return catalog_->ApplyTableSnapshot(table_snapshot_info, nullptr);
}

Status NewTxn::CreateCollection(const String &, const String &, ConflictType, BaseEntry *&) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: CreateCollection"};
}

Status NewTxn::GetCollectionByName(const String &, const String &, BaseEntry *&) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: GetCollectionByName"};
}

Status NewTxn::CreateView(const String &, const String &, ConflictType, BaseEntry *&) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: CreateView"};
}

Status NewTxn::DropViewByName(const String &, const String &, ConflictType, BaseEntry *&) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: DropViewByName"};
}

Status NewTxn::GetViewByName(const String &, const String &, BaseEntry *&) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: GetViewByName"};
}

Status NewTxn::GetViews(const String &, Vector<ViewDetail> &output_view_array) {
return {ErrorCode::kNotSupported, "Not Implemented NewTxn Operation: GetViews"};
}

TxnTimeStamp NewTxn::GetCurrentCkpTS() const {
TransactionType txn_type = GetTxnType();
if (txn_type != TransactionType::kNewCheckpoint) {
Expand Down
Loading