This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-19497 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit bda7329ca24092b3beca4677422748c2c8cd67b8 Author: amashenkov <[email protected]> AuthorDate: Wed Aug 9 11:30:43 2023 +0300 Fix platforms tests --- .../internal/catalog/commands/CatalogUtils.java | 6 +++--- .../internal/catalog/CatalogManagerSelfTest.java | 3 ++- .../cpp/tests/odbc-test/meta_queries_test.cpp | 2 +- .../Sql/IgniteDbDataReaderTests.cs | 2 +- .../dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs | 2 +- .../runner/app/PlatformTestNodeRunner.java | 22 +++++++++++----------- .../ignite/internal/sql/engine/ItMetadataTest.java | 4 ++-- .../internal/sql/engine/ItSecondaryIndexTest.java | 4 ++-- .../schema/testutils/definition/ColumnType.java | 7 ++++--- .../sql/engine/type/IgniteTypeFactory.java | 4 ++-- 10 files changed, 29 insertions(+), 27 deletions(-) diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java index 0aa811af40..3115c71fa0 100644 --- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java +++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/commands/CatalogUtils.java @@ -125,11 +125,11 @@ public class CatalogUtils { public static final int DEFAULT_LENGTH = 1; /** - * Max length is implementation defined. + * Max length for VARCHAR and VARBINARY is implementation defined. * * <p>SQL`16 part 2 section 6.1 syntax rule 15 */ - public static final int MAX_LENGTH = Short.MAX_VALUE; + public static final int DEFAULT_VARLEN_LENGTH = 0xffff; private static final Map<ColumnType, Set<ColumnType>> ALTER_COLUMN_TYPE_TRANSITIONS = new EnumMap<>(ColumnType.class); @@ -265,7 +265,7 @@ public class CatalogUtils { case BITMASK: case STRING: case BYTE_ARRAY: - return Integer.MAX_VALUE; + return DEFAULT_VARLEN_LENGTH; default: return Math.max(DEFAULT_LENGTH, defaultPrecision(columnType)); } diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java index 8228d1dda9..1aea1c3584 100644 --- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java +++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/CatalogManagerSelfTest.java @@ -24,6 +24,7 @@ import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_ZONE_NAM import static org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_FILTER; import static org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_PARTITION_COUNT; import static org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_REPLICA_COUNT; +import static org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_VARLEN_LENGTH; import static org.apache.ignite.internal.catalog.commands.CatalogUtils.INFINITE_TIMER_VALUE; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willThrow; import static org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willThrowFast; @@ -363,7 +364,7 @@ public class CatalogManagerSelfTest extends BaseCatalogManagerTest { assertEquals(DefaultValue.Type.CONSTANT, column.defaultValue().type()); assertEquals("Ignite!", ((DefaultValue.ConstantValue) column.defaultValue()).value()); - assertEquals(Integer.MAX_VALUE, column.length()); + assertEquals(DEFAULT_VARLEN_LENGTH, column.length()); assertEquals(0, column.precision()); assertEquals(0, column.scale()); } diff --git a/modules/platforms/cpp/tests/odbc-test/meta_queries_test.cpp b/modules/platforms/cpp/tests/odbc-test/meta_queries_test.cpp index 6f0ccc480a..44ce7ed9c0 100644 --- a/modules/platforms/cpp/tests/odbc-test/meta_queries_test.cpp +++ b/modules/platforms/cpp/tests/odbc-test/meta_queries_test.cpp @@ -257,7 +257,7 @@ public: check(m_statement, 5, "CHAR1", SQL_VARCHAR, 3, 0, SQL_NULLABLE); check(m_statement, 6, "CHAR2", SQL_VARCHAR, 42, 0, SQL_NULLABLE); check(m_statement, 7, "CHAR3", SQL_VARCHAR, 1, 0, SQL_NO_NULLS); - check(m_statement, 8, "VCHAR", SQL_VARCHAR, 65536, 0, SQL_NULLABLE); + check(m_statement, 8, "VCHAR", SQL_VARCHAR, 65535, 0, SQL_NULLABLE); } void insert_test_string() { diff --git a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/IgniteDbDataReaderTests.cs b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/IgniteDbDataReaderTests.cs index 036e93f425..8479df3514 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/IgniteDbDataReaderTests.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/IgniteDbDataReaderTests.cs @@ -399,7 +399,7 @@ public class IgniteDbDataReaderTests : IgniteTestsBase Assert.AreEqual(typeof(string), schema[1].DataType); Assert.AreEqual("varchar", schema[1].DataTypeName); Assert.IsTrue(schema[1].AllowDBNull); - Assert.AreEqual(65536, schema[1].NumericPrecision); + Assert.AreEqual(65535, schema[1].NumericPrecision); Assert.IsNull(schema[1].NumericScale); Assert.IsNotNull((schema[1] as IgniteDbColumn)?.ColumnMetadata); } diff --git a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs index a7699e1454..ba53a68ac9 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs @@ -301,7 +301,7 @@ namespace Apache.Ignite.Tests.Sql Assert.IsTrue(columns[0].Nullable); Assert.AreEqual(ColumnType.String, columns[0].Type); Assert.AreEqual(int.MinValue, columns[0].Scale); - Assert.AreEqual(65536, columns[0].Precision); + Assert.AreEqual(65535, columns[0].Precision); Assert.AreEqual("ID", columns[1].Name); Assert.AreEqual("ID", columns[1].Origin!.ColumnName); diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java index 8afecc4ad1..581638865e 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/PlatformTestNodeRunner.java @@ -46,6 +46,7 @@ import org.apache.ignite.compute.ComputeJob; import org.apache.ignite.compute.JobExecutionContext; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.binarytuple.BinaryTupleReader; +import org.apache.ignite.internal.catalog.commands.CatalogUtils; import org.apache.ignite.internal.catalog.commands.ColumnParams; import org.apache.ignite.internal.catalog.commands.CreateTableParams; import org.apache.ignite.internal.catalog.commands.CreateZoneParams; @@ -61,7 +62,6 @@ import org.apache.ignite.internal.schema.row.Row; import org.apache.ignite.internal.schema.testutils.SchemaConfigurationConverter; import org.apache.ignite.internal.schema.testutils.builder.SchemaBuilders; import org.apache.ignite.internal.schema.testutils.definition.ColumnType; -import org.apache.ignite.internal.schema.testutils.definition.ColumnType.TemporalColumnType; import org.apache.ignite.internal.schema.testutils.definition.TableDefinition; import org.apache.ignite.internal.table.RecordBinaryViewImpl; import org.apache.ignite.internal.table.distributed.TableManager; @@ -296,14 +296,14 @@ public class PlatformTestNodeRunner { .tableName(TABLE_NAME) .columns(List.of( ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(), - ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build() + ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).nullable(true).build() )) .primaryKeyColumns(List.of(keyCol)) .build(); assertThat(ignite.catalogManager().createTable(createTableParams), willBe(nullValue())); - int maxTimePrecision = TemporalColumnType.MAX_TIME_PRECISION; + int maxTimePrecision = CatalogUtils.MAX_TIME_PRECISION; TableDefinition schTblAll = SchemaBuilders.tableBuilder(DEFAULT_SCHEMA_NAME, TABLE_NAME_ALL_COLUMNS).columns( SchemaBuilders.column(keyCol, ColumnType.INT64).build(), @@ -337,7 +337,7 @@ public class PlatformTestNodeRunner { .tableName(TABLE_NAME_ALL_COLUMNS) .columns(List.of( ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(), - ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build(), + ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).nullable(true).build(), ColumnParams.builder().name("INT8").type(org.apache.ignite.sql.ColumnType.INT8).nullable(true).build(), ColumnParams.builder().name("INT16").type(org.apache.ignite.sql.ColumnType.INT16).nullable(true).build(), ColumnParams.builder().name("INT32").type(org.apache.ignite.sql.ColumnType.INT32).nullable(true).build(), @@ -360,7 +360,7 @@ public class PlatformTestNodeRunner { .nullable(true).build(), ColumnParams.builder().name("TIMESTAMP2").type(org.apache.ignite.sql.ColumnType.DATETIME).precision(4) .nullable(true).build(), - ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true) + ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).nullable(true) .build(), ColumnParams.builder().name("DECIMAL").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3) .nullable(true).build() @@ -402,7 +402,7 @@ public class PlatformTestNodeRunner { .tableName(TABLE_NAME_ALL_COLUMNS_SQL) .columns(List.of( ColumnParams.builder().name(keyCol).type(org.apache.ignite.sql.ColumnType.INT64).build(), - ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build(), + ColumnParams.builder().name("STR").type(org.apache.ignite.sql.ColumnType.STRING).nullable(true).build(), ColumnParams.builder().name("INT8").type(org.apache.ignite.sql.ColumnType.INT8).nullable(true).build(), ColumnParams.builder().name("INT16").type(org.apache.ignite.sql.ColumnType.INT16).nullable(true).build(), ColumnParams.builder().name("INT32").type(org.apache.ignite.sql.ColumnType.INT32).nullable(true).build(), @@ -423,7 +423,7 @@ public class PlatformTestNodeRunner { .precision(maxTimePrecision).nullable(true).build(), ColumnParams.builder().name("TIMESTAMP2").type(org.apache.ignite.sql.ColumnType.TIMESTAMP) .precision(maxTimePrecision).nullable(true).build(), - ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true) + ColumnParams.builder().name("BLOB").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).nullable(true) .build(), ColumnParams.builder().name("DECIMAL").type(org.apache.ignite.sql.ColumnType.DECIMAL).precision(19).scale(3) .nullable(true).build() @@ -501,8 +501,8 @@ public class PlatformTestNodeRunner { createTwoColumnTable( ignite, - ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.STRING).length(0).build(), - ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).length(0).nullable(true).build() + ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.STRING).build(), + ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.STRING).nullable(true).build() ); createTwoColumnTable( @@ -538,8 +538,8 @@ public class PlatformTestNodeRunner { createTwoColumnTable( ignite, - ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).build(), - ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).length(0).nullable(true) + ColumnParams.builder().name("KEY").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).build(), + ColumnParams.builder().name("VAL").type(org.apache.ignite.sql.ColumnType.BYTE_ARRAY).nullable(true) .build() ); diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java index ef6bfcf166..0702740b87 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMetadataTest.java @@ -182,13 +182,13 @@ public class ItMetadataTest extends ClusterPerClassIntegrationTest { // Character string types new MetadataMatcher().name("CHAR_C").type(ColumnType.STRING).precision(1).scale(UNDEFINED_SCALE), new MetadataMatcher().name("CHAR_C2").type(ColumnType.STRING).precision(65536).scale(UNDEFINED_SCALE), - new MetadataMatcher().name("VARCHAR_C").type(ColumnType.STRING).precision(65536).scale(UNDEFINED_SCALE), + new MetadataMatcher().name("VARCHAR_C").type(ColumnType.STRING).precision(65535).scale(UNDEFINED_SCALE), new MetadataMatcher().name("VARCHAR_C2").type(ColumnType.STRING).precision(125).scale(UNDEFINED_SCALE), // Binary string types new MetadataMatcher().name("BINARY_C").type(ColumnType.BYTE_ARRAY).precision(1).scale(UNDEFINED_SCALE), new MetadataMatcher().name("BINARY_C2").type(ColumnType.BYTE_ARRAY).precision(65536).scale(UNDEFINED_SCALE), - new MetadataMatcher().name("VARBINARY_C").type(ColumnType.BYTE_ARRAY).precision(65536).scale(UNDEFINED_SCALE), + new MetadataMatcher().name("VARBINARY_C").type(ColumnType.BYTE_ARRAY).precision(65535).scale(UNDEFINED_SCALE), new MetadataMatcher().name("VARBINARY_C2").type(ColumnType.BYTE_ARRAY).precision(125).scale(UNDEFINED_SCALE), // Datetime types diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java index 1a4b241bdc..281f6e977c 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java @@ -812,8 +812,8 @@ public class ItSecondaryIndexTest extends ClusterPerClassIntegrationTest { assertQuery("SELECT id FROM Birthday WHERE name BETWEEN 'B' AND 'D' AND name > ?") .withParams("Bach") .matches(containsIndexScan("PUBLIC", "BIRTHDAY", NAME_DATE_IDX)) - .matches(containsString("searchBounds=[[RangeBounds [lowerBound=$GREATEST2(_UTF-8'B':VARCHAR(65536) " - + "CHARACTER SET \"UTF-8\", ?0), upperBound=_UTF-8'D':VARCHAR(65536) CHARACTER SET \"UTF-8\"")) + .matches(containsString("searchBounds=[[RangeBounds [lowerBound=$GREATEST2(_UTF-8'B':VARCHAR(65535) " + + "CHARACTER SET \"UTF-8\", ?0), upperBound=_UTF-8'D':VARCHAR(65535) CHARACTER SET \"UTF-8\"")) .returns(2) .returns(6) .check(); diff --git a/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/definition/ColumnType.java b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/definition/ColumnType.java index ba31be461e..c1b85a0298 100644 --- a/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/definition/ColumnType.java +++ b/modules/schema/src/testFixtures/java/org/apache/ignite/internal/schema/testutils/definition/ColumnType.java @@ -17,8 +17,9 @@ package org.apache.ignite.internal.schema.testutils.definition; +import static org.apache.ignite.internal.catalog.commands.CatalogUtils.DEFAULT_VARLEN_LENGTH; + import java.util.Objects; -import org.apache.ignite.internal.catalog.commands.CatalogUtils; /** * Predefined column types. @@ -259,10 +260,10 @@ public class ColumnType { */ public static class VarLenColumnType extends ColumnType { /** String varlen type of unlimited length. */ - private static final VarLenColumnType UNLIMITED_STRING = new VarLenColumnType(ColumnTypeSpec.STRING, CatalogUtils.MAX_LENGTH); + private static final VarLenColumnType UNLIMITED_STRING = new VarLenColumnType(ColumnTypeSpec.STRING, DEFAULT_VARLEN_LENGTH); /** Blob varlen type of unlimited length. */ - private static final VarLenColumnType UNLIMITED_BLOB = new VarLenColumnType(ColumnTypeSpec.BYTES, CatalogUtils.MAX_LENGTH); + private static final VarLenColumnType UNLIMITED_BLOB = new VarLenColumnType(ColumnTypeSpec.BYTES, DEFAULT_VARLEN_LENGTH); /** Max length. */ private final int length; diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeFactory.java index 390d9be156..4e399ab247 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeFactory.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/type/IgniteTypeFactory.java @@ -261,12 +261,12 @@ public class IgniteTypeFactory extends JavaTypeFactoryImpl { case VARCHAR: case CHAR: return relType.getPrecision() == PRECISION_NOT_SPECIFIED - ? NativeTypes.stringOf(CatalogUtils.MAX_LENGTH) + ? NativeTypes.stringOf(CatalogUtils.DEFAULT_VARLEN_LENGTH) : NativeTypes.stringOf(relType.getPrecision()); case BINARY: case VARBINARY: return relType.getPrecision() == PRECISION_NOT_SPECIFIED - ? NativeTypes.blobOf(CatalogUtils.MAX_LENGTH) + ? NativeTypes.blobOf(CatalogUtils.DEFAULT_VARLEN_LENGTH) : NativeTypes.blobOf(relType.getPrecision()); case ANY: if (relType instanceof IgniteCustomType) {
