Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
shnikd committed May 24, 2024
1 parent 1790ae6 commit f21553c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
14 changes: 9 additions & 5 deletions ydb/core/kqp/provider/yql_kikimr_exec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1318,21 +1318,21 @@ class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformer<TKi
auto columnTuple = item.Cast<TExprList>();
auto columnName = columnTuple.Item(0).Cast<TCoAtom>();
alter_columns->set_name(TString(columnName));

auto alterColumnList = columnTuple.Item(1).Cast<TExprList>();
if (TString(alterColumnList.Item(0).Cast<TCoAtom>()) = "setDefault") {
auto alterColumnAction = TString(alterColumnList.Item(0).Cast<TCoAtom>());
if (alterColumnAction == "setDefault") {
auto setDefault = alterColumnList.Item(1).Cast<TCoAtomList>();
auto func = TString(setDefault.Item(0).Cast<TCoAtom>());
auto arg = TString(setDefault.Item(1).Cast<TCoAtom>());
if (func != "nextval") {
ctx.AddError(TIssue(ctx.GetPosition(alterColumnList.Pos()),
ctx.AddError(TIssue(ctx.GetPosition(setDefault.Pos()),
TStringBuilder() << "Unsupported function to set default: " << func));
return SyncError();
}
auto fromSequence = alter_columns->mutable_from_sequence();
fromSequence->set_name(arg);
} else {
auto families = columnTuple.Item(1).Cast<TCoAtomList>();
} else if (alterColumnAction == "setFamily") {
auto families = alterColumnList.Item(1).Cast<TCoAtomList>();
if (families.Size() > 1) {
ctx.AddError(TIssue(ctx.GetPosition(families.Pos()),
"Unsupported number of families"));
Expand All @@ -1341,6 +1341,10 @@ class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformer<TKi
for (auto family : families) {
alter_columns->set_family(TString(family.Value()));
}
} else {
ctx.AddError(TIssue(ctx.GetPosition(alterColumnList.Pos()),
TStringBuilder() << "Unsupported action to alter column"));
return SyncError();
}
}
} else if (name == "addColumnFamilies" || name == "alterColumnFamilies") {
Expand Down
16 changes: 11 additions & 5 deletions ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1361,8 +1361,10 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
<< " Column: \"" << name << "\" does not exist"));
return TStatus::Error;
}
if (TString(columnTuple.Item(1).Cast<TExprList>().Item(0).Cast<TCoAtom>()) == "setDefault") {
auto setDefault = columnTuple.Item(1).Cast<TExprList>().Item(1).Cast<TCoAtomList>();
auto alterColumnList = columnTuple.Item(1).Cast<TExprList>();
auto alterColumnAction = TString(alterColumnList.Item(0).Cast<TCoAtom>());
if (alterColumnAction == "setDefault") {
auto setDefault = alterColumnList.Item(1).Cast<TCoAtomList>();
auto func = TString(setDefault.Item(0).Cast<TCoAtom>());
auto arg = TString(setDefault.Item(1).Cast<TCoAtom>());
if (func != "nextval") {
Expand All @@ -1375,15 +1377,19 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over
TStringBuilder() << "Function nextval has exactly one argument"));
return TStatus::Error;
}
} else {
auto families = columnTuple.Item(1);
if (families.Cast<TCoAtomList>().Size() > 1) {
} else if (alterColumnAction == "setFamily") {
auto families = alterColumnList.Item(1).Cast<TCoAtomList>();
if (families.Size() > 1) {
ctx.AddError(TIssue(ctx.GetPosition(nameNode.Pos()), TStringBuilder()
<< "AlterTable : " << NCommon::FullTableName(table->Metadata->Cluster, table->Metadata->Name)
<< " Column: \"" << name
<< "\". Several column families for a single column are not yet supported"));
return TStatus::Error;
}
} else {
ctx.AddError(TIssue(ctx.GetPosition(nameNode.Pos()),
TStringBuilder() << "Unsupported action to alter column"));
return TStatus::Error;
}
}
} else if (name == "addIndex") {
Expand Down
3 changes: 2 additions & 1 deletion ydb/library/yql/sql/v1/query.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1335,7 +1335,8 @@ class TAlterTableNode final: public TAstListNode {
for (const auto& family : col.Families) {
familiesDesc = L(familiesDesc, BuildQuotedAtom(family.Pos, family.Name));
}
columnDesc = L(columnDesc, Q(familiesDesc));

columnDesc = L(columnDesc, Q(Y(Q("setFamily"), Q(familiesDesc))));
columns = L(columns, Q(columnDesc));
}
actions = L(actions, Q(Y(Q("alterColumns"), Q(columns))));
Expand Down

0 comments on commit f21553c

Please sign in to comment.