Skip to content
Draft
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
4 changes: 0 additions & 4 deletions ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3576,10 +3576,6 @@ Y_UNIT_TEST_SUITE(KqpQueryService) {
TKikimrRunner kikimr(serverSettings);
auto db = kikimr.GetQueryClient();

if (IsOlap) {
return;
}

{
auto result = db.ExecuteQuery(Sprintf(R"(
CREATE TABLE Table (
Expand Down
11 changes: 10 additions & 1 deletion ydb/core/tx/schemeshard/olap/columns/schema.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,16 @@ bool TOlapColumnsDescription::ApplyUpdate(
auto it = orderedKeyColumnIds.begin();
for (ui32 i = 0; i < orderedKeyColumnIds.size(); ++i, ++it) {
KeyColumnIds.emplace_back(it->second);
Y_ABORT_UNLESS(i == it->first);
if (i != it->first) {
const TString missedColumnName = i < schemaUpdate.GetPrimaryKeyColumnNames().size() ? schemaUpdate.GetPrimaryKeyColumnNames()[i] : "@unknown";
errors.AddError(NKikimrScheme::StatusSchemeError, Sprintf("Unknown column '%s' specified in key column list", missedColumnName.data()));
return false;
}
}
if (orderedKeyColumnIds.size() < schemaUpdate.GetPrimaryKeyColumnNames().size()) {
const TString missedColumnName = schemaUpdate.GetPrimaryKeyColumnNames()[orderedKeyColumnIds.size()];
errors.AddError(NKikimrScheme::StatusSchemeError, Sprintf("Unknown column '%s' specified in key column list", missedColumnName.data()));
return false;
}
if (KeyColumnIds.empty()) {
errors.AddError(NKikimrScheme::StatusSchemeError, "No primary key specified");
Expand Down
1 change: 1 addition & 0 deletions ydb/core/tx/schemeshard/olap/columns/update.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ void TOlapColumnAdd::ParseFromLocalDB(const NKikimrSchemeOp::TOlapColumnDescript
errors.AddError(NKikimrScheme::StatusSchemeError, TStringBuilder() << "Duplicate key column '" << pkKey << "'");
return false;
}
PrimaryKeyColumnNames.emplace_back(pkKey);
}

TSet<TString> columnNames;
Expand Down
1 change: 1 addition & 0 deletions ydb/core/tx/schemeshard/olap/columns/update.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ class TOlapColumnsUpdate {
YDB_READONLY_DEF(TVector<TOlapColumnAdd>, AddColumns);
YDB_READONLY_DEF(TSet<TString>, DropColumns);
YDB_READONLY_DEF(TVector<TOlapColumnDiff>, AlterColumns);
YDB_READONLY_DEF(TVector<TString>, PrimaryKeyColumnNames);
public:
bool Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema, IErrorCollector& errors, bool allowNullKeys = false);
bool Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& errors);
Expand Down
Loading