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