This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-20105
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/ignite-20105 by this push:
new c95e9d3651 NativeTypes use precision and scale from Catalog.
c95e9d3651 is described below
commit c95e9d36516351abc189b12623e2f0febe3a024e
Author: amashenkov <[email protected]>
AuthorDate: Fri Aug 4 12:57:13 2023 +0300
NativeTypes use precision and scale from Catalog.
---
.../internal/catalog/commands/CatalogUtils.java | 10 +++++++--
.../internal/table/ItThinClientColocationTest.java | 4 ++--
.../ignite/internal/schema/DecimalNativeType.java | 6 ------
.../apache/ignite/internal/schema/NativeTypes.java | 7 ++++---
.../ignite/internal/schema/TemporalNativeType.java | 24 ++--------------------
.../schema/AbstractSchemaConverterTest.java | 3 ++-
.../schema/serializer/AbstractSerializerTest.java | 6 +++---
7 files changed, 21 insertions(+), 39 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 f26ab62b65..00868794e7 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
@@ -59,6 +59,13 @@ public class CatalogUtils {
*/
public static final int DEFAULT_DECIMAL_PRECISION = 19;
+ /**
+ * Default scale is 0.
+ *
+ * <p>SQL`16 part 2 section 6.1 syntax rule 22
+ */
+ public static final int DEFAULT_SCALE = 0;
+
/**
* Maximum TIME and TIMESTAMP precision is implementation-defined.
*
@@ -169,8 +176,7 @@ public class CatalogUtils {
*/
public static CatalogTableColumnDescriptor fromParams(ColumnParams params)
{
int precision = params.precision() != null ? params.precision() :
defaultPrecision(params.type());
- /* Default scale is 0. SQL`16 part 2 section 6.1 syntax rule 22 */
- int scale = params.scale() != null ? params.scale() : 0;
+ int scale = params.scale() != null ? params.scale() : DEFAULT_SCALE;
int length = params.length() != null ? params.length() :
defaultLength(params.type());
DefaultValue defaultValue = params.defaultValueDefinition();
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItThinClientColocationTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItThinClientColocationTest.java
index a79567d88c..c59fe675ac 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItThinClientColocationTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItThinClientColocationTest.java
@@ -27,6 +27,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
import org.apache.ignite.client.IgniteClient;
import org.apache.ignite.client.handler.requests.table.ClientTableCommon;
+import org.apache.ignite.internal.catalog.commands.CatalogUtils;
import org.apache.ignite.internal.client.table.ClientColumn;
import org.apache.ignite.internal.client.table.ClientSchema;
import org.apache.ignite.internal.client.table.ClientTupleSerializer;
@@ -34,7 +35,6 @@ import org.apache.ignite.internal.schema.Column;
import org.apache.ignite.internal.schema.NativeType;
import org.apache.ignite.internal.schema.NativeTypes;
import org.apache.ignite.internal.schema.SchemaDescriptor;
-import org.apache.ignite.internal.schema.TemporalNativeType;
import org.apache.ignite.internal.schema.marshaller.TupleMarshaller;
import org.apache.ignite.internal.schema.marshaller.TupleMarshallerException;
import org.apache.ignite.internal.schema.marshaller.TupleMarshallerImpl;
@@ -145,7 +145,7 @@ public class ItThinClientColocationTest extends
ClusterPerClassIntegrationTest {
var types2 = new ArrayList<NativeType>();
- for (int i = 0; i <= TemporalNativeType.MAX_TIME_PRECISION; i++) {
+ for (int i = 0; i <= CatalogUtils.MAX_TIME_PRECISION; i++) {
types2.add(NativeTypes.time(i));
types2.add(NativeTypes.datetime(i));
types2.add(NativeTypes.timestamp(i));
diff --git
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/DecimalNativeType.java
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/DecimalNativeType.java
index 45949c98e3..cb642ba90f 100644
---
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/DecimalNativeType.java
+++
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/DecimalNativeType.java
@@ -24,12 +24,6 @@ import org.apache.ignite.internal.tostring.S;
* Decimal column type.
*/
public class DecimalNativeType extends NativeType {
- /** Default precision. */
- public static final int DEFAULT_PRECISION = 19;
-
- /** Default scale. */
- public static final int DEFAULT_SCALE = 3;
-
/** Precision. */
private final int precision;
diff --git
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/NativeTypes.java
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/NativeTypes.java
index 0a3415395a..0b0572c336 100644
---
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/NativeTypes.java
+++
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/NativeTypes.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.schema;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.BitSet;
+import org.apache.ignite.internal.catalog.commands.CatalogUtils;
import org.jetbrains.annotations.Contract;
/**
@@ -151,7 +152,7 @@ public class NativeTypes {
* @see #time(int)
*/
public static NativeType time() {
- return
TemporalNativeType.time(TemporalNativeType.DEFAULT_TIME_PRECISION);
+ return TemporalNativeType.time(CatalogUtils.DEFAULT_TIME_PRECISION);
}
/**
@@ -171,7 +172,7 @@ public class NativeTypes {
* @see #datetime(int)
*/
public static NativeType datetime() {
- return
TemporalNativeType.datetime(TemporalNativeType.DEFAULT_TIMESTAMP_PRECISION);
+ return
TemporalNativeType.datetime(CatalogUtils.DEFAULT_TIMESTAMP_PRECISION);
}
/**
@@ -191,7 +192,7 @@ public class NativeTypes {
* @see #timestamp(int)
*/
public static NativeType timestamp() {
- return
TemporalNativeType.timestamp(TemporalNativeType.DEFAULT_TIMESTAMP_PRECISION);
+ return
TemporalNativeType.timestamp(CatalogUtils.DEFAULT_TIMESTAMP_PRECISION);
}
/**
diff --git
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
index 91164870c8..af7a9bb82d 100644
---
a/modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
+++
b/modules/schema/src/main/java/org/apache/ignite/internal/schema/TemporalNativeType.java
@@ -17,33 +17,13 @@
package org.apache.ignite.internal.schema;
+import org.apache.ignite.internal.catalog.commands.CatalogUtils;
import org.apache.ignite.internal.tostring.S;
/**
* Temporal native type.
*/
public class TemporalNativeType extends NativeType {
- /**
- * Default TIMESTAMP type precision: microseconds.
- *
- * <p>SQL99 part 2 section 6.1 syntax rule 30
- */
- public static final int DEFAULT_TIMESTAMP_PRECISION = 6;
-
- /**
- * Default TIME type precision: seconds.
- *
- * <p>SQL99 part 2 section 6.1 syntax rule 30
- */
- public static final int DEFAULT_TIME_PRECISION = 0;
-
- /**
- * Max TIME precision.
- *
- * <p>SQL99 part 2 section 6.1 syntax rule 32
- */
- public static final int MAX_TIME_PRECISION = 9;
-
/**
* Creates TIME type.
*
@@ -92,7 +72,7 @@ public class TemporalNativeType extends NativeType {
private TemporalNativeType(NativeTypeSpec typeSpec, int size, int
precision) {
super(typeSpec, size);
- if (precision < 0 || precision > MAX_TIME_PRECISION) {
+ if (precision < 0 || precision > CatalogUtils.MAX_TIME_PRECISION) {
throw new IllegalArgumentException("Unsupported fractional seconds
precision: " + precision);
}
diff --git
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/AbstractSchemaConverterTest.java
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/AbstractSchemaConverterTest.java
index 81b7a67055..f405601fca 100644
---
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/AbstractSchemaConverterTest.java
+++
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/AbstractSchemaConverterTest.java
@@ -35,6 +35,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import org.apache.ignite.internal.catalog.commands.CatalogUtils;
import
org.apache.ignite.internal.schema.testutils.definition.ColumnType.DecimalColumnType;
import org.apache.ignite.internal.util.ArrayUtils;
@@ -144,7 +145,7 @@ public class AbstractSchemaConverterTest {
case TIMESTAMP:
return NativeTypes.timestamp();
case NUMBER:
- return
NativeTypes.numberOf(DecimalNativeType.DEFAULT_PRECISION);
+ return
NativeTypes.numberOf(CatalogUtils.DEFAULT_DECIMAL_PRECISION);
case STRING:
return NativeTypes.stringOf(8);
case UUID:
diff --git
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/serializer/AbstractSerializerTest.java
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/serializer/AbstractSerializerTest.java
index bcd6a78f74..3e5a08fa73 100644
---
a/modules/schema/src/test/java/org/apache/ignite/internal/schema/serializer/AbstractSerializerTest.java
+++
b/modules/schema/src/test/java/org/apache/ignite/internal/schema/serializer/AbstractSerializerTest.java
@@ -45,8 +45,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import org.apache.ignite.internal.catalog.commands.CatalogUtils;
import org.apache.ignite.internal.schema.Column;
-import org.apache.ignite.internal.schema.DecimalNativeType;
import org.apache.ignite.internal.schema.DefaultValueProvider.Type;
import org.apache.ignite.internal.schema.NativeType;
import org.apache.ignite.internal.schema.NativeTypeSpec;
@@ -338,7 +338,7 @@ public class AbstractSerializerTest {
case DOUBLE:
return NativeTypes.DOUBLE;
case DECIMAL:
- return
NativeTypes.decimalOf(DecimalNativeType.DEFAULT_PRECISION,
DecimalNativeType.DEFAULT_SCALE);
+ return
NativeTypes.decimalOf(CatalogUtils.DEFAULT_DECIMAL_PRECISION,
CatalogUtils.DEFAULT_SCALE);
case DATE:
return NativeTypes.DATE;
case TIME:
@@ -348,7 +348,7 @@ public class AbstractSerializerTest {
case TIMESTAMP:
return NativeTypes.timestamp();
case NUMBER:
- return
NativeTypes.numberOf(DecimalNativeType.DEFAULT_PRECISION);
+ return
NativeTypes.numberOf(CatalogUtils.DEFAULT_DECIMAL_PRECISION);
case STRING:
return NativeTypes.stringOf(Byte.MAX_VALUE);
case UUID: