This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new 7de5864 EMPIREDB-362 DataListEntry Constructor correction
7de5864 is described below
commit 7de586461e1dbbf65b4cbceb441618135e263bfd
Author: Rainer Döbele <[email protected]>
AuthorDate: Fri Feb 25 20:37:24 2022 +0100
EMPIREDB-362 DataListEntry Constructor correction
---
.../org/apache/empire/data/list/DataListEntry.java | 15 +++++++--
.../empire/data/list/DataListFactoryImpl.java | 10 ++++--
.../apache/empire/db/validation/DBModelParser.java | 36 ++++++++++++++--------
.../empire/dbms/oracle/OracleDBModelParser.java | 2 +-
.../org/apache/empire/db/AliasExpressionTest.java | 2 +-
.../apache/empire/db/CoalesceExpressionTest.java | 2 +-
.../apache/empire/db/FunctionExpressionTest.java | 2 +-
7 files changed, 47 insertions(+), 22 deletions(-)
diff --git
a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
index a388e15..254b66c 100644
--- a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
+++ b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
@@ -44,12 +44,21 @@ public class DataListEntry implements RecordData,
Serializable
protected final DataListHead head;
protected final Object values[];
protected int rownum;
-
- public DataListEntry(DataListHead head, int rownum, Object values[])
+
+ public DataListEntry(DataListHead head, Object values[], int rownum)
{
this.head = head;
- this.rownum = rownum;
this.values = values;
+ this.rownum = rownum;
+ // check
+ int headColumnCount = head.getColumns().length;
+ if (values.length!=headColumnCount)
+ log.warn("DataListEntry number of values {} do not match number of
head columns {}!", values.length, headColumnCount);
+ }
+
+ public DataListEntry(DataListHead head, Object values[])
+ {
+ this(head, values, -1);
}
@SuppressWarnings("unchecked")
diff --git
a/empire-db/src/main/java/org/apache/empire/data/list/DataListFactoryImpl.java
b/empire-db/src/main/java/org/apache/empire/data/list/DataListFactoryImpl.java
index 2881cd6..669f9f6 100644
---
a/empire-db/src/main/java/org/apache/empire/data/list/DataListFactoryImpl.java
+++
b/empire-db/src/main/java/org/apache/empire/data/list/DataListFactoryImpl.java
@@ -47,7 +47,7 @@ public class DataListFactoryImpl<T extends DataListEntry>
implements DataListFac
@SuppressWarnings("unchecked")
protected static <T extends DataListEntry> Constructor<T>
findEntryConstructor(Class<?> listEntryClass, Class<? extends DataListHead>
listHeadClass)
{
- Constructor<?> constructor =
ClassUtils.findMatchingConstructor(listEntryClass, -1, listHeadClass,
int.class, Object[].class);
+ Constructor<?> constructor =
ClassUtils.findMatchingConstructor(listEntryClass, 2, listHeadClass,
Object[].class, int.class);
if (constructor==null)
throw new UnsupportedTypeException(listEntryClass);
// found
@@ -110,7 +110,13 @@ public class DataListFactoryImpl<T extends DataListEntry>
implements DataListFac
if (constructor==null)
throw new NotSupportedException(this, "newEntry");
// create item
- return constructor.newInstance(head, rownum, values);
+ switch(constructor.getParameterCount())
+ {
+ case 3: return constructor.newInstance(head, values, rownum);
+ case 2: return constructor.newInstance(head, values);
+ default:
+ throw new UnsupportedTypeException(constructor.getClass());
+ }
}
catch (InstantiationException e)
{
diff --git
a/empire-db/src/main/java/org/apache/empire/db/validation/DBModelParser.java
b/empire-db/src/main/java/org/apache/empire/db/validation/DBModelParser.java
index b2492ef..0c49e26 100644
--- a/empire-db/src/main/java/org/apache/empire/db/validation/DBModelParser.java
+++ b/empire-db/src/main/java/org/apache/empire/db/validation/DBModelParser.java
@@ -80,7 +80,7 @@ public class DBModelParser
}
protected final String catalog;
- protected final String schemaPattern;
+ protected final String schema;
protected final String remoteName;
protected DBDatabase remoteDb = null; /* will be recreated on every call
to checkModel */
@@ -93,26 +93,36 @@ public class DBModelParser
/**
* Creates a new Model Checker
* @param catalog
- * @param schemaPattern
+ * @param schema
*/
- public DBModelParser(String catalog, String schemaPattern)
+ public DBModelParser(String catalog, String schema)
{
this.catalog = catalog;
- this.schemaPattern = schemaPattern;
+ this.schema = schema;
// set origin
StringBuilder b = new StringBuilder();
if (StringUtils.isNotEmpty(catalog))
b.append(catalog);
- if (StringUtils.isNotEmpty(schemaPattern))
+ if (StringUtils.isNotEmpty(schema))
{ if (b.length()>0)
b.append(".");
- b.append(schemaPattern);
+ b.append(schema);
}
if (b.length()==0)
b.append("[Unknown]");
this.remoteName = b.toString();
}
+ public String getCatalog()
+ {
+ return catalog;
+ }
+
+ public String getSchema()
+ {
+ return schema;
+ }
+
public void setStandardIdentityColumnName(String
standardIdentityColumnName)
{
this.standardIdentityColumnName = standardIdentityColumnName;
@@ -198,7 +208,7 @@ public class DBModelParser
throws SQLException
{
tableMap.clear();
- ResultSet dbTables = dbMeta.getTables(catalog, schemaPattern,
tablePattern, new String[] { "TABLE", "VIEW" });
+ ResultSet dbTables = dbMeta.getTables(catalog, schema, tablePattern,
new String[] { "TABLE", "VIEW" });
try {
// ResultSet dbTables = dbMeta.getTables("PATOOL", "DBO", null,
new String[] { "TABLE", "VIEW" });
int count = 0;
@@ -232,7 +242,7 @@ public class DBModelParser
int count = 0;
for (DBRowSet t : getTables())
{
- ResultSet dbColumns = dbMeta.getColumns(catalog, schemaPattern,
t.getName(), null);
+ ResultSet dbColumns = dbMeta.getColumns(catalog, schema,
t.getName(), null);
try {
while (dbColumns.next())
{ // add the column
@@ -252,7 +262,7 @@ public class DBModelParser
protected int collectColumns(DatabaseMetaData dbMeta, String tablePattern)
throws SQLException
{
- ResultSet dbColumns = dbMeta.getColumns(catalog, schemaPattern,
tablePattern, null);
+ ResultSet dbColumns = dbMeta.getColumns(catalog, schema, tablePattern,
null);
try {
int count = 0;
while (dbColumns.next())
@@ -289,7 +299,7 @@ public class DBModelParser
// read pk
DBTable t = (DBTable)rs;
List<String> pkCols = new ArrayList<String>();
- ResultSet primaryKeys = dbMeta.getPrimaryKeys(catalog,
schemaPattern, t.getName());
+ ResultSet primaryKeys = dbMeta.getPrimaryKeys(catalog, schema,
t.getName());
try {
while (primaryKeys.next())
{
@@ -335,7 +345,7 @@ public class DBModelParser
protected int collectForeignKeys(DatabaseMetaData dbMeta, String
tablePattern)
throws SQLException
{
- ResultSet foreignKeys = dbMeta.getImportedKeys(catalog, schemaPattern,
tablePattern);
+ ResultSet foreignKeys = dbMeta.getImportedKeys(catalog, schema,
tablePattern);
try {
int count = 0;
while (foreignKeys.next())
@@ -442,12 +452,12 @@ public class DBModelParser
if (timestampColumn)
t.setTimestampColumn(col);
// info
- log.info("Added table column {}.{} of type {}", t.getName(), name,
empireType);
+ log.debug("Added table column {}.{} of type {}", t.getName(),
name, empireType);
}
else if (t instanceof DBView)
{
col = ((RemoteView)t).addColumn(name, empireType, colSize, false);
- log.info("Added view column {}.{} of type {}", t.getName(), name,
empireType);
+ log.debug("Added view column {}.{} of type {}", t.getName(), name,
empireType);
}
else
{ // Unknown type
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleDBModelParser.java
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleDBModelParser.java
index 1a374d4..9e0aa24 100644
---
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleDBModelParser.java
+++
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/OracleDBModelParser.java
@@ -35,7 +35,7 @@ public class OracleDBModelParser extends DBModelParser
*/
public String getSchemaName()
{
- return schemaPattern;
+ return schema;
}
/**
diff --git
a/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
b/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
index 7085c9e..4d9aa9c 100644
--- a/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/AliasExpressionTest.java
@@ -107,7 +107,7 @@ public class AliasExpressionTest
Object[] values = new Object[head.getColumns().length];
for (int i=0; i<values.length; i++)
values[i] = head.getColumns()[i].getName();
- DataListEntry dle = new DataListEntry(head, 0, values);
+ DataListEntry dle = new DataListEntry(head, values);
Assert.assertEquals(dle.getString(t.C_TEXT), values[1]);
Assert.assertEquals(dle.getString(ALIAS_1), values[0]);
Assert.assertEquals(dle.getString(ALIAS_2), values[2]);
diff --git
a/empire-db/src/test/java/org/apache/empire/db/CoalesceExpressionTest.java
b/empire-db/src/test/java/org/apache/empire/db/CoalesceExpressionTest.java
index d5e2210..6cf1cd3 100644
--- a/empire-db/src/test/java/org/apache/empire/db/CoalesceExpressionTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/CoalesceExpressionTest.java
@@ -105,7 +105,7 @@ public class CoalesceExpressionTest
Object[] values = new Object[head.getColumns().length];
for (int i=0; i<values.length; i++)
values[i] = head.getColumns()[i].getName();
- DataListEntry dle = new DataListEntry(head, 0, values);
+ DataListEntry dle = new DataListEntry(head, values);
Assert.assertEquals(dle.getString(t.C_TEXT), values[1]);
Assert.assertEquals(dle.getString(COALESCE_1), values[0]);
Assert.assertEquals(dle.getString(COALESCE_2), values[0]);
diff --git
a/empire-db/src/test/java/org/apache/empire/db/FunctionExpressionTest.java
b/empire-db/src/test/java/org/apache/empire/db/FunctionExpressionTest.java
index 179be84..b3bc2cd 100644
--- a/empire-db/src/test/java/org/apache/empire/db/FunctionExpressionTest.java
+++ b/empire-db/src/test/java/org/apache/empire/db/FunctionExpressionTest.java
@@ -133,7 +133,7 @@ public class FunctionExpressionTest
Object[] values = new Object[head.getColumns().length];
for (int i=0; i<values.length; i++)
values[i] = head.getColumns()[i].getName();
- DataListEntry dle = new DataListEntry(head, 0, values);
+ DataListEntry dle = new DataListEntry(head, values);
Assert.assertEquals(dle.getFieldIndex(NUMBER), 0);
Assert.assertEquals(dle.getFieldIndex(TEST_COUNT), 1);
Assert.assertEquals(dle.getFieldIndex(TEST_2_COUNT), 2);