Skip to content

Commit e17ae7b

Browse files
authored
Merge 83ff1f1 into d14df37
2 parents d14df37 + 83ff1f1 commit e17ae7b

File tree

4 files changed

+22
-16
lines changed

4 files changed

+22
-16
lines changed

ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1966,8 +1966,8 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
19661966
{"Value3", "Pg('pgint2','',21,0,0)"}
19671967
};
19681968

1969-
const THashMap<std::string_view, bool> columnNullability = {
1970-
{"Key1", true},
1969+
const THashMap<std::string_view, bool> columnNonNullability = {
1970+
{"Key1", false},
19711971
{"Key2", false},
19721972
{"Value1", false},
19731973
{"Value2", false},
@@ -1977,7 +1977,12 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
19771977
const auto& columns = describeTableResult.GetTableDescription().GetTableColumns();
19781978
for (const auto& column : columns) {
19791979
UNIT_ASSERT_VALUES_EQUAL_C(column.Type.ToString(), columnTypes.at(column.Name), column.Name);
1980-
UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), columnNullability.at(column.Name), column.Name);
1980+
bool isNotNull = columnNonNullability.at(column.Name);
1981+
if (isNotNull) {
1982+
UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), true, column.Name);
1983+
} else {
1984+
UNIT_ASSERT_C(!column.NotNull.has_value() || !column.NotNull.value(), column.Name);
1985+
}
19811986
}
19821987
}
19831988

@@ -1997,16 +2002,21 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) {
19972002
}
19982003
auto describeTableResult = session.DescribeTable("/Root/NotNullCheck").GetValueSync();
19992004
UNIT_ASSERT_C(describeTableResult.IsSuccess(), describeTableResult.GetIssues().ToString());
2000-
const THashMap<std::string_view, bool> columnNullability = {
2005+
const THashMap<std::string_view, bool> columnNonNullability = {
20012006
{"1", false},
2002-
{"2", true},
2007+
{"2", false},
20032008
{"3", false},
20042009
{"4", true},
20052010
};
20062011

20072012
const auto& columns = describeTableResult.GetTableDescription().GetTableColumns();
20082013
for (const auto& column : columns) {
2009-
UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), columnNullability.at(column.Name), column.Name);
2014+
bool isNotNull = columnNonNullability.at(column.Name);
2015+
if (isNotNull) {
2016+
UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), true, column.Name);
2017+
} else {
2018+
UNIT_ASSERT_C(!column.NotNull.has_value() || !column.NotNull.value(), column.Name);
2019+
}
20102020
}
20112021

20122022
{

ydb/core/tx/schemeshard/ut_export/ut_export.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,6 @@ Y_UNIT_TEST_SUITE(TExportToS3Tests) {
364364
}
365365
}
366366
}
367-
not_null: false
368367
from_literal {
369368
type {
370369
optional_type {
@@ -389,7 +388,6 @@ columns {
389388
}
390389
}
391390
}
392-
not_null: false
393391
from_literal {
394392
type {
395393
optional_type {

ydb/core/ydb_convert/table_description.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,13 +367,15 @@ static Ydb::Type* AddColumn(Ydb::Table::ColumnMeta* newColumn, const TColumn& co
367367
pg->set_oid(NPg::PgTypeIdFromTypeDesc(typeDesc));
368368
pg->set_typlen(0);
369369
pg->set_typmod(0);
370+
if (column.GetNotNull()) {
371+
newColumn->set_not_null(column.GetNotNull());
372+
}
370373
} else {
371374
NYql::NProto::TypeIds protoType;
372375
if (!NYql::NProto::TypeIds_Parse(column.GetType(), &protoType)) {
373376
throw NYql::TErrorException(NKikimrIssues::TIssuesIds::DEFAULT_ERROR)
374377
<< "Got invalid type: " << column.GetType() << " for column: " << column.GetName();
375378
}
376-
377379
if (column.GetNotNull()) {
378380
columnType = newColumn->mutable_type();
379381
} else {
@@ -389,7 +391,6 @@ static Ydb::Type* AddColumn(Ydb::Table::ColumnMeta* newColumn, const TColumn& co
389391
NMiniKQL::ExportPrimitiveTypeToProto(protoType, *columnType);
390392
}
391393
}
392-
newColumn->set_not_null(column.GetNotNull());
393394
return columnType;
394395
}
395396

@@ -407,13 +408,15 @@ Ydb::Type* AddColumn<NKikimrSchemeOp::TColumnDescription>(Ydb::Table::ColumnMeta
407408
pg->set_oid(NPg::PgTypeIdFromTypeDesc(typeDesc));
408409
pg->set_typlen(0);
409410
pg->set_typmod(0);
411+
if (column.GetNotNull()) {
412+
newColumn->set_not_null(column.GetNotNull());
413+
}
410414
} else {
411415
NYql::NProto::TypeIds protoType;
412416
if (!NYql::NProto::TypeIds_Parse(column.GetType(), &protoType)) {
413417
throw NYql::TErrorException(NKikimrIssues::TIssuesIds::DEFAULT_ERROR)
414418
<< "Got invalid type: " << column.GetType() << " for column: " << column.GetName();
415419
}
416-
417420
if (column.GetNotNull()) {
418421
columnType = newColumn->mutable_type();
419422
} else {
@@ -429,7 +432,6 @@ Ydb::Type* AddColumn<NKikimrSchemeOp::TColumnDescription>(Ydb::Table::ColumnMeta
429432
NMiniKQL::ExportPrimitiveTypeToProto(protoType, *columnType);
430433
}
431434
}
432-
newColumn->set_not_null(column.GetNotNull());
433435
switch (column.GetDefaultValueCase()) {
434436
case NKikimrSchemeOp::TColumnDescription::kDefaultFromLiteral: {
435437
auto fromLiteral = newColumn->mutable_from_literal();

ydb/services/ydb/ydb_ut.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,6 @@ columns {
12621262
}
12631263
}
12641264
}
1265-
not_null: false
12661265
}
12671266
columns {
12681267
name: "Value"
@@ -1273,7 +1272,6 @@ columns {
12731272
}
12741273
}
12751274
}
1276-
not_null: false
12771275
}
12781276
primary_key: "Key"
12791277
partitioning_settings {
@@ -1601,7 +1599,6 @@ columns {
16011599
}
16021600
}
16031601
}
1604-
not_null: false
16051602
}
16061603
columns {
16071604
name: "IValue"
@@ -1612,7 +1609,6 @@ columns {
16121609
}
16131610
}
16141611
}
1615-
not_null: false
16161612
}
16171613
primary_key: "Key"
16181614
indexes {

0 commit comments

Comments
 (0)