@@ -7401,7 +7401,7 @@ Y_UNIT_TEST_SUITE(Restore) {
74017401}
74027402
74037403Y_UNIT_TEST_SUITE (ColumnFamily) {
7404- Y_UNIT_TEST (CompressionLevel ) {
7404+ Y_UNIT_TEST (CompressionLevelCorrectUsage ) {
74057405 NYql::TAstParseResult res = SqlToYql (R"( use plato;
74067406 CREATE TABLE tableName (
74077407 Key Uint32 FAMILY default,
@@ -7434,4 +7434,89 @@ Y_UNIT_TEST_SUITE(ColumnFamily) {
74347434 UNIT_ASSERT_VALUES_EQUAL (1 , elementStat[" Write" ]);
74357435 UNIT_ASSERT_VALUES_EQUAL (2 , elementStat[" compression_level" ]);
74367436 }
7437+
7438+ Y_UNIT_TEST (FieldDataIsNotString) {
7439+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7440+ CREATE TABLE tableName (
7441+ Key Uint32 FAMILY default,
7442+ PRIMARY KEY (Key),
7443+ FAMILY default (
7444+ DATA = 1,
7445+ COMPRESSION = "lz4",
7446+ COMPRESSION_LEVEL = 5
7447+ )
7448+ );
7449+ )" );
7450+ UNIT_ASSERT (!res.IsOk ());
7451+ UNIT_ASSERT (res.Issues .Size () == 1 );
7452+ UNIT_ASSERT_STRING_CONTAINS (res.Issues .ToString (), " DATA value should be a string literal" );
7453+ }
7454+
7455+ Y_UNIT_TEST (FieldCompressionIsNotString) {
7456+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7457+ CREATE TABLE tableName (
7458+ Key Uint32 FAMILY default,
7459+ PRIMARY KEY (Key),
7460+ FAMILY default (
7461+ DATA = "test",
7462+ COMPRESSION = 2,
7463+ COMPRESSION_LEVEL = 5
7464+ ),
7465+ );
7466+ )" );
7467+ UNIT_ASSERT (!res.IsOk ());
7468+ UNIT_ASSERT (res.Issues .Size () == 1 );
7469+ UNIT_ASSERT_STRING_CONTAINS (res.Issues .ToString (), " COMPRESSION value should be a string literal" );
7470+ }
7471+
7472+ Y_UNIT_TEST (FieldCompressionLevelIsNotInteger) {
7473+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7474+ CREATE TABLE tableName (
7475+ Key Uint32 FAMILY default,
7476+ PRIMARY KEY (Key),
7477+ FAMILY default (
7478+ DATA = "test",
7479+ COMPRESSION = "lz4",
7480+ COMPRESSION_LEVEL = "5"
7481+ )
7482+ );
7483+ )" );
7484+ UNIT_ASSERT (!res.IsOk ());
7485+ UNIT_ASSERT (res.Issues .Size () == 1 );
7486+ UNIT_ASSERT_STRING_CONTAINS (res.Issues .ToString (), " COMPRESSION_LEVEL value should be an integer" );
7487+ }
7488+
7489+ Y_UNIT_TEST (AlterCompressionCorrectUsage) {
7490+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7491+ ALTER TABLE tableName ALTER FAMILY default SET COMPRESSION "lz4";
7492+ )" );
7493+ UNIT_ASSERT (res.IsOk ());
7494+ UNIT_ASSERT (res.Issues .Size () == 0 );
7495+ }
7496+
7497+ Y_UNIT_TEST (AlterCompressionFieldIsNotString) {
7498+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7499+ ALTER TABLE tableName ALTER FAMILY default SET COMPRESSION lz4;
7500+ )" );
7501+ UNIT_ASSERT (!res.IsOk ());
7502+ UNIT_ASSERT (res.Issues .Size () == 1 );
7503+ UNIT_ASSERT_STRING_CONTAINS (res.Issues .ToString (), " mismatched input 'lz4' expecting {STRING_VALUE, DIGITS, INTEGER_VALUE}" );
7504+ }
7505+
7506+ Y_UNIT_TEST (AlterCompressionLevelCorrectUsage) {
7507+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7508+ ALTER TABLE tableName ALTER FAMILY default SET COMPRESSION_LEVEL 5;
7509+ )" );
7510+ UNIT_ASSERT (res.IsOk ());
7511+ UNIT_ASSERT (res.Issues .Size () == 0 );
7512+ }
7513+
7514+ Y_UNIT_TEST (AlterCompressionLevelFieldIsNotInteger) {
7515+ NYql::TAstParseResult res = SqlToYql (R"( use plato;
7516+ ALTER TABLE tableName ALTER FAMILY default SET COMPRESSION_LEVEL "5";
7517+ )" );
7518+ UNIT_ASSERT (!res.IsOk ());
7519+ UNIT_ASSERT (res.Issues .Size () == 1 );
7520+ UNIT_ASSERT_STRING_CONTAINS (res.Issues .ToString (), " COMPRESSION_LEVEL value should be an integer" );
7521+ }
74377522}
0 commit comments