This is an automated email from the ASF dual-hosted git repository.
vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new 90ccbb0 [CALCITE-4216] Make
org.apache.calcite.rel.type.RelDataType#getFamily non-nullable
90ccbb0 is described below
commit 90ccbb01ae3060def7ad73bbd5af45b6c1a64b99
Author: Vladimir Sitnikov <[email protected]>
AuthorDate: Wed Sep 2 00:31:51 2020 +0300
[CALCITE-4216] Make org.apache.calcite.rel.type.RelDataType#getFamily
non-nullable
---
.../java/org/apache/calcite/rel/type/RelDataType.java | 2 +-
.../org/apache/calcite/sql/type/AbstractSqlType.java | 16 +++++++---------
.../java/org/apache/calcite/sql/type/ObjectSqlType.java | 15 ++++++---------
3 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
b/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
index 47b1bc2..07223dc 100644
--- a/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
+++ b/core/src/main/java/org/apache/calcite/rel/type/RelDataType.java
@@ -223,7 +223,7 @@ public interface RelDataType {
* Gets a canonical object representing the family of this type. Two values
* can be compared if and only if their types are in the same family.
*
- * @return canonical object representing type family
+ * @return canonical object representing type family, never null
*/
RelDataTypeFamily getFamily();
diff --git
a/core/src/main/java/org/apache/calcite/sql/type/AbstractSqlType.java
b/core/src/main/java/org/apache/calcite/sql/type/AbstractSqlType.java
index e75bdb7..25013b3 100644
--- a/core/src/main/java/org/apache/calcite/sql/type/AbstractSqlType.java
+++ b/core/src/main/java/org/apache/calcite/sql/type/AbstractSqlType.java
@@ -57,23 +57,21 @@ public abstract class AbstractSqlType
//~ Methods ----------------------------------------------------------------
- // implement RelDataType
- public SqlTypeName getSqlTypeName() {
+ @Override public SqlTypeName getSqlTypeName() {
return typeName;
}
- // implement RelDataType
- public boolean isNullable() {
+ @Override public boolean isNullable() {
return isNullable;
}
- // implement RelDataType
- public RelDataTypeFamily getFamily() {
- return typeName.getFamily();
+ @Override public RelDataTypeFamily getFamily() {
+ SqlTypeFamily family = typeName.getFamily();
+ // If typename does not have family, treat the current type as the only
member its family
+ return family != null ? family : this;
}
- // implement RelDataType
- public RelDataTypePrecedenceList getPrecedenceList() {
+ @Override public RelDataTypePrecedenceList getPrecedenceList() {
RelDataTypePrecedenceList list =
SqlTypeExplicitPrecedenceList.getListForType(this);
if (list != null) {
diff --git a/core/src/main/java/org/apache/calcite/sql/type/ObjectSqlType.java
b/core/src/main/java/org/apache/calcite/sql/type/ObjectSqlType.java
index 2cf929e..e5901ca 100644
--- a/core/src/main/java/org/apache/calcite/sql/type/ObjectSqlType.java
+++ b/core/src/main/java/org/apache/calcite/sql/type/ObjectSqlType.java
@@ -65,26 +65,23 @@ public class ObjectSqlType extends AbstractSqlType {
this.family = family;
}
- // implement RelDataType
- public RelDataTypeComparability getComparability() {
+ @Override public RelDataTypeComparability getComparability() {
return comparability;
}
- // override AbstractSqlType
- public SqlIdentifier getSqlIdentifier() {
+ @Override public SqlIdentifier getSqlIdentifier() {
return sqlIdentifier;
}
- // override AbstractSqlType
- public RelDataTypeFamily getFamily() {
+ @Override public RelDataTypeFamily getFamily() {
// each UDT is in its own lonely family, until one day when
// we support inheritance (at which time also need to implement
// getPrecedenceList).
- return family;
+ RelDataTypeFamily family = this.family;
+ return family != null ? family : this;
}
- // implement RelDataTypeImpl
- protected void generateTypeString(StringBuilder sb, boolean withDetail) {
+ @Override protected void generateTypeString(StringBuilder sb, boolean
withDetail) {
// TODO jvs 10-Feb-2005: proper quoting; dump attributes withDetail?
sb.append("ObjectSqlType(");
sb.append(sqlIdentifier.toString());