SQOOP-519. Update the version of hsqldb decadency to 2.X.
authorJarek Jarcec Cecho <jarcec@apache.org>
Wed, 25 Jul 2012 18:33:11 +0000 (18:33 +0000)
committerJarek Jarcec Cecho <jarcec@apache.org>
Wed, 25 Jul 2012 18:33:11 +0000 (18:33 +0000)
(Cheolsoo Park via Jarek Jarcec Cecho)

git-svn-id: https://svn.apache.org/repos/asf/sqoop/trunk@1365691 13f79535-47bb-0310-9956-ffa450edef68

18 files changed:
ivy.xml
ivy/libraries.properties
ivy/sqoop-test.xml
ivy/sqoop.xml
src/java/org/apache/sqoop/metastore/hsqldb/HsqldbJobStorage.java
src/java/org/apache/sqoop/metastore/hsqldb/HsqldbMetaStore.java
src/test/com/cloudera/sqoop/TestAvroExport.java
src/test/com/cloudera/sqoop/TestAvroImport.java
src/test/com/cloudera/sqoop/TestExport.java
src/test/com/cloudera/sqoop/TestMultiCols.java
src/test/com/cloudera/sqoop/hive/TestHiveImport.java
src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
src/test/com/cloudera/sqoop/manager/MySQLCompatTest.java
src/test/com/cloudera/sqoop/manager/OracleCompatTest.java
src/test/com/cloudera/sqoop/manager/OracleExportTest.java
src/test/com/cloudera/sqoop/mapreduce/db/TestDataDrivenDBInputFormat.java
src/test/com/cloudera/sqoop/testutil/ManagerCompatTestCase.java

diff --git a/ivy.xml b/ivy.xml
index 0ade852..dd75d5d 100644 (file)
--- a/ivy.xml
+++ b/ivy.xml
@@ -74,6 +74,7 @@ under the License.
       rev="${hadoop.version}" conf="hadoop23->default">
       <artifact name="hadoop-common" type="jar" />
       <artifact name="hadoop-common" type="jar" m:classifier="tests"/>
+      <exclude org="hsqldb" module="hsqldb"/>
     </dependency>
     <dependency org="org.apache.hadoop" name="hadoop-hdfs"
       rev="${hadoop.version}" conf="hadoop23->default">
@@ -106,7 +107,7 @@ under the License.
       conf="common->master" />
     <dependency org="junit" name="junit" rev="${junit.version}"
       conf="test->default"/>
-    <dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
+    <dependency org="org.hsqldb" name="hsqldb" rev="${hsqldb.version}"
       conf="common->default;redist->default"/>
     <dependency org="commons-io" name="commons-io" rev="${commons-io.version}"
       conf="common->default;redist->default"/>
index 4c9e37d..4d76e40 100644 (file)
@@ -28,7 +28,7 @@ commons-io.version=1.4
 commons-lang.version=2.4
 commons-logging.version=1.0.4
 
-hsqldb.version=1.8.0.10
+hsqldb.version=2.2.8
 
 ivy.version=2.1.0
 
index 2527832..2545494 100644 (file)
@@ -47,7 +47,7 @@ under the License.
       rev="${hadoop-core.cloudera.version}" conf="common->default"/>
     <dependency org="junit" name="junit" rev="${junit.version}"
       conf="common->default"/>
-    <dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
+    <dependency org="org.hsqldb" name="hsqldb" rev="${hsqldb.version}"
       conf="common->default"/>
   </dependencies>
 </ivy-module>
index f7e113a..3e33a2d 100644 (file)
@@ -42,7 +42,7 @@ under the License.
   <dependencies>
     <dependency org="org.apache.hadoop" name="hadoop-core"
       rev="${hadoop.version}" conf="common->default"/>
-    <dependency org="hsqldb" name="hsqldb" rev="${hsqldb.version}"
+    <dependency org="org.hsqldb" name="hsqldb" rev="${hsqldb.version}"
       conf="common->default"/>
     <dependency org="commons-io" name="commons-io" rev="${commons-io.version}"
       conf="common->default"/>
index a0f29fd..a8f0c42 100644 (file)
@@ -177,7 +177,7 @@ public class HsqldbJobStorage extends JobStorage {
             metastoreUser, metastorePassword);
       }
 
-      connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
+      connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
       connection.setAutoCommit(false);
 
       // Initialize the root schema.
@@ -596,17 +596,25 @@ public class HsqldbJobStorage extends JobStorage {
     PreparedStatement s;
     String curVal = getRootProperty(propertyName, version);
     if (null == curVal) {
-      // INSERT the row.
-      s = connection.prepareStatement("INSERT INTO " + getRootTableName()
-          + " (propval, propname, version) VALUES ( ? , ? , ? )");
-    } else if (version == null) {
-      // UPDATE an existing row with a null version
-      s = connection.prepareStatement("UPDATE " + getRootTableName()
-          + " SET propval = ? WHERE  propname = ? AND version IS NULL");
+      if (null == version) {
+          // INSERT the row with a null version.
+          s = connection.prepareStatement("INSERT INTO " + getRootTableName()
+              + " (propval, propname, version) VALUES ( ? , ? , NULL )");
+      } else {
+          // INSERT the row with a non-null version.
+          s = connection.prepareStatement("INSERT INTO " + getRootTableName()
+              + " (propval, propname, version) VALUES ( ? , ? , ? )");
+      }
     } else {
-      // UPDATE an existing row with non-null version.
-      s = connection.prepareStatement("UPDATE " + getRootTableName()
-          + " SET propval = ? WHERE  propname = ? AND version = ?");
+      if (null == version) {
+        // UPDATE an existing row with a null version.
+        s = connection.prepareStatement("UPDATE " + getRootTableName()
+            + " SET propval = ? WHERE  propname = ? AND version IS NULL");
+      } else {
+        // UPDATE an existing row with non-null version.
+        s = connection.prepareStatement("UPDATE " + getRootTableName()
+            + " SET propval = ? WHERE  propname = ? AND version = ?");
+      }
     }
 
     try {
index 273cc1d..8f37882 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.util.StringUtils;
 
 import org.hsqldb.Server;
-import org.hsqldb.ServerConstants;
+import org.hsqldb.server.ServerConstants;
 
 import com.cloudera.sqoop.SqoopOptions;
 
index 7016826..e38e597 100644 (file)
@@ -315,7 +315,7 @@ public class TestAvroExport extends ExportJobTestCase {
       colGenerator(100, Schema.create(Schema.Type.INT), 100, "INTEGER"),
       colGenerator(200L, Schema.create(Schema.Type.LONG), 200L, "BIGINT"),
       // HSQLDB maps REAL to double, not float:
-      colGenerator(1.0f, Schema.create(Schema.Type.FLOAT), 1.0d, "REAL"),
+      colGenerator(1.0d, Schema.create(Schema.Type.DOUBLE), 1.0d, "REAL"),
       colGenerator(2.0d, Schema.create(Schema.Type.DOUBLE), 2.0d, "DOUBLE"),
       colGenerator("s", Schema.create(Schema.Type.STRING), "s", "VARCHAR(8)"),
       colGenerator(ByteBuffer.wrap(b), Schema.create(Schema.Type.BYTES),
index 32d1bbe..40d5c76 100644 (file)
@@ -136,7 +136,7 @@ public class TestAvroImport extends ImportJobTestCase {
     checkField(fields.get(0), "DATA_COL0", Schema.Type.BOOLEAN);
     checkField(fields.get(1), "DATA_COL1", Schema.Type.INT);
     checkField(fields.get(2), "DATA_COL2", Schema.Type.LONG);
-    checkField(fields.get(3), "DATA_COL3", Schema.Type.FLOAT);
+    checkField(fields.get(3), "DATA_COL3", Schema.Type.DOUBLE);
     checkField(fields.get(4), "DATA_COL4", Schema.Type.DOUBLE);
     checkField(fields.get(5), "DATA_COL5", Schema.Type.STRING);
     checkField(fields.get(6), "DATA_COL6", Schema.Type.BYTES);
@@ -145,7 +145,7 @@ public class TestAvroImport extends ImportJobTestCase {
     assertEquals("DATA_COL0", true, record1.get("DATA_COL0"));
     assertEquals("DATA_COL1", 100, record1.get("DATA_COL1"));
     assertEquals("DATA_COL2", 200L, record1.get("DATA_COL2"));
-    assertEquals("DATA_COL3", 1.0f, record1.get("DATA_COL3"));
+    assertEquals("DATA_COL3", 1.0d, record1.get("DATA_COL3"));
     assertEquals("DATA_COL4", 2.0, record1.get("DATA_COL4"));
     assertEquals("DATA_COL5", new Utf8("s"), record1.get("DATA_COL5"));
     Object object = record1.get("DATA_COL6");
index eba10aa..0588cb0 100644 (file)
@@ -751,6 +751,11 @@ public class TestExport extends ExportJobTestCase {
     assertColMinAndMax(forIdx(1), genTime);
   }
 
+  /** @return the text representation of double */
+  protected String getDoubleTextOut(double v) {
+    return Double.toString(v) + "E0";
+  }
+
   public void testNumericTypes() throws IOException, SQLException {
     final int TOTAL_RECORDS = 9;
 
@@ -758,11 +763,11 @@ public class TestExport extends ExportJobTestCase {
     ColumnGenerator genFloat = new ColumnGenerator() {
       public String getExportText(int rowNum) {
         double v = 3.141 * (double) (rowNum + 1);
-        return "" + v;
+        return Double.toString(v);
       }
       public String getVerifyText(int rowNum) {
         double v = 3.141 * (double) (rowNum + 1);
-        return "" + v;
+        return getDoubleTextOut(v);
       }
       public String getType() {
         return "FLOAT";
index e165cfe..9e30ea1 100644 (file)
@@ -134,7 +134,7 @@ public class TestMultiCols extends ImportJobTestCase {
   public void testMixed4() {
     String [] types = { "NUMERIC", "INTEGER", "NUMERIC" };
     String [] insertVals = { "-42", "17", "33333333333333333333333.1714" };
-    String validateLine = "-42,17,33333333333333333333333.1714";
+    String validateLine = "-42,17,33333333333333333333333";
 
     verifyTypes(types, insertVals, validateLine);
   }
@@ -142,7 +142,7 @@ public class TestMultiCols extends ImportJobTestCase {
   public void testMixed5() {
     String [] types = { "NUMERIC", "INTEGER", "NUMERIC" };
     String [] insertVals = { "null", "17", "33333333333333333333333.0" };
-    String validateLine = "null,17,33333333333333333333333.0";
+    String validateLine = "null,17,33333333333333333333333";
 
     verifyTypes(types, insertVals, validateLine);
   }
index 170bc66..52e598f 100644 (file)
@@ -373,8 +373,9 @@ public class TestHiveImport extends ImportJobTestCase {
     BufferedReader br = new BufferedReader(fr);
     try {
       // verify the output
-      assertEquals(br.readLine(), "test with  new lines " + '\01' + "42"
-          + '\01' + "oh no  field delims ");
+      assertEquals("test with  new lines " + '\01' + "42" + '\01'
+          + "oh no  field delims                                           ",
+          br.readLine());
       assertEquals(br.readLine(), null); // should only be one line
     } catch (IOException ioe) {
       fail("Unable to read files generated from hive");
@@ -423,8 +424,9 @@ public class TestHiveImport extends ImportJobTestCase {
     BufferedReader br = new BufferedReader(fr);
     try {
       // verify the output
-      assertEquals(br.readLine(), "test with new lines " + '\01' + "42"
-          + '\01' + "oh no   field delims  ");
+      assertEquals("test with new lines " + '\01' + "42" + '\01'
+          + "oh no   field delims                                            ",
+          br.readLine());
       assertEquals(br.readLine(), null); // should only be one line
     } catch (IOException ioe) {
       fail("Unable to read files generated from hive");
index eac7836..f84c633 100644 (file)
@@ -77,6 +77,11 @@ public class DirectMySQLExportTest extends TestExport {
     return "DROP TABLE IF EXISTS " + tableName;
   }
 
+  @Override
+  protected String getDoubleTextOut(double v) {
+    return Double.toString(v);
+  }
+
   @Before
   public void setUp() {
     super.setUp();
index f00cac4..1e822b6 100644 (file)
@@ -78,6 +78,11 @@ public class JdbcMySQLExportTest extends TestExport {
     return "DROP TABLE IF EXISTS " + tableName;
   }
 
+  @Override
+  protected String getDoubleTextOut(double v) {
+    return Double.toString(v);
+  }
+
   @Before
   public void setUp() {
     super.setUp();
index 675b6b8..7c78407 100644 (file)
@@ -162,6 +162,11 @@ public class MySQLCompatTest extends ManagerCompatTestCase {
     return getNumericSeqOutput(numAsInserted);
   }
 
+  @Override
+  protected String getFixedCharSeqOut(int fieldWidth, String asInserted) {
+    return asInserted;
+  }
+
   @Test
   public void testYear() {
     verifyType("YEAR", "2012", "2012");
index 309a960..9a13dc2 100644 (file)
@@ -164,6 +164,16 @@ public class OracleCompatTest extends ManagerCompatTestCase {
   }
 
   @Override
+  protected String getNumericSeqOutput(String numAsInserted) {
+    return numAsInserted;
+  }
+
+  @Override
+  protected String getDecimalSeqOutput(String numAsInserted) {
+    return numAsInserted;
+  }
+
+  @Override
   protected String getBlobInsertStr(String blobData) {
     // Oracle wants blob data encoded as hex (e.g. '01fca3b5').
 
index 7ee3d94..d353383 100644 (file)
@@ -264,6 +264,11 @@ public class OracleExportTest extends TestExport {
     }
   }
 
+  @Override
+  protected String getDoubleTextOut(double v) {
+    return Double.toString(v);
+  }
+
   /** Make sure mixed update/insert export work correctly. */
   public void testUpsertTextExport() throws IOException, SQLException {
     final int TOTAL_RECORDS = 10;
index 6b4214c..ed2062d 100644 (file)
@@ -181,10 +181,14 @@ public class TestDataDrivenDBInputFormat extends TestCase {
 
       // Create the table.
       s.executeUpdate("CREATE TABLE " + DATE_TABLE + "(" + COL + " TIMESTAMP)");
-      s.executeUpdate("INSERT INTO " + DATE_TABLE + " VALUES('2010-04-01')");
-      s.executeUpdate("INSERT INTO " + DATE_TABLE + " VALUES('2010-04-02')");
-      s.executeUpdate("INSERT INTO " + DATE_TABLE + " VALUES('2010-05-01')");
-      s.executeUpdate("INSERT INTO " + DATE_TABLE + " VALUES('2011-04-01')");
+      s.executeUpdate("INSERT INTO " + DATE_TABLE
+          + " VALUES('2010-04-01 00:00:00')");
+      s.executeUpdate("INSERT INTO " + DATE_TABLE
+          + " VALUES('2010-04-02 00:00:00')");
+      s.executeUpdate("INSERT INTO " + DATE_TABLE
+          + " VALUES('2010-05-01 00:00:00')");
+      s.executeUpdate("INSERT INTO " + DATE_TABLE
+          + " VALUES('2011-04-01 00:00:00')");
 
       // commit this tx.
       connection.commit();
index ecbaa83..bb8132c 100644 (file)
@@ -390,11 +390,27 @@ public abstract class ManagerCompatTestCase extends ImportJobTestCase {
   }
 
   protected String getNumericSeqOutput(String numAsInserted) {
-    return numAsInserted;
+    int dotPos = numAsInserted.indexOf(".");
+    if (-1 == dotPos) {
+      // No dot in the original string; expand to add zeros after the
+      // dot.
+      return numAsInserted + ".00000";
+    } else {
+      // all other strings return as-is.
+      return numAsInserted;
+    }
   }
 
   protected String getDecimalSeqOutput(String numAsInserted) {
-    return numAsInserted;
+    int dotPos = numAsInserted.indexOf(".");
+    if (-1 == dotPos) {
+      // No dot in the original string; expand to add zeros after the
+      // dot.
+      return numAsInserted + ".00000";
+    } else {
+      // all other strings return as-is.
+      return numAsInserted;
+    }
   }
 
   /**
@@ -402,7 +418,7 @@ public abstract class ManagerCompatTestCase extends ImportJobTestCase {
    * sequence file
    */
   protected String getFixedCharSeqOut(int fieldWidth, String asInserted) {
-    return asInserted;
+    return padString(fieldWidth, asInserted);
   }
 
   /**