From 962ffee3d040cf3ccb6cea04a7219d1d65e4dc44 Mon Sep 17 00:00:00 2001 From: Sergey Nuyanzin Date: Fri, 15 May 2026 17:52:10 +0200 Subject: [PATCH 1/2] [CALCITE-7531] Add to `BasicSqlType` constructor accepting precision, scale and nullability --- .../org/apache/calcite/sql/type/BasicSqlType.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java b/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java index e8e9332d6197..e4d6366d7c2d 100644 --- a/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java +++ b/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java @@ -76,6 +76,20 @@ public BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, int precision) { this(typeSystem, typeName, false, precision, SCALE_NOT_SPECIFIED, null, null); + } + + /** + * Constructs a type with precision/length and scale. + * + * @param typeSystem Type system + * @param typeName Type name + * @param isNullable nullable + * @param precision Precision (called length for some types) + */ + public BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, + boolean isNullable, int precision) { + this(typeSystem, typeName, isNullable, precision, SCALE_NOT_SPECIFIED, + null, null); checkPrecScale(typeName, true, false); } From 9612c6d0733f5639140e33e2b203f91055e4a129 Mon Sep 17 00:00:00 2001 From: Sergey Nuyanzin Date: Sat, 16 May 2026 11:22:05 +0200 Subject: [PATCH 2/2] [CALCITE-7531] Address feedback --- .../main/java/org/apache/calcite/sql/type/BasicSqlType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java b/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java index e4d6366d7c2d..b322c4eaa82e 100644 --- a/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java +++ b/core/src/main/java/org/apache/calcite/sql/type/BasicSqlType.java @@ -79,11 +79,11 @@ public BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName, } /** - * Constructs a type with precision/length and scale. + * Constructs a type with precision/length and nullability. * * @param typeSystem Type system * @param typeName Type name - * @param isNullable nullable + * @param isNullable Whether the type is nullable * @param precision Precision (called length for some types) */ public BasicSqlType(RelDataTypeSystem typeSystem, SqlTypeName typeName,