You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ar...@apache.org on 2020/07/16 09:10:48 UTC
[metamodel] 03/07: (METAMODEL-1226) Metadata for numeric data types
does not include number of digits
This is an automated email from the ASF dual-hosted git repository.
arjansh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metamodel.git
commit 7cf9d5a48f624ec1836d37c2a735c6446effc10e
Author: Tim Kingsbury <ti...@sas.com>
AuthorDate: Tue Jun 30 14:36:15 2020 -0400
(METAMODEL-1226) Metadata for numeric data types does not include number of digits
---
.../apache/metamodel/schema/ImmutableColumn.java | 49 ++++++++++++++++++++--
.../org/apache/metamodel/schema/MutableColumn.java | 11 +++++
.../builder/SingleMapColumnSchemaBuilder.java | 2 +-
.../create/AbstractCreateTableBuilderTest.java | 2 +-
.../org/apache/metamodel/query/FilterItemTest.java | 4 +-
.../java/org/apache/metamodel/csv/CsvTable.java | 2 +-
.../mongo2/MongoDbTableCreationBuilder.java | 2 +-
.../mongo3/MongoDbTableCreationBuilder.java | 2 +-
8 files changed, 63 insertions(+), 11 deletions(-)
diff --git a/core/src/main/java/org/apache/metamodel/schema/ImmutableColumn.java b/core/src/main/java/org/apache/metamodel/schema/ImmutableColumn.java
index 0a80de0..4feb928 100644
--- a/core/src/main/java/org/apache/metamodel/schema/ImmutableColumn.java
+++ b/core/src/main/java/org/apache/metamodel/schema/ImmutableColumn.java
@@ -47,6 +47,48 @@ public final class ImmutableColumn extends AbstractColumn implements Serializabl
/**
* Constructs a new {@link ImmutableColumn}.
+ *
+ * @param name
+ * the name of the column
+ * @param type
+ * the type of the column
+ * @param table
+ * the table which the constructed column will pertain to
+ * @param columnNumber
+ * the column number of the column
+ * @param columnSize
+ * the size of the column
+ * @param nativeType
+ * the native type of the column
+ * @param nullable
+ * whether the column's values are nullable
+ * @param remarks
+ * the remarks of the column
+ * @param indexed
+ * whether the column is indexed or not
+ * @param quote
+ * the quote character(s) of the column
+ * @param primaryKey
+ * whether the column is a primary key or not
+ */
+ public ImmutableColumn(String name, ColumnType type, Table table, int columnNumber, Integer columnSize,
+ String nativeType, Boolean nullable, String remarks, boolean indexed, String quote, boolean primaryKey) {
+ this.name = name;
+ this.type = type;
+ this.table = table;
+ this.columnNumber = columnNumber;
+ this.columnSize = columnSize;
+ this.decimalDigits = null;
+ this.nativeType = nativeType;
+ this.nullable = nullable;
+ this.remarks = remarks;
+ this.indexed = indexed;
+ this.quote = quote;
+ this.primaryKey = primaryKey;
+ }
+
+ /**
+ * Constructs a new {@link ImmutableColumn}.
*
* @param name
* the name of the column
@@ -58,6 +100,8 @@ public final class ImmutableColumn extends AbstractColumn implements Serializabl
* the column number of the column
* @param columnSize
* the size of the column
+ * @param decimalDigits
+ * number of digits of precision for a numeric type
* @param nativeType
* the native type of the column
* @param nullable
@@ -151,10 +195,7 @@ public final class ImmutableColumn extends AbstractColumn implements Serializabl
public Integer getDecimalDigits() {
return decimalDigits;
}
-
- @Override
- public Integer getDecimalDigits() { return decimalDigits; }
-
+
@Override
public String getNativeType() {
return nativeType;
diff --git a/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java b/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java
index da7e195..0a0933a 100644
--- a/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java
+++ b/core/src/main/java/org/apache/metamodel/schema/MutableColumn.java
@@ -71,6 +71,17 @@ public class MutableColumn extends AbstractColumn implements Serializable {
}
public MutableColumn(String name, ColumnType type, Table table, int columnNumber, Integer columnSize,
+ String nativeType, Boolean nullable, String remarks, boolean indexed, String quote) {
+ this(name, type, table, columnNumber, nullable);
+ setColumnSize(columnSize);
+ setDecimalDigits(null);
+ setNativeType(nativeType);
+ setRemarks(remarks);
+ setIndexed(indexed);
+ setQuote(quote);
+ }
+
+ public MutableColumn(String name, ColumnType type, Table table, int columnNumber, Integer columnSize,
Integer decimalDigits, String nativeType, Boolean nullable, String remarks, boolean indexed, String quote) {
this(name, type, table, columnNumber, nullable);
setColumnSize(columnSize);
diff --git a/core/src/main/java/org/apache/metamodel/schema/builder/SingleMapColumnSchemaBuilder.java b/core/src/main/java/org/apache/metamodel/schema/builder/SingleMapColumnSchemaBuilder.java
index e7effe8..440f69e 100644
--- a/core/src/main/java/org/apache/metamodel/schema/builder/SingleMapColumnSchemaBuilder.java
+++ b/core/src/main/java/org/apache/metamodel/schema/builder/SingleMapColumnSchemaBuilder.java
@@ -67,7 +67,7 @@ public class SingleMapColumnSchemaBuilder implements SchemaBuilder, DocumentConv
public MutableSchema build() {
MutableSchema schema = new MutableSchema(_schemaName);
MutableTable table = new MutableTable(_tableName, schema);
- table.addColumn(new MutableColumn(_columnName, ColumnType.MAP, table, 1, null, null, null, false, null, false, null));
+ table.addColumn(new MutableColumn(_columnName, ColumnType.MAP, table, 1, null, null, false, null, false, null));
schema.addTable(table);
return schema;
}
diff --git a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
index d95a1b0..e108277 100644
--- a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
+++ b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
@@ -83,7 +83,7 @@ public class AbstractCreateTableBuilderTest extends TestCase {
assertFalse(executed.get().booleanValue());
MutableTable likeTable = new MutableTable("blablablabla");
- likeTable.addColumn(new MutableColumn("foo", ColumnType.VARCHAR, likeTable, 0, 1234, null, "vch", true, null, false,
+ likeTable.addColumn(new MutableColumn("foo", ColumnType.VARCHAR, likeTable, 0, 1234, "vch", true, null, false,
null).setPrimaryKey(true));
likeTable.addColumn(new MutableColumn("bar"));
likeTable.addColumn(new MutableColumn("baz"));
diff --git a/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java b/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
index 0eea4e2..ab549b0 100644
--- a/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
@@ -414,7 +414,7 @@ public class FilterItemTest extends TestCase {
}
public void testInOperandSql() throws Exception {
- SelectItem selectItem = new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR, null, 1, null, null, null, true,
+ SelectItem selectItem = new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR, null, 1, null, null, true,
null, false, null));
Object operand = new String[] { "foo", "bar" };
assertEquals("foo IN ('foo' , 'bar')", new FilterItem(selectItem, OperatorType.IN, operand).toSql());
@@ -458,7 +458,7 @@ public class FilterItemTest extends TestCase {
}
public void testInOperandEvaluate() throws Exception {
- SelectItem selectItem = new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR, null, 1, null, null, null, true,
+ SelectItem selectItem = new SelectItem(new MutableColumn("foo", ColumnType.VARCHAR, null, 1, null, null, true,
null, false, null));
Object operand = new String[] { "foo", "bar" };
diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java
index 45f94c8..5e0081c 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvTable.java
@@ -134,7 +134,7 @@ final class CsvTable extends AbstractTable {
: columnNames.get(i);
final String columnName = namingSession.getNextColumnName(new ColumnNamingContextImpl(this,
intrinsicColumnName, i));
- final Column column = new MutableColumn(columnName, ColumnType.STRING, this, i, null, null, null, nullable,
+ final Column column = new MutableColumn(columnName, ColumnType.STRING, this, i, null, null, nullable,
null, false, null);
columns.add(column);
}
diff --git a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbTableCreationBuilder.java b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbTableCreationBuilder.java
index 816078b..c93acf1 100644
--- a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbTableCreationBuilder.java
+++ b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbTableCreationBuilder.java
@@ -46,7 +46,7 @@ final class MongoDbTableCreationBuilder extends
// all mongo db collections have an _id field as the first field.
ImmutableColumn idColumn = new ImmutableColumn("_id",
ColumnType.ROWID, table, table.getColumnCount(), null,
- null, null, null, null, true, null, true);
+ null, null, null, true, null, true);
table.addColumn(idColumn);
}
table.setSchema(schema);
diff --git a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbTableCreationBuilder.java b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbTableCreationBuilder.java
index 2f41eee..aaec48e 100644
--- a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbTableCreationBuilder.java
+++ b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbTableCreationBuilder.java
@@ -46,7 +46,7 @@ final class MongoDbTableCreationBuilder extends
// all mongo db collections have an _id field as the first field.
ImmutableColumn idColumn = new ImmutableColumn("_id",
ColumnType.ROWID, table, table.getColumnCount(), null,
- null, null, null, null, true, null, true);
+ null, null, null, true, null, true);
table.addColumn(idColumn);
}
table.setSchema(schema);