Skip to content

Commit df17d99

Browse files
committed
default value has been disabled for column tables
1 parent 4e637e2 commit df17d99

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

ydb/core/kqp/host/kqp_gateway_proxy.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,18 @@ bool FillColumnTableSchema(NKikimrSchemeOp::TColumnTableSchema& schema, const T&
439439
auto columnIt = metadata.Columns.find(name);
440440
Y_ENSURE(columnIt != metadata.Columns.end());
441441

442+
if (columnIt->second.IsDefaultFromSequence()) {
443+
code = Ydb::StatusIds::BAD_REQUEST;
444+
error = TStringBuilder() << "Default value from sequence specified for column `" << columnIt->second.Name << "` is not supported in cases of column tables";
445+
return false;
446+
}
447+
448+
if (columnIt->second.IsDefaultFromLiteral()) {
449+
code = Ydb::StatusIds::BAD_REQUEST;
450+
error = TStringBuilder() << "Default value from literal specified for column `" << columnIt->second.Name << "` is not supported in cases of column tables";
451+
return false;
452+
}
453+
442454
NKikimrSchemeOp::TOlapColumnDescription& columnDesc = *schema.AddColumns();
443455
columnDesc.SetName(columnIt->second.Name);
444456
columnDesc.SetType(columnIt->second.Type);

ydb/core/kqp/ut/olap/kqp_olap_ut.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3333,5 +3333,26 @@ Y_UNIT_TEST_SUITE(KqpOlap) {
33333333

33343334
testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest` WHERE time > CurrentUtcTimestamp()", "[[1u]]");
33353335
}
3336+
3337+
Y_UNIT_TEST(WithDefaultValue) {
3338+
std::unique_ptr<TKikimrRunner> Kikimr;
3339+
auto settings = TKikimrSettings().SetWithSampleTables(false);
3340+
auto kikimr = std::make_unique<TKikimrRunner>(settings);
3341+
Tests::NCommon::TLoggerInit(*kikimr).Initialize();
3342+
auto queryClient = kikimr->GetQueryClient();
3343+
{
3344+
auto result = queryClient.ExecuteQuery(R"(
3345+
CREATE TABLE Test (
3346+
Id Uint32 not null,
3347+
Value String DEFAULT "aba",
3348+
PRIMARY KEY (Id)
3349+
) WITH (
3350+
STORE = COLUMN
3351+
);
3352+
)", NQuery::TTxControl::NoTx()).GetValueSync();
3353+
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), NYdb::EStatus::GENERIC_ERROR);
3354+
UNIT_ASSERT_STRING_CONTAINS_C(result.GetIssues().ToString(), "Default value from literal specified for column `Value` is not supported in cases of column tables", result.GetIssues().ToString());
3355+
}
3356+
}
33363357
}
33373358
}

ydb/core/ydb_convert/table_description.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,18 @@ bool FillColumnDescriptionImpl(TColumnTable& out, const google::protobuf::Repeat
740740
if (!column.Getfamily().empty()) {
741741
columnDesc->SetColumnFamilyName(column.Getfamily());
742742
}
743+
744+
if (column.has_from_literal()) {
745+
status = Ydb::StatusIds::BAD_REQUEST;
746+
error = TStringBuilder() << "Default value from literal specified for column `" << column.name() << "` is not supported in cases of column tables";
747+
return false;
748+
}
749+
750+
if (column.has_from_sequence()) {
751+
status = Ydb::StatusIds::BAD_REQUEST;
752+
error = TStringBuilder() << "Default value from sequence specified for column `" << column.name() << "` is not supported in cases of column tables";
753+
return false;
754+
}
743755
}
744756

745757
return true;

0 commit comments

Comments
 (0)