You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/07/18 10:21:57 UTC

[1/2] git commit: Improvement to CSV module's creation of tables without header lines

Repository: incubator-metamodel
Updated Branches:
  refs/heads/master c272bea3d -> 3e4af6ddc


Improvement to CSV module's creation of tables without header lines

Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/1f2bc016
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/1f2bc016
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/1f2bc016

Branch: refs/heads/master
Commit: 1f2bc01616894a9bda4973530c78ffd281b37017
Parents: c272bea
Author: Kasper Sørensen <i....@gmail.com>
Authored: Thu Jul 17 15:17:33 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Thu Jul 17 15:17:33 2014 +0200

----------------------------------------------------------------------
 .../metamodel/csv/CsvCreateTableBuilder.java    |  7 +++-
 .../metamodel/csv/CsvDataContextTest.java       | 42 ++++++++++++++++++--
 2 files changed, 45 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1f2bc016/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java
----------------------------------------------------------------------
diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java
index c8eb569..cd0bb38 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvCreateTableBuilder.java
@@ -38,7 +38,12 @@ final class CsvCreateTableBuilder extends AbstractTableCreationBuilder<CsvUpdate
 
         MutableTable table = getTable();
         String[] columnNames = table.getColumnNames();
-        csvUpdateCallback.writeRow(columnNames, false);
+
+        CsvDataContext csvDataContext = (CsvDataContext) csvUpdateCallback.getDataContext();
+
+        if (csvDataContext.getConfiguration().getColumnNameLineNumber() != CsvConfiguration.NO_COLUMN_NAME_LINE) {
+            csvUpdateCallback.writeRow(columnNames, false);
+        }
 
         CsvSchema schema = (CsvSchema) table.getSchema();
         CsvTable csvTable = new CsvTable(schema, table.getName(), table.getColumnNames());

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1f2bc016/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 7a53723..e417cf6 100644
--- a/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
+++ b/csv/src/test/java/org/apache/metamodel/csv/CsvDataContextTest.java
@@ -56,15 +56,51 @@ public class CsvDataContextTest extends TestCase {
     private final CsvConfiguration semicolonConfiguration = new CsvConfiguration(
             CsvConfiguration.DEFAULT_COLUMN_NAME_LINE, "UTF-8", ';', '\'', CsvConfiguration.DEFAULT_ESCAPE_CHAR);
 
+    public void testEmptyFileNoColumnHeaderLine() throws Exception {
+        final File file = new File("target/testEmptyFileNoColumnHeaderLine.csv");
+        FileHelper.copy(new File("src/test/resources/empty_file.csv"), file);
+        
+        CsvConfiguration csvConfiguration = new CsvConfiguration(CsvConfiguration.NO_COLUMN_NAME_LINE,
+                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());
+
+        dc.executeUpdate(new UpdateScript() {
+
+            @Override
+            public void run(UpdateCallback callback) {
+                callback.createTable(dc.getDefaultSchema(), "new_table").withColumn("COL_1").withColumn("COL_2")
+                        .execute();
+                callback.insertInto("new_table").value(0, "1").value(1, 2).execute();
+            }
+        });
+        
+        CsvDataContext dc1 = new CsvDataContext(file, csvConfiguration);
+
+        Table[] tables = dc1.getDefaultSchema().getTables();
+        assertEquals(1, tables.length);
+        
+        Table table = tables[0];
+        assertEquals("testEmptyFileNoColumnHeaderLine.csv", table.getName());
+        assertEquals(2, table.getColumnCount());
+        
+        DataSet ds = dc1.query().from(table).selectAll().execute();
+        assertTrue(ds.next());
+        assertEquals("Row[values=[1, 2]]", ds.getRow().toString());
+        assertFalse(ds.next());
+        ds.close();
+    }
+
     public void testEmptyFileTableCreation() throws Exception {
-        final File file = new File("target/empty_file.csv");
+        final File file = new File("target/testEmptyFileNoColumnHeaderLine.csv");
         FileHelper.copy(new File("src/test/resources/empty_file.csv"), file);
 
         final CsvDataContext dc = new CsvDataContext(file);
         assertEquals(1, dc.getDefaultSchema().getTableCount());
 
         final Table table1 = dc.getDefaultSchema().getTables()[0];
-        assertEquals("empty_file.csv", table1.getName());
+        assertEquals("testEmptyFileNoColumnHeaderLine.csv", table1.getName());
         assertEquals(0, table1.getColumnCount());
 
         dc.executeUpdate(new UpdateScript() {
@@ -87,7 +123,7 @@ public class CsvDataContextTest extends TestCase {
         });
 
         assertEquals("\"bar\",\"baz\"", FileHelper.readFileAsString(file));
-        
+
         // still the table count should only be 1
         assertEquals(1, dc.getDefaultSchema().getTableCount());
     }


[2/2] git commit: METAMODEL-68: Fixed.

Posted by ka...@apache.org.
METAMODEL-68: Fixed.

Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/3e4af6dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/3e4af6dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/3e4af6dd

Branch: refs/heads/master
Commit: 3e4af6ddc7c79613679efd249df963d9ee876288
Parents: 1f2bc01
Author: Kasper Sørensen <i....@gmail.com>
Authored: Fri Jul 18 10:21:20 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Fri Jul 18 10:21:20 2014 +0200

----------------------------------------------------------------------
 CHANGES.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/3e4af6dd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cc50ad4..ecd6066 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@ Apache MetaModel 4.2.0-incubating
  * [METAMODEL-60] - Fixed a bug related to DISTINCT and TOP keywords in MS SQL Server queries.
  * [METAMODEL-45] - Improved and standardized way of handling integration test connection information towards external databases.
  * [METAMODEL-62] - Fixed a bug related to fault-tolerant handling of malformed CSV lines when reading CSVs in single-line mode
+ * [METAMODEL-68] - Made it possible to create a CSV table without a header line in the file, if the user configures it.
 
 Apache MetaModel 4.1.0-incubating