From 519d1ceeb04cd99530bceb60c1a8e0966c413541 Mon Sep 17 00:00:00 2001 From: TJ Banghart Date: Mon, 20 Mar 2023 10:07:36 -0700 Subject: [PATCH] [CALCITE-6034] Add isAutoIncrement and isGenerated args to MetaColumn constructor --- .../org/apache/calcite/avatica/MetaImpl.java | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/apache/calcite/avatica/MetaImpl.java b/core/src/main/java/org/apache/calcite/avatica/MetaImpl.java index c41f8edfc7..4eb6a2ebe6 100644 --- a/core/src/main/java/org/apache/calcite/avatica/MetaImpl.java +++ b/core/src/main/java/org/apache/calcite/avatica/MetaImpl.java @@ -46,6 +46,7 @@ import java.util.List; import java.util.Map; import java.util.NoSuchElementException; +import java.util.Objects; /** * Basic implementation of {@link Meta}. @@ -352,10 +353,13 @@ public static class MetaColumn implements Named { public final String scopeTable = null; public final Short sourceDataType = null; @ColumnNoNulls - public final String isAutoincrement = ""; + public final String isAutoincrement; @ColumnNoNulls - public final String isGeneratedcolumn = ""; + public final String isGeneratedcolumn; + // TODO: https://issues.apache.org/jira/browse/CALCITE-5549 + // mark as deprecated once Calcite uses updated constructor. + @SuppressWarnings("unused") public MetaColumn( String tableCat, String tableSchem, @@ -370,6 +374,27 @@ public MetaColumn( Integer charOctetLength, int ordinalPosition, String isNullable) { + this(tableCat, tableSchem, tableName, columnName, dataType, typeName, columnSize, + decimalDigits, numPrecRadix, nullable, charOctetLength, ordinalPosition, isNullable, "", + ""); + } + + public MetaColumn( + String tableCat, + String tableSchem, + String tableName, + String columnName, + int dataType, + String typeName, + Integer columnSize, + Integer decimalDigits, + Integer numPrecRadix, + int nullable, + Integer charOctetLength, + int ordinalPosition, + String isNullable, + String isAutoincrement, + String isGeneratedcolumn) { this.tableCat = tableCat; this.tableSchem = tableSchem; this.tableName = tableName; @@ -383,11 +408,29 @@ public MetaColumn( this.charOctetLength = charOctetLength; this.ordinalPosition = ordinalPosition; this.isNullable = isNullable; + this.isAutoincrement = isAutoincrement; + this.isGeneratedcolumn = isGeneratedcolumn; } public String getName() { return columnName; } + + /** Returns a copy of this MetaColumn, overriding the value of {@code isAutoincrement}. */ + @SuppressWarnings("unused") // called from Calcite + public MetaColumn withIsAutoincrement(String isAutoincrement) { + return new MetaColumn(tableCat, tableSchem, tableName, columnName, dataType, typeName, + columnSize, decimalDigits, numPrecRadix, nullable, charOctetLength, ordinalPosition, + isNullable, Objects.requireNonNull(isAutoincrement), isGeneratedcolumn); + } + + /** Returns a copy of this MetaColumn, overriding the value of {@code isGeneratedcolumn}. */ + @SuppressWarnings("unused") // called from Calcite + public MetaColumn withIsGeneratedcolumn(String isGeneratedcolumn) { + return new MetaColumn(tableCat, tableSchem, tableName, columnName, dataType, typeName, + columnSize, decimalDigits, numPrecRadix, nullable, charOctetLength, ordinalPosition, + isNullable, isAutoincrement, Objects.requireNonNull(isGeneratedcolumn)); + } } /** Metadata describing a table. */