Repository: metamodel
Updated Branches:
  refs/heads/master 1d56a9ff0 -> fe9ab604a


http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java 
b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
index f6352d4..04cfae9 100644
--- 
a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+++ 
b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
@@ -60,6 +60,70 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
     private final Table table1 = schema.getTableByName(TABLE_CONTRIBUTOR);
     private final Table table2 = schema.getTableByName(TABLE_ROLE);
 
+    public void testSchemaTraversalWithAliasTable() {
+        final MockUpdateableDataContext dc = new MockUpdateableDataContext();
+        
+        final Column column = dc.getColumnByQualifiedLabel("foo");
+        assertEquals("table", column.getTable().getName());
+    }
+    
+    public void testNoAliasTableWhenSystemPropertySet() {
+        
System.setProperty(QueryPostprocessDataContext.SYSTEM_PROPERTY_CREATE_DEFAULT_TABLE_ALIAS,
 "false");
+        try {
+            final MockUpdateableDataContext dc = new 
MockUpdateableDataContext();
+            final List<Table> tables = dc.getDefaultSchema().getTables();
+            assertEquals(1, tables.size());
+            
+            assertEquals("table", tables.get(0).getName());
+        } finally {
+            
System.clearProperty(QueryPostprocessDataContext.SYSTEM_PROPERTY_CREATE_DEFAULT_TABLE_ALIAS);
+        }
+    }
+
+    public void testNoAliasTableWhenConstructorArgSet() {
+        final MockUpdateableDataContext dc = new 
MockUpdateableDataContext(false);
+        final List<Table> tables = dc.getDefaultSchema().getTables();
+        assertEquals(1, tables.size());
+
+        assertEquals("table", tables.get(0).getName());
+    }
+    
+    public void testAliasTableQueries() {
+        final MockUpdateableDataContext dc = new MockUpdateableDataContext();
+        final List<Table> tables = dc.getDefaultSchema().getTables();
+        assertEquals(2, tables.size());
+
+        final Query q0 = dc.query().from(tables.get(0)).selectAll().toQuery();
+        assertEquals("SELECT table.foo, table.bar FROM schema.table", 
q0.toSql());
+
+        final Query q1 = dc.parseQuery("SELECT * FROM default_table d");
+        assertEquals("SELECT d.foo, d.bar FROM schema.default_table d", 
q1.toSql());
+
+        final Query q2 = dc.parseQuery("SELECT * FROM default_table");
+        assertEquals("SELECT default_table.foo, default_table.bar FROM 
schema.default_table", q2.toSql());
+
+        final DataSet dataSet0 = dc.executeQuery(q0);
+        final DataSet dataSet1 = dc.executeQuery(q1);
+        final DataSet dataSet2 = dc.executeQuery(q2);
+
+        Arrays.asList(dataSet0, dataSet1, dataSet2).forEach(ds -> {
+            assertTrue(ds.next());
+            assertEquals("Row[values=[1, hello]]", ds.getRow().toString());
+            assertTrue(ds.next());
+            assertEquals("Row[values=[2, there]]", ds.getRow().toString());
+            assertTrue(ds.next());
+            assertFalse(ds.next());
+            ds.close();
+        });
+
+        assertEquals("Row[values=[3]]", MetaModelHelper
+                .executeSingleRowQuery(dc, dc.parseQuery("SELECT COUNT(*) FROM 
default_table")).toString());
+        assertEquals("Row[values=[1]]",
+                MetaModelHelper
+                        .executeSingleRowQuery(dc, dc.parseQuery("SELECT 
COUNT(*) FROM default_table WHERE foo = '2'"))
+                        .toString());
+    }
+
     public void testQueryMaxRows0() throws Exception {
         final MockDataContext dc = new MockDataContext("sch", "tab", "1");
         final Table table = dc.getDefaultSchema().getTable(0);
@@ -83,7 +147,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
                 for (int i = 0; i < columns.size(); i++) {
                     values[i] = columns.get(i).getColumnNumber();
                 }
-                DataSetHeader header = new 
SimpleDataSetHeader(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
+                DataSetHeader header =
+                        new 
SimpleDataSetHeader(columns.stream().map(SelectItem::new).collect(Collectors.toList()));
                 DefaultRow row = new DefaultRow(header, values);
                 return new InMemoryDataSet(row);
             }
@@ -118,8 +183,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
     public void testAggregateQueryRegularWhereClause() throws Exception {
         MockDataContext dc = new MockDataContext("sch", "tab", "1");
         Table table = dc.getDefaultSchema().getTable(0);
-        assertSingleRowResult("Row[values=[3]]", 
dc.query().from(table).selectCount().where("baz").eq("world")
-                .execute());
+        assertSingleRowResult("Row[values=[3]]",
+                
dc.query().from(table).selectCount().where("baz").eq("world").execute());
     }
 
     public void testApplyFunctionToNullValues() throws Exception {
@@ -247,8 +312,7 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
 
         Query query = 
dc.query().from(table).select("foo").select(FunctionType.TO_NUMBER, 
"foo").select("bar")
                 .select(FunctionType.TO_STRING, 
"bar").select(FunctionType.TO_NUMBER, "bar").toQuery();
-        assertEquals(
-                "SELECT tab.foo, TO_NUMBER(tab.foo), tab.bar, 
TO_STRING(tab.bar), TO_NUMBER(tab.bar) FROM sch.tab",
+        assertEquals("SELECT tab.foo, TO_NUMBER(tab.foo), tab.bar, 
TO_STRING(tab.bar), TO_NUMBER(tab.bar) FROM sch.tab",
                 query.toSql());
 
         DataSet ds = dc.executeQuery(query);
@@ -343,7 +407,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
                     }
                     return createDataSet(selectItems, data);
                 } else if (table == table2) {
-                    List<SelectItem> selectItems = 
table2.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
+                    List<SelectItem> selectItems =
+                            
table2.getColumns().stream().map(SelectItem::new).collect(Collectors.toList());
                     List<Object[]> data = new ArrayList<Object[]>();
                     data.add(new Object[] { 1, 1, "founder" });
                     data.add(new Object[] { 1, 1, "developer" });
@@ -409,22 +474,20 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
                         + 
"Relationship[primaryTable=columns,primaryColumns=[name],foreignTable=relationships,foreignColumns=[foreign_column]]]",
                 
Arrays.toString(informationSchema.getRelationships().toArray()));
         Table tablesTable = informationSchema.getTableByName("tables");
-        assertEquals(
-                
"[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=type,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=num_columns,columnNumber=2,type=INTEGER,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=remarks,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
+        
assertEquals("[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=type,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=num_columns,columnNumber=2,type=INTEGER,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=remarks,columnNumber=3,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
                 Arrays.toString(tablesTable.getColumns().toArray()));
         Table columnsTable = informationSchema.getTableByName("columns");
-        assertEquals(
-                
"[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=type,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=native_type,columnNumber=2,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=size,columnNumber=3,type=INTEGER,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=nullable,columnNumber=4,type=BOOLEAN,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=indexed,columnNumber=5,type=BOOLEAN,nullable=true,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=table,columnNumber=6,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
-                        + 
"Column[name=remarks,columnNumber=7,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
+        
assertEquals("[Column[name=name,columnNumber=0,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=type,columnNumber=1,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=native_type,columnNumber=2,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=size,columnNumber=3,type=INTEGER,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=nullable,columnNumber=4,type=BOOLEAN,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=indexed,columnNumber=5,type=BOOLEAN,nullable=true,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=table,columnNumber=6,type=VARCHAR,nullable=false,nativeType=null,columnSize=null],
 "
+                + 
"Column[name=remarks,columnNumber=7,type=VARCHAR,nullable=true,nativeType=null,columnSize=null]]",
                 Arrays.toString(columnsTable.getColumns().toArray()));
         Table relationshipsTable = 
informationSchema.getTableByName("relationships");
         assertEquals(
@@ -639,8 +702,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
     public void testCompiledQueryParameterInWhereClause() throws Exception {
         DataContext dc = getDataContext();
         QueryParameter param1 = new QueryParameter();
-        CompiledQuery compiledQuery = 
dc.query().from(table1).select("name").where(COLUMN_CONTRIBUTOR_COUNTRY)
-                .eq(param1).compile();
+        CompiledQuery compiledQuery =
+                
dc.query().from(table1).select("name").where(COLUMN_CONTRIBUTOR_COUNTRY).eq(param1).compile();
         try {
             assertEquals(1, compiledQuery.getParameters().size());
             assertSame(param1, compiledQuery.getParameters().get(0));
@@ -675,8 +738,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
         final DataContext dc = getDataContext();
 
         final QueryParameter param1 = new QueryParameter();
-        final Query subQuery = 
dc.query().from(table1).select("name").where(COLUMN_CONTRIBUTOR_COUNTRY).eq(param1)
-                .toQuery();
+        final Query subQuery =
+                
dc.query().from(table1).select("name").where(COLUMN_CONTRIBUTOR_COUNTRY).eq(param1).toQuery();
 
         final FromItem subQueryFromItem = new FromItem(subQuery);
         final Query query = new Query().select(new 
SelectItem(subQuery.getSelectClause().getItem(0), subQueryFromItem))
@@ -766,8 +829,8 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
         Query q = new Query();
         q.from(table1);
         q.select(table1.getColumns());
-        SelectItem countrySelectItem = q.getSelectClause().getSelectItem(
-                table1.getColumnByName(COLUMN_CONTRIBUTOR_COUNTRY));
+        SelectItem countrySelectItem =
+                
q.getSelectClause().getSelectItem(table1.getColumnByName(COLUMN_CONTRIBUTOR_COUNTRY));
         q.where(new FilterItem(countrySelectItem, OperatorType.EQUALS_TO, 
"denmark"));
 
         DataSet data = dc.executeQuery(q);
@@ -1019,7 +1082,7 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
             }
 
             @Override
-            protected Schema getMainSchema() throws MetaModelException {
+            protected MutableSchema getMainSchema() throws MetaModelException {
                 MutableSchema schema = new MutableSchema(getMainSchemaName());
                 MutableTable table = new 
MutableTable("tabl").setSchema(schema);
                 return schema.addTable(table.addColumn(new 
MutableColumn("col").setTable(table)));
@@ -1058,7 +1121,7 @@ public class QueryPostprocessDataContextTest extends 
MetaModelTestCase {
             }
 
             @Override
-            protected Schema getMainSchema() throws MetaModelException {
+            protected MutableSchema getMainSchema() throws MetaModelException {
                 MutableSchema schema = new MutableSchema(getMainSchemaName());
                 MutableTable table = new 
MutableTable("tabl").setSchema(schema);
                 table.addColumn(new 
MutableColumn("col1").setTable(table).setPrimaryKey(true));

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
 
b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
index 446577d..59e1b82 100644
--- 
a/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
+++ 
b/core/src/test/java/org/apache/metamodel/intercept/InterceptableDataContextTest.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.metamodel.DataContext;
+import org.apache.metamodel.MetaModelHelper;
 import org.apache.metamodel.MockUpdateableDataContext;
 import org.apache.metamodel.data.DataSet;
 import org.apache.metamodel.data.MaxRowsDataSet;
@@ -34,81 +35,77 @@ import junit.framework.TestCase;
 
 public class InterceptableDataContextTest extends TestCase {
 
-       private final MockUpdateableDataContext delegateDataContext = new 
MockUpdateableDataContext();
-       private final Table table = delegateDataContext.getDefaultSchema()
-                       .getTables().get(0);
-
-       public void testInterceptSchema() throws Exception {
-               // without an interceptor
-               {
-                       DataContext dc = new 
InterceptableDataContext(delegateDataContext);
-
-                       Schema schema = dc.getDefaultSchema();
-                       List<Schema> schemas = dc.getSchemas();
-
-                       assertEquals("schema", schema.getName());
-                       assertEquals(MutableSchema.class, schema.getClass());
-                       assertEquals("[information_schema, schema]",
-                                       
Arrays.toString(dc.getSchemaNames().toArray()));
-                       assertEquals(2, schemas.size());
-                       assertEquals("information_schema", 
schemas.get(0).getName());
-                       assertEquals("schema", schemas.get(1).getName());
-               }
-
-               // with an interceptor
-               {
-                       DataContext dc = new 
InterceptableDataContext(delegateDataContext)
-                                       .addSchemaInterceptor(new 
SchemaInterceptor() {
-                                               @Override
-                                               public Schema intercept(Schema 
input) {
-                                                       return new 
MutableSchema(input.getName() + " foo!");
-                                               }
-                                       });
-
-                       Schema schema = dc.getDefaultSchema();
-                       List<Schema> schemas = dc.getSchemas();
-
-                       assertEquals("schema foo!", schema.getName());
-                       assertEquals(MutableSchema.class, schema.getClass());
-                       assertEquals("[information_schema foo!, schema foo!]",
-                                       
Arrays.toString(dc.getSchemaNames().toArray()));
-                       assertEquals(2, schemas.size());
-                       assertEquals("information_schema foo!", 
schemas.get(0).getName());
-                       assertEquals("schema foo!", schemas.get(1).getName());
-               }
-       }
-
-       public void testInterceptDataSet() throws Exception {
-               DataContext dc = new 
InterceptableDataContext(delegateDataContext)
-                               .addDataSetInterceptor(new DataSetInterceptor() 
{
-                                       @Override
-                                       public DataSet intercept(DataSet 
dataSet) {
-                                               return new 
MaxRowsDataSet(dataSet, 1);
-                                       }
-                               });
-
-               DataSet ds = dc.query().from(table).select("foo").execute();
-               assertEquals(MaxRowsDataSet.class, ds.getClass());
-               assertEquals(1, ds.toObjectArrays().size());
-       }
-
-       public void testInterceptQuery() throws Exception {
-
-               DataContext dc = new 
InterceptableDataContext(delegateDataContext)
-                               .addQueryInterceptor(new QueryInterceptor() {
-                                       @Override
-                                       public Query intercept(Query input) {
-                                               return 
input.select(table.getColumnByName("foo"));
-                                       }
-                               }).addQueryInterceptor(new QueryInterceptor() {
-                                       @Override
-                                       public Query intercept(Query input) {
-                                               return 
input.select(table.getColumnByName("bar"));
-
-                                       }
-                               });
-
-               DataSet ds = dc.executeQuery(new Query().from(table));
-               assertEquals("[table.foo, table.bar]", 
Arrays.toString(ds.getSelectItems().toArray()));
-       }
+    private final MockUpdateableDataContext delegateDataContext = new 
MockUpdateableDataContext();
+    private final Table table = 
delegateDataContext.getDefaultSchema().getTables().get(0);
+
+    public void testInterceptSchema() throws Exception {
+        // without an interceptor
+        {
+            DataContext dc = new InterceptableDataContext(delegateDataContext);
+
+            Schema schema = dc.getDefaultSchema();
+            List<Schema> schemas = dc.getSchemas();
+
+            assertEquals("schema", schema.getName());
+            assertEquals(MutableSchema.class, 
MetaModelHelper.resolveUnderlyingSchema(schema).getClass());
+            assertEquals("[information_schema, schema]", 
Arrays.toString(dc.getSchemaNames().toArray()));
+            assertEquals(2, schemas.size());
+            assertEquals("information_schema", schemas.get(0).getName());
+            assertEquals("schema", schemas.get(1).getName());
+        }
+
+        // with an interceptor
+        {
+            DataContext dc =
+                    new 
InterceptableDataContext(delegateDataContext).addSchemaInterceptor(new 
SchemaInterceptor() {
+                        @Override
+                        public Schema intercept(Schema input) {
+                            return new MutableSchema(input.getName() + " 
foo!");
+                        }
+                    });
+
+            Schema schema = dc.getDefaultSchema();
+            List<Schema> schemas = dc.getSchemas();
+
+            assertEquals("schema foo!", schema.getName());
+            assertEquals(MutableSchema.class, schema.getClass());
+            assertEquals("[information_schema foo!, schema foo!]", 
Arrays.toString(dc.getSchemaNames().toArray()));
+            assertEquals(2, schemas.size());
+            assertEquals("information_schema foo!", schemas.get(0).getName());
+            assertEquals("schema foo!", schemas.get(1).getName());
+        }
+    }
+
+    public void testInterceptDataSet() throws Exception {
+        DataContext dc =
+                new 
InterceptableDataContext(delegateDataContext).addDataSetInterceptor(new 
DataSetInterceptor() {
+                    @Override
+                    public DataSet intercept(DataSet dataSet) {
+                        return new MaxRowsDataSet(dataSet, 1);
+                    }
+                });
+
+        DataSet ds = dc.query().from(table).select("foo").execute();
+        assertEquals(MaxRowsDataSet.class, ds.getClass());
+        assertEquals(1, ds.toObjectArrays().size());
+    }
+
+    public void testInterceptQuery() throws Exception {
+
+        DataContext dc = new 
InterceptableDataContext(delegateDataContext).addQueryInterceptor(new 
QueryInterceptor() {
+            @Override
+            public Query intercept(Query input) {
+                return input.select(table.getColumnByName("foo"));
+            }
+        }).addQueryInterceptor(new QueryInterceptor() {
+            @Override
+            public Query intercept(Query input) {
+                return input.select(table.getColumnByName("bar"));
+
+            }
+        });
+
+        DataSet ds = dc.executeQuery(new Query().from(table));
+        assertEquals("[table.foo, table.bar]", 
Arrays.toString(ds.getSelectItems().toArray()));
+    }
 }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
----------------------------------------------------------------------
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 9053625..ab549b0 100644
--- a/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
+++ b/core/src/test/java/org/apache/metamodel/query/FilterItemTest.java
@@ -18,8 +18,11 @@
  */
 package org.apache.metamodel.query;
 
-import com.google.common.collect.Lists;
-import junit.framework.TestCase;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 import org.apache.metamodel.DataContext;
 import org.apache.metamodel.MetaModelException;
@@ -36,15 +39,12 @@ import org.apache.metamodel.schema.ColumnType;
 import org.apache.metamodel.schema.MutableColumn;
 import org.apache.metamodel.schema.MutableSchema;
 import org.apache.metamodel.schema.MutableTable;
-import org.apache.metamodel.schema.Schema;
 import org.apache.metamodel.schema.Table;
 import org.apache.metamodel.schema.TableType;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.stream.Collectors;
+import com.google.common.collect.Lists;
+
+import junit.framework.TestCase;
 
 public class FilterItemTest extends TestCase {
 
@@ -400,7 +400,7 @@ public class FilterItemTest extends TestCase {
             }
 
             @Override
-            protected Schema getMainSchema() throws MetaModelException {
+            protected MutableSchema getMainSchema() throws MetaModelException {
                 return schema;
             }
         };

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
----------------------------------------------------------------------
diff --git 
a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java 
b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
index 9da47b9..7b11cb7 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
@@ -81,16 +81,19 @@ public class CouchDbDataContext extends 
QueryPostprocessDataContext implements U
     }
 
     public CouchDbDataContext(CouchDbInstance couchDbInstance) {
+        super(false);
         _couchDbInstance = couchDbInstance;
         _schemaBuilder = new CouchDbInferentialSchemaBuilder();
     }
 
     public CouchDbDataContext(CouchDbInstance couchDbInstance, String... 
databaseNames) {
+        super(false);
         _couchDbInstance = couchDbInstance;
         _schemaBuilder = new CouchDbInferentialSchemaBuilder(databaseNames);
     }
 
     public CouchDbDataContext(CouchDbInstance couchDbInstance, 
SimpleTableDef... tableDefs) {
+        super(false);
         _couchDbInstance = couchDbInstance;
         _schemaBuilder = new CouchDbSimpleTableDefSchemaBuilder(tableDefs);
     }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
----------------------------------------------------------------------
diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java 
b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
index 28a9812..fb1119f 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvSchema.java
@@ -56,7 +56,7 @@ final class CsvSchema extends AbstractSchema {
        public String getQuote() {
                return null;
        }
-
+       
        @Override
        public List<Table> getTables() {
                if (_table == null) {

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/csv/src/main/java/org/apache/metamodel/csv/CsvUpdateCallback.java
----------------------------------------------------------------------
diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvUpdateCallback.java 
b/csv/src/main/java/org/apache/metamodel/csv/CsvUpdateCallback.java
index 6aa9529..6e35a00 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvUpdateCallback.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvUpdateCallback.java
@@ -29,6 +29,7 @@ import java.nio.charset.Charset;
 
 import org.apache.metamodel.AbstractUpdateCallback;
 import org.apache.metamodel.MetaModelException;
+import org.apache.metamodel.MetaModelHelper;
 import org.apache.metamodel.UpdateCallback;
 import org.apache.metamodel.create.TableCreationBuilder;
 import org.apache.metamodel.delete.RowDeletionBuilder;
@@ -62,7 +63,7 @@ final class CsvUpdateCallback extends AbstractUpdateCallback 
implements UpdateCa
     @Override
     public TableCreationBuilder createTable(Schema schema, String name) throws 
IllegalArgumentException,
             IllegalStateException {
-        return new CsvCreateTableBuilder(this, schema, name);
+        return new CsvCreateTableBuilder(this, 
MetaModelHelper.resolveUnderlyingSchema(schema), name);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
----------------------------------------------------------------------
diff --git a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java 
b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
index 029a179..23a140f 100644
--- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
+++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
@@ -26,8 +26,6 @@ import java.util.Map;
 
 import javax.swing.table.TableModel;
 
-import junit.framework.TestCase;
-
 import org.apache.metamodel.DataContext;
 import org.apache.metamodel.QueryPostprocessDataContext;
 import org.apache.metamodel.UpdateCallback;
@@ -52,6 +50,8 @@ import 
org.apache.metamodel.schema.naming.CustomColumnNamingStrategy;
 import org.apache.metamodel.util.FileHelper;
 import org.apache.metamodel.util.MutableRef;
 
+import junit.framework.TestCase;
+
 public class CsvDataContextTest extends TestCase {
 
     private final CsvConfiguration semicolonConfiguration = new 
CsvConfiguration(
@@ -65,7 +65,7 @@ public class CsvDataContextTest extends TestCase {
                 FileHelper.DEFAULT_ENCODING, 
CsvConfiguration.DEFAULT_SEPARATOR_CHAR, CsvConfiguration.NOT_A_CHAR,
                 CsvConfiguration.DEFAULT_ESCAPE_CHAR);
         final CsvDataContext dc = new CsvDataContext(file, csvConfiguration);
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         dc.executeUpdate(new UpdateScript() {
 
@@ -80,7 +80,7 @@ public class CsvDataContextTest extends TestCase {
         CsvDataContext dc1 = new CsvDataContext(file, csvConfiguration);
 
         List<Table> tables = dc1.getDefaultSchema().getTables();
-        assertEquals(1, tables.size());
+        assertEquals(2, tables.size());
         
         Table table = tables.get(0);
         assertEquals("testEmptyFileNoColumnHeaderLine.csv", table.getName());
@@ -98,7 +98,7 @@ public class CsvDataContextTest extends TestCase {
         FileHelper.copy(new File("src/test/resources/empty_file.csv"), file);
 
         final CsvDataContext dc = new CsvDataContext(file);
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         final Table table1 = dc.getDefaultSchema().getTables().get(0);
         assertEquals("testEmptyFileNoColumnHeaderLine.csv", table1.getName());
@@ -125,8 +125,8 @@ public class CsvDataContextTest extends TestCase {
 
         assertEquals("\"bar\",\"baz\"", FileHelper.readFileAsString(file));
 
-        // still the table count should only be 1
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        // still the table count should only be 2
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
     }
 
     public void testAppendToFileWithoutLineBreak() throws Exception {
@@ -179,7 +179,7 @@ public class CsvDataContextTest extends TestCase {
     public void testEmptyFileNoHeaderLine() throws Exception {
         DataContext dc = new CsvDataContext(new 
File("src/test/resources/empty_file.csv"), new CsvConfiguration(
                 CsvConfiguration.NO_COLUMN_NAME_LINE));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("empty_file.csv", table.getName());
@@ -188,7 +188,7 @@ public class CsvDataContextTest extends TestCase {
 
     public void testUnexistingHeaderLine() throws Exception {
         DataContext dc = new CsvDataContext(new 
File("src/test/resources/csv_people.csv"), new CsvConfiguration(20));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("csv_people.csv", table.getName());
@@ -322,7 +322,7 @@ public class CsvDataContextTest extends TestCase {
         assertEquals(2, dc.getSchemas().size());
         Schema schema = dc.getDefaultSchema();
         assertEquals("resources", schema.getName());
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
         Table table = schema.getTables().get(0);
         assertEquals("csv_people.csv", table.getName());
 
@@ -353,7 +353,7 @@ public class CsvDataContextTest extends TestCase {
         assertEquals(2, dc.getSchemas().size());
         Schema schema = dc.getDefaultSchema();
         assertEquals("resources", schema.getName());
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
         Table table = schema.getTables().get(0);
         assertEquals("csv_people.csv", table.getName());
 
@@ -383,7 +383,7 @@ public class CsvDataContextTest extends TestCase {
         assertEquals(2, dc.getSchemas().size());
         Schema schema = dc.getDefaultSchema();
         assertEquals("resources", schema.getName());
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
         Table table = schema.getTables().get(0);
         assertEquals("csv_people.csv", table.getName());
 
@@ -625,7 +625,6 @@ public class CsvDataContextTest extends TestCase {
             public void run(UpdateCallback cb) {
                 Table table = cb.createTable(schema, 
"foobar").withColumn("foo").withColumn("bar").execute();
                 tableRef.set(table);
-                assertEquals(schema, table.getSchema());
                 assertEquals(schema.getTables().get(0), table);
                 assertTrue(file.exists());
 

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java
 
b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java
index 06c1822..3033c7f 100644
--- 
a/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java
+++ 
b/csv/src/test/java/org/apache/metamodel/intercept/InterceptionCsvIntegrationTest.java
@@ -67,7 +67,7 @@ public class InterceptionCsvIntegrationTest extends TestCase {
                        }
                });
 
-               assertEquals("[table]",
+               assertEquals("[table, default_table]",
                                
Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
                Table table = dc.getDefaultSchema().getTables().get(0);
                assertEquals("[col1, col2, foobar]",

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java
----------------------------------------------------------------------
diff --git 
a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java 
b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java
index 504769d..74c22ff 100644
--- 
a/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java
+++ 
b/dynamodb/src/main/java/org/apache/metamodel/dynamodb/DynamoDbDataContext.java
@@ -104,6 +104,7 @@ public class DynamoDbDataContext extends 
QueryPostprocessDataContext implements
     }
 
     private DynamoDbDataContext(AmazonDynamoDB client, SimpleTableDef[] 
tableDefs, boolean shutdownOnClose) {
+        super(false);
         _dynamoDb = client;
         _tableDefs = (tableDefs == null ? new SimpleTableDef[0] : tableDefs);
         _shutdownOnClose = shutdownOnClose;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java
----------------------------------------------------------------------
diff --git 
a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java
 
b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java
index 83d89c7..d2dfe4b 100644
--- 
a/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java
+++ 
b/elasticsearch/native/src/main/java/org/apache/metamodel/elasticsearch/nativeclient/ElasticSearchDataContext.java
@@ -113,6 +113,7 @@ public class ElasticSearchDataContext extends 
QueryPostprocessDataContext implem
      *            and column model of the ElasticSearch index.
      */
     public ElasticSearchDataContext(Client client, String indexName, 
SimpleTableDef... tableDefinitions) {
+        super(false);
         if (client == null) {
             throw new IllegalArgumentException("ElasticSearch Client cannot be 
null");
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
----------------------------------------------------------------------
diff --git 
a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
 
b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
index 8d89c05..c5a5696 100644
--- 
a/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
+++ 
b/elasticsearch/rest/src/main/java/org/apache/metamodel/elasticsearch/rest/ElasticSearchRestDataContext.java
@@ -123,6 +123,7 @@ public class ElasticSearchRestDataContext extends 
QueryPostprocessDataContext im
      *            and column model of the ElasticSearch index.
      */
     public ElasticSearchRestDataContext(JestClient client, String indexName, 
SimpleTableDef... tableDefinitions) {
+        super(false);
         if (client == null) {
             throw new IllegalArgumentException("ElasticSearch Client cannot be 
null");
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
----------------------------------------------------------------------
diff --git 
a/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java 
b/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
index 713fbe8..b5e6fca 100644
--- a/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
+++ b/excel/src/main/java/org/apache/metamodel/excel/ExcelDataContext.java
@@ -79,6 +79,7 @@ public final class ExcelDataContext extends 
QueryPostprocessDataContext implemen
      * @param configuration
      */
     public ExcelDataContext(File file, ExcelConfiguration configuration) {
+        super(true);
         if (file == null) {
             throw new IllegalArgumentException("File cannot be null");
         }
@@ -93,6 +94,7 @@ public final class ExcelDataContext extends 
QueryPostprocessDataContext implemen
     }
 
     public ExcelDataContext(Resource resource, ExcelConfiguration 
configuration) {
+        super(true);
         if (resource == null) {
             throw new IllegalArgumentException("Resource cannot be null");
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java
----------------------------------------------------------------------
diff --git 
a/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java 
b/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java
index 2d68a69..2ad863f 100644
--- 
a/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java
+++ 
b/excel/src/main/java/org/apache/metamodel/excel/ExcelTableCreationBuilder.java
@@ -54,7 +54,7 @@ final class ExcelTableCreationBuilder extends 
AbstractTableCreationBuilder<Excel
             }
         }
 
-        final MutableSchema schema = (MutableSchema) table.getSchema();
+        final MutableSchema schema = (MutableSchema) getSchema();
         schema.addTable((MutableTable) table);
         return table;
     }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java 
b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
index 844522e..2990417 100644
--- a/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
+++ b/excel/src/test/java/org/apache/metamodel/excel/ExcelDataContextTest.java
@@ -80,7 +80,7 @@ public class ExcelDataContextTest extends TestCase {
         ExcelDataContext dc = new ExcelDataContext(file);
 
         assertNull(dc.getSpreadsheetReaderDelegateClass());
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("sheet", table.getName());
@@ -92,7 +92,7 @@ public class ExcelDataContextTest extends TestCase {
     public void testEmptyFileNoHeaderLine() throws Exception {
         DataContext dc = new 
ExcelDataContext(copyOf("src/test/resources/empty_file.xls"), new 
ExcelConfiguration(
                 ExcelConfiguration.NO_COLUMN_NAME_LINE, false, false));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("sheet", table.getName());
@@ -102,7 +102,7 @@ public class ExcelDataContextTest extends TestCase {
     public void testUnexistingHeaderLine() throws Exception {
         DataContext dc = new 
ExcelDataContext(copyOf("src/test/resources/xls_people.xls"), new 
ExcelConfiguration(20,
                 true, false));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("xls_people", table.getName());
@@ -359,7 +359,7 @@ public class ExcelDataContextTest extends TestCase {
         assertEquals(2, schemas.length);
         Schema schema = schemas[1];
         assertEquals("testGetSchemas-xls_people.xls", schema.getName());
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
         Table table = schema.getTables().get(0);
         assertEquals("xls_people", table.getName());
 
@@ -399,7 +399,7 @@ public class ExcelDataContextTest extends TestCase {
         File file = copyOf("src/test/resources/xls_missing_values.xls");
         DataContext dc = new ExcelDataContext(file);
         Schema schema = dc.getDefaultSchema();
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
 
         Table table = schema.getTables().get(0);
         
assertEquals("[Column[name=a,columnNumber=0,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
@@ -423,7 +423,7 @@ public class ExcelDataContextTest extends TestCase {
         File file = copyOf("src/test/resources/xls_missing_column_header.xls");
         DataContext dc = new ExcelDataContext(file);
         Schema schema = dc.getDefaultSchema();
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
 
         Table table = schema.getTables().get(0);
         
assertEquals("[Column[name=a,columnNumber=0,type=VARCHAR,nullable=true,nativeType=null,columnSize=null],
 "
@@ -447,7 +447,7 @@ public class ExcelDataContextTest extends TestCase {
         File file = copyOf("src/test/resources/formulas.xlsx");
         ExcelDataContext dc = new ExcelDataContext(file);
 
-        assertEquals("[sh1]", 
Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
+        assertEquals("[sh1, default_table]", 
Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
         assertEquals(XlsxSpreadsheetReaderDelegate.class, 
dc.getSpreadsheetReaderDelegateClass());
 
         Table table = dc.getDefaultSchema().getTableByName("sh1");
@@ -618,7 +618,7 @@ public class ExcelDataContextTest extends TestCase {
                 Table table1 = cb.createTable(schema, 
"my_table_1").withColumn("foo").withColumn("bar")
                         .withColumn("baz").execute();
 
-                assertEquals(1, schema.getTableCount());
+                assertEquals(2, schema.getTableCount());
                 assertSame(table1.getSchema(), schema);
                 assertSame(table1, schema.getTables().get(0));
 
@@ -689,12 +689,12 @@ public class ExcelDataContextTest extends TestCase {
             }
         });
 
-        assertEquals("[my_table_2]", 
Arrays.toString(schema.getTableNames().toArray()));
+        assertEquals("[my_table_2]", schema.getTableNames().toString());
 
         dc.refreshSchemas();
 
-        assertEquals("[my_table_2]", 
Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals("[my_table_2, default_table]", 
dc.getDefaultSchema().getTableNames().toString());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
     }
 
     public void testGetStyles() throws Exception {

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
----------------------------------------------------------------------
diff --git 
a/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java 
b/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
index a181248..6a18e98 100644
--- 
a/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
+++ 
b/excel/src/test/java/org/apache/metamodel/excel/ExcelUpdateCallbackTest.java
@@ -83,7 +83,7 @@ public class ExcelUpdateCallbackTest extends TestCase {
                // read to check results
                {
                        ExcelDataContext dc = new ExcelDataContext(file);
-                       assertEquals("[foobar]",
+                       assertEquals("[foobar, default_table]",
                                        
Arrays.toString(dc.getDefaultSchema().getTableNames().toArray()));
 
                        Table table = 
dc.getDefaultSchema().getTableByName("foobar");

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
----------------------------------------------------------------------
diff --git 
a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
 
b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
index aac5ada..022649e 100644
--- 
a/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
+++ 
b/fixedwidth/src/main/java/org/apache/metamodel/fixedwidth/FixedWidthDataContext.java
@@ -51,11 +51,13 @@ public class FixedWidthDataContext extends 
QueryPostprocessDataContext {
     private final FixedWidthConfiguration _configuration;
 
     public FixedWidthDataContext(File file, FixedWidthConfiguration 
configuration) {
+        super(true);
         _resource = new FileResource(file);
         _configuration = configuration;
     }
 
     public FixedWidthDataContext(Resource resource, FixedWidthConfiguration 
configuration) {
+        super(true);
         _resource = resource;
         _configuration = configuration;
     }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
 
b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
index 16f2c5b..713b48d 100644
--- 
a/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
+++ 
b/fixedwidth/src/test/java/org/apache/metamodel/fixedwidth/FixedWidthDataContextTest.java
@@ -35,7 +35,7 @@ public class FixedWidthDataContextTest extends TestCase {
     public void testEmptyFile() throws Exception {
         DataContext dc = new FixedWidthDataContext(new 
File("src/test/resources/empty_file.txt"),
                 new FixedWidthConfiguration(10));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("empty_file.txt", table.getName());
@@ -45,7 +45,7 @@ public class FixedWidthDataContextTest extends TestCase {
     public void testEmptyFileNoHeaderLine() throws Exception {
         DataContext dc = new FixedWidthDataContext(new 
File("src/test/resources/empty_file.txt"),
                 new 
FixedWidthConfiguration(FixedWidthConfiguration.NO_COLUMN_NAME_LINE, "UTF8", 
10));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("empty_file.txt", table.getName());
@@ -55,7 +55,7 @@ public class FixedWidthDataContextTest extends TestCase {
     public void testUnexistingHeaderLine() throws Exception {
         DataContext dc = new FixedWidthDataContext(new 
File("src/test/resources/example_simple1.txt"),
                 new FixedWidthConfiguration(20, "UTF8", 10));
-        assertEquals(1, dc.getDefaultSchema().getTableCount());
+        assertEquals(2, dc.getDefaultSchema().getTableCount());
 
         Table table = dc.getDefaultSchema().getTables().get(0);
         assertEquals("example_simple1.txt", table.getName());
@@ -73,7 +73,7 @@ public class FixedWidthDataContextTest extends TestCase {
         Schema schema = dc.getDefaultSchema();
         assertEquals("Schema[name=resources]", schema.toString());
 
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
 
         Table table = schema.getTableByName("example_simple1.txt");
         
assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", 
table.toString());
@@ -106,7 +106,7 @@ public class FixedWidthDataContextTest extends TestCase {
         Schema schema = dc.getDefaultSchema();
         assertEquals("Schema[name=resources]", schema.toString());
 
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
 
         Table table = schema.getTableByName("example_simple1.txt");
         
assertEquals("Table[name=example_simple1.txt,type=TABLE,remarks=null]", 
table.toString());

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
----------------------------------------------------------------------
diff --git 
a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java 
b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
index 55e4f41..46866b7 100644
--- a/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
+++ b/hbase/src/main/java/org/apache/metamodel/hbase/HBaseDataContext.java
@@ -69,6 +69,7 @@ public class HBaseDataContext extends 
QueryPostprocessDataContext {
      * @param configuration
      */
     public HBaseDataContext(HBaseConfiguration configuration) {
+        super(false);
         Configuration config = createConfig(configuration);
         _configuration = configuration;
         _connection = createConnection(config);
@@ -81,6 +82,7 @@ public class HBaseDataContext extends 
QueryPostprocessDataContext {
      * @param connection
      */
     public HBaseDataContext(HBaseConfiguration configuration, Connection 
connection) {
+        super(false);
         _configuration = configuration;
         _connection = connection;
     }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
----------------------------------------------------------------------
diff --git a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java 
b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
index b0e923f..b129614 100644
--- a/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
+++ b/json/src/main/java/org/apache/metamodel/json/JsonDataContext.java
@@ -70,6 +70,7 @@ public class JsonDataContext extends 
QueryPostprocessDataContext implements Docu
     }
 
     public JsonDataContext(Resource resource, SchemaBuilder schemaBuilder) {
+        super(false);
         _resource = resource;
         _schemaBuilder = schemaBuilder;
     }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
----------------------------------------------------------------------
diff --git 
a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
 
b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
index d5d0432..898e3b4 100644
--- 
a/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
+++ 
b/mongodb/mongo2/src/main/java/org/apache/metamodel/mongodb/mongo2/MongoDbDataContext.java
@@ -97,6 +97,7 @@ public class MongoDbDataContext extends 
QueryPostprocessDataContext implements U
      *            ).
      */
     public MongoDbDataContext(DB mongoDb, SimpleTableDef... tableDefs) {
+        super(false);
         _mongoDb = mongoDb;
         _tableDefs = tableDefs;
         _schema = null;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
----------------------------------------------------------------------
diff --git 
a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
 
b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
index 9bdec81..c7a7487 100644
--- 
a/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
+++ 
b/mongodb/mongo3/src/main/java/org/apache/metamodel/mongodb/mongo3/MongoDbDataContext.java
@@ -99,6 +99,7 @@ public class MongoDbDataContext extends 
QueryPostprocessDataContext implements U
      *            ).
      */
     public MongoDbDataContext(MongoDatabase mongoDb, SimpleTableDef... 
tableDefs) {
+        super(false);
         _mongoDb = mongoDb;
         _tableDefs = tableDefs;
         _schema = null;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
----------------------------------------------------------------------
diff --git 
a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java 
b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
index 2a598b5..00d0b5a 100644
--- a/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
+++ b/neo4j/src/main/java/org/apache/metamodel/neo4j/Neo4jDataContext.java
@@ -72,6 +72,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
     private String _serviceRoot = "/db/data";
 
     public Neo4jDataContext(String hostname, int port, String username, String 
password, SimpleTableDef... tableDefs) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         final CloseableHttpClient httpClient = 
HttpClientBuilder.create().build();
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
username, password, _serviceRoot);
@@ -80,6 +81,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
 
     public Neo4jDataContext(String hostname, int port, String username, String 
password, String serviceRoot,
             SimpleTableDef... tableDefs) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         final CloseableHttpClient httpClient = 
HttpClientBuilder.create().build();
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
username, password, _serviceRoot);
@@ -88,6 +90,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
     }
 
     public Neo4jDataContext(String hostname, int port, String username, String 
password) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         final CloseableHttpClient httpClient = 
HttpClientBuilder.create().build();
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
username, password, _serviceRoot);
@@ -95,6 +98,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
     }
 
     public Neo4jDataContext(String hostname, int port, String username, String 
password, String serviceRoot) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         final CloseableHttpClient httpClient = 
HttpClientBuilder.create().build();
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
username, password, _serviceRoot);
@@ -103,12 +107,14 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
     }
 
     public Neo4jDataContext(String hostname, int port, CloseableHttpClient 
httpClient) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
_serviceRoot);
         _tableDefs = detectTableDefs();
     }
 
     public Neo4jDataContext(String hostname, int port, CloseableHttpClient 
httpClient, String serviceRoot) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
_serviceRoot);
         _tableDefs = detectTableDefs();
@@ -116,6 +122,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
     }
 
     public Neo4jDataContext(String hostname, int port, CloseableHttpClient 
httpClient, SimpleTableDef... tableDefs) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
_serviceRoot);
         _tableDefs = tableDefs;
@@ -123,6 +130,7 @@ public class Neo4jDataContext extends 
QueryPostprocessDataContext implements Dat
 
     public Neo4jDataContext(String hostname, int port, CloseableHttpClient 
httpClient, String serviceRoot,
             SimpleTableDef... tableDefs) {
+        super(false);
         _httpHost = new HttpHost(hostname, port);
         _requestWrapper = new Neo4jRequestWrapper(httpClient, _httpHost, 
_serviceRoot);
         _tableDefs = tableDefs;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
----------------------------------------------------------------------
diff --git a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java 
b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
index 09b6494..0df0d3e 100644
--- a/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
+++ b/pojo/src/main/java/org/apache/metamodel/pojo/PojoDataContext.java
@@ -94,6 +94,7 @@ public class PojoDataContext extends 
QueryPostprocessDataContext implements Upda
      * @param tables
      */
     public PojoDataContext(String schemaName, List<TableDataProvider<?>> 
tables) {
+        super(true);
         if (schemaName == null) {
             throw new IllegalArgumentException("Schema name cannot be null");
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java 
b/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
index 97f1a9f..d520556 100644
--- a/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
+++ b/pojo/src/test/java/org/apache/metamodel/pojo/PojoDataContextTest.java
@@ -113,7 +113,7 @@ public class PojoDataContextTest extends TestCase {
         final PojoDataContext dc = new PojoDataContext("foo", 
tableDataProvider);
 
         final Schema schema = dc.getDefaultSchema();
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
         final Table table = schema.getTable(0);
         assertEquals("foo.bar", table.getQualifiedLabel());
 
@@ -200,7 +200,7 @@ public class PojoDataContextTest extends TestCase {
             }
         });
 
-        assertEquals(1, schema.getTableCount());
+        assertEquals(2, schema.getTableCount());
 
         ds = dc.query().from("yo!").select("foo", "bar").execute();
         assertTrue(ds.next());

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
----------------------------------------------------------------------
diff --git 
a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
 
b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
index 671693e..98b70e3 100644
--- 
a/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
+++ 
b/salesforce/src/main/java/org/apache/metamodel/salesforce/SalesforceDataContext.java
@@ -71,6 +71,7 @@ public class SalesforceDataContext extends 
QueryPostprocessDataContext implement
     private final PartnerConnection _connection;
 
     public SalesforceDataContext(String endpoint, String username, String 
password, String securityToken) {
+        super(false);
         try {
             final ConnectorConfig config = new ConnectorConfig();
             config.setUsername(username);
@@ -86,6 +87,7 @@ public class SalesforceDataContext extends 
QueryPostprocessDataContext implement
     }
 
     public SalesforceDataContext(String username, String password, String 
securityToken) {
+        super(false);
         try {
             _connection =
                     Connector.newConnection(username, securityToken == null ? 
password : password + securityToken);
@@ -95,6 +97,7 @@ public class SalesforceDataContext extends 
QueryPostprocessDataContext implement
     }
 
     public SalesforceDataContext(String username, String password) {
+        super(false);
         try {
             _connection = Connector.newConnection(username, password);
         } catch (ConnectionException e) {
@@ -109,6 +112,7 @@ public class SalesforceDataContext extends 
QueryPostprocessDataContext implement
      * 
      */
     public SalesforceDataContext(PartnerConnection connection) {
+        super(false);
         if (connection == null) {
             throw new IllegalArgumentException("connection cannot be null");
         }

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
----------------------------------------------------------------------
diff --git 
a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java 
b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
index 9abe5da..9b68fe0 100644
--- 
a/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
+++ 
b/sugarcrm/src/main/java/org/apache/metamodel/sugarcrm/SugarCrmDataContext.java
@@ -72,6 +72,7 @@ public class SugarCrmDataContext extends 
QueryPostprocessDataContext implements
      */
     public SugarCrmDataContext(String sugarCrmBaseUrl, final String username, 
String password,
             final String applicationName) {
+        super(false);
         if (sugarCrmBaseUrl.endsWith("/")) {
             // remove trailing slashes
             sugarCrmBaseUrl = sugarCrmBaseUrl.substring(0, 
sugarCrmBaseUrl.length() - 1);

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java 
b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
index aab6fca..b35b630 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlDomDataContext.java
@@ -112,6 +112,7 @@ public class XmlDomDataContext extends 
QueryPostprocessDataContext {
      * @param autoFlattenTables
      */
     public XmlDomDataContext(String schemaName, Document document, boolean 
autoFlattenTables) {
+        super(false);
         _autoFlattenTables = autoFlattenTables;
         _schemaName = schemaName;
         _schema = new MutableSchema(_schemaName);
@@ -133,6 +134,7 @@ public class XmlDomDataContext extends 
QueryPostprocessDataContext {
      *             if the file does not exist
      */
     public XmlDomDataContext(Resource resource, boolean autoFlattenTables) 
throws IllegalArgumentException {
+        super(false);
         _inputSourceRef = createInputSourceRef(resource);
         _schemaName = resource.getName();
         _autoFlattenTables = autoFlattenTables;
@@ -143,6 +145,7 @@ public class XmlDomDataContext extends 
QueryPostprocessDataContext {
     }
 
     public XmlDomDataContext(InputSource inputSource, String schemaName, 
boolean autoFlattenTables) {
+        super(false);
         _inputSourceRef = new ImmutableRef<InputSource>(inputSource);
         _schemaName = schemaName;
         _autoFlattenTables = autoFlattenTables;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
----------------------------------------------------------------------
diff --git a/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java 
b/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
index ac0a699..98b956d 100644
--- a/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
+++ b/xml/src/main/java/org/apache/metamodel/xml/XmlSaxDataContext.java
@@ -88,6 +88,7 @@ public class XmlSaxDataContext extends 
QueryPostprocessDataContext {
      * @see XmlSaxTableDef
      */
     public XmlSaxDataContext(Supplier<InputSource> inputSourceRef, 
Collection<XmlSaxTableDef> tableDefs) {
+        super(false);
         _inputSourceRef = inputSourceRef;
         _tableDefs = tableDefs;
         _valueXpaths = new HashMap<XmlSaxTableDef, Map<String, String>>();

http://git-wip-us.apache.org/repos/asf/metamodel/blob/fe9ab604/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
----------------------------------------------------------------------
diff --git 
a/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java 
b/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
index b5a7a02..2c23d35 100644
--- a/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
+++ b/xml/src/test/java/org/apache/metamodel/xml/XmlDomDataContextTest.java
@@ -39,6 +39,7 @@ import org.apache.metamodel.query.Query;
 import org.apache.metamodel.schema.Relationship;
 import org.apache.metamodel.schema.Schema;
 import org.apache.metamodel.schema.Table;
+import org.apache.metamodel.util.ResourceException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -55,7 +56,7 @@ public class XmlDomDataContextTest extends TestCase {
             Schema schema = 
dataContext.getSchemaByName("xml_input_eobjects.xml");
             assertEquals("Schema[name=xml_input_eobjects.xml]", 
schema.toString());
             assertEquals(5, schema.getTableCount());
-        } catch (IllegalArgumentException e) {
+        } catch (ResourceException e) {
             // If the network is not accessible omit the test
             if (!(e.getCause() instanceof UnknownHostException)) {
                 throw e;

Reply via email to