diff --git a/bin/configure-sqoop b/bin/configure-sqoop
index cc5f7434..ee1dd7bd 100755
--- a/bin/configure-sqoop
+++ b/bin/configure-sqoop
@@ -113,14 +113,6 @@ if [ ! -z "$SQOOP_USER_CLASSPATH" ]; then
export HADOOP_CLASSPATH="${SQOOP_USER_CLASSPATH}:${HADOOP_CLASSPATH}"
fi
-#Sqoop execution faces Class loading issue due to conflicting hsqldb
-#jar versions in Sqoop(hsqldb-2.2.8) and Hadoop(hsqldb-1.8.0.10).
-#Setting HADOOP_USER_CLASSPATH_FIRST to true adds Sqoop's classpath
-#(consequently, hsqldb-2.2.8.jar) before Hadoop's and resolves the issue.
-#Refer SQOOP-524 JIRA for more details.
-HADOOP_USER_CLASSPATH_FIRST=true
-
-export HADOOP_USER_CLASSPATH_FIRST
export SQOOP_CLASSPATH
export SQOOP_CONF_DIR
export SQOOP_JAR_DIR
diff --git a/ivy.xml b/ivy.xml
index effecb3a..ca2b89bf 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -124,7 +124,7 @@ under the License.
conf="common->master" />
-
@@ -167,7 +167,6 @@ under the License.
-
diff --git a/ivy/libraries.properties b/ivy/libraries.properties
index 4d76e405..4c9e37d3 100644
--- a/ivy/libraries.properties
+++ b/ivy/libraries.properties
@@ -28,7 +28,7 @@ commons-io.version=1.4
commons-lang.version=2.4
commons-logging.version=1.0.4
-hsqldb.version=2.2.8
+hsqldb.version=1.8.0.10
ivy.version=2.1.0
diff --git a/ivy/sqoop-test.xml b/ivy/sqoop-test.xml
index df2b3ce9..01b0d51f 100644
--- a/ivy/sqoop-test.xml
+++ b/ivy/sqoop-test.xml
@@ -47,7 +47,7 @@ under the License.
rev="${hadoop-core.cloudera.version}" conf="common->default"/>
-
diff --git a/ivy/sqoop.xml b/ivy/sqoop.xml
index ad921020..bb957d91 100644
--- a/ivy/sqoop.xml
+++ b/ivy/sqoop.xml
@@ -42,7 +42,7 @@ under the License.
-
diff --git a/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbJobStorage.java b/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbJobStorage.java
index a8f0c42a..a0f29fd0 100644
--- a/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbJobStorage.java
+++ b/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbJobStorage.java
@@ -177,7 +177,7 @@ protected void init() throws IOException {
metastoreUser, metastorePassword);
}
- connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
+ connection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
connection.setAutoCommit(false);
// Initialize the root schema.
@@ -596,25 +596,17 @@ private void setRootProperty(String propertyName, Integer version,
PreparedStatement s;
String curVal = getRootProperty(propertyName, version);
if (null == curVal) {
- 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 ( ? , ? , ? )");
- }
+ // 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");
} else {
- 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 = ?");
- }
+ // UPDATE an existing row with non-null version.
+ s = connection.prepareStatement("UPDATE " + getRootTableName()
+ + " SET propval = ? WHERE propname = ? AND version = ?");
}
try {
diff --git a/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbMetaStore.java b/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbMetaStore.java
index 8f37882d..273cc1d9 100644
--- a/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbMetaStore.java
+++ b/src/java/org/apache/sqoop/metastore/hsqldb/HsqldbMetaStore.java
@@ -30,7 +30,7 @@
import org.apache.hadoop.util.StringUtils;
import org.hsqldb.Server;
-import org.hsqldb.server.ServerConstants;
+import org.hsqldb.ServerConstants;
import com.cloudera.sqoop.SqoopOptions;
diff --git a/src/test/com/cloudera/sqoop/TestAvroExport.java b/src/test/com/cloudera/sqoop/TestAvroExport.java
index e38e5973..70168263 100644
--- a/src/test/com/cloudera/sqoop/TestAvroExport.java
+++ b/src/test/com/cloudera/sqoop/TestAvroExport.java
@@ -315,7 +315,7 @@ public void testSupportedAvroTypes() throws IOException, SQLException {
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.0d, Schema.create(Schema.Type.DOUBLE), 1.0d, "REAL"),
+ colGenerator(1.0f, Schema.create(Schema.Type.FLOAT), 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),
diff --git a/src/test/com/cloudera/sqoop/TestAvroImport.java b/src/test/com/cloudera/sqoop/TestAvroImport.java
index 40d5c766..32d1bbea 100644
--- a/src/test/com/cloudera/sqoop/TestAvroImport.java
+++ b/src/test/com/cloudera/sqoop/TestAvroImport.java
@@ -136,7 +136,7 @@ private void avroImportTestHelper(String[] extraArgs, String codec)
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.DOUBLE);
+ checkField(fields.get(3), "DATA_COL3", Schema.Type.FLOAT);
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 @@ private void avroImportTestHelper(String[] extraArgs, String codec)
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.0d, record1.get("DATA_COL3"));
+ assertEquals("DATA_COL3", 1.0f, 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");
diff --git a/src/test/com/cloudera/sqoop/TestExport.java b/src/test/com/cloudera/sqoop/TestExport.java
index 0588cb09..eba10aae 100644
--- a/src/test/com/cloudera/sqoop/TestExport.java
+++ b/src/test/com/cloudera/sqoop/TestExport.java
@@ -751,11 +751,6 @@ public void testDatesAndTimes() throws IOException, SQLException {
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;
@@ -763,11 +758,11 @@ public void testNumericTypes() throws IOException, SQLException {
ColumnGenerator genFloat = new ColumnGenerator() {
public String getExportText(int rowNum) {
double v = 3.141 * (double) (rowNum + 1);
- return Double.toString(v);
+ return "" + v;
}
public String getVerifyText(int rowNum) {
double v = 3.141 * (double) (rowNum + 1);
- return getDoubleTextOut(v);
+ return "" + v;
}
public String getType() {
return "FLOAT";
diff --git a/src/test/com/cloudera/sqoop/TestMultiCols.java b/src/test/com/cloudera/sqoop/TestMultiCols.java
index 9e30ea18..e165cfe2 100644
--- a/src/test/com/cloudera/sqoop/TestMultiCols.java
+++ b/src/test/com/cloudera/sqoop/TestMultiCols.java
@@ -134,7 +134,7 @@ public void testMixed3() {
public void testMixed4() {
String [] types = { "NUMERIC", "INTEGER", "NUMERIC" };
String [] insertVals = { "-42", "17", "33333333333333333333333.1714" };
- String validateLine = "-42,17,33333333333333333333333";
+ String validateLine = "-42,17,33333333333333333333333.1714";
verifyTypes(types, insertVals, validateLine);
}
@@ -142,7 +142,7 @@ public void testMixed4() {
public void testMixed5() {
String [] types = { "NUMERIC", "INTEGER", "NUMERIC" };
String [] insertVals = { "null", "17", "33333333333333333333333.0" };
- String validateLine = "null,17,33333333333333333333333";
+ String validateLine = "null,17,33333333333333333333333.0";
verifyTypes(types, insertVals, validateLine);
}
diff --git a/src/test/com/cloudera/sqoop/hive/TestHiveImport.java b/src/test/com/cloudera/sqoop/hive/TestHiveImport.java
index 52e598f6..170bc664 100644
--- a/src/test/com/cloudera/sqoop/hive/TestHiveImport.java
+++ b/src/test/com/cloudera/sqoop/hive/TestHiveImport.java
@@ -373,9 +373,8 @@ public void testFieldWithHiveDelims() throws IOException,
BufferedReader br = new BufferedReader(fr);
try {
// verify the output
- assertEquals("test with new lines " + '\01' + "42" + '\01'
- + "oh no field delims ",
- br.readLine());
+ assertEquals(br.readLine(), "test with new lines " + '\01' + "42"
+ + '\01' + "oh no field delims ");
assertEquals(br.readLine(), null); // should only be one line
} catch (IOException ioe) {
fail("Unable to read files generated from hive");
@@ -424,9 +423,8 @@ public void testFieldWithHiveDelimsReplacement() throws IOException,
BufferedReader br = new BufferedReader(fr);
try {
// verify the output
- assertEquals("test with new lines " + '\01' + "42" + '\01'
- + "oh no field delims ",
- br.readLine());
+ assertEquals(br.readLine(), "test with new lines " + '\01' + "42"
+ + '\01' + "oh no field delims ");
assertEquals(br.readLine(), null); // should only be one line
} catch (IOException ioe) {
fail("Unable to read files generated from hive");
diff --git a/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java b/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
index f84c6330..eac78368 100644
--- a/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/DirectMySQLExportTest.java
@@ -77,11 +77,6 @@ protected String getDropTableStatement(String tableName) {
return "DROP TABLE IF EXISTS " + tableName;
}
- @Override
- protected String getDoubleTextOut(double v) {
- return Double.toString(v);
- }
-
@Before
public void setUp() {
super.setUp();
diff --git a/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java b/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
index 1e822b6f..f00cac4e 100644
--- a/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/JdbcMySQLExportTest.java
@@ -78,11 +78,6 @@ protected String getDropTableStatement(String tableName) {
return "DROP TABLE IF EXISTS " + tableName;
}
- @Override
- protected String getDoubleTextOut(double v) {
- return Double.toString(v);
- }
-
@Before
public void setUp() {
super.setUp();
diff --git a/src/test/com/cloudera/sqoop/manager/MySQLCompatTest.java b/src/test/com/cloudera/sqoop/manager/MySQLCompatTest.java
index 7c784078..675b6b84 100644
--- a/src/test/com/cloudera/sqoop/manager/MySQLCompatTest.java
+++ b/src/test/com/cloudera/sqoop/manager/MySQLCompatTest.java
@@ -162,11 +162,6 @@ protected String getDecimalSeqOutput(String numAsInserted) {
return getNumericSeqOutput(numAsInserted);
}
- @Override
- protected String getFixedCharSeqOut(int fieldWidth, String asInserted) {
- return asInserted;
- }
-
@Test
public void testYear() {
verifyType("YEAR", "2012", "2012");
diff --git a/src/test/com/cloudera/sqoop/manager/OracleCompatTest.java b/src/test/com/cloudera/sqoop/manager/OracleCompatTest.java
index 9a13dc2e..309a960d 100644
--- a/src/test/com/cloudera/sqoop/manager/OracleCompatTest.java
+++ b/src/test/com/cloudera/sqoop/manager/OracleCompatTest.java
@@ -163,16 +163,6 @@ protected String getVarBinarySeqOutput(String asInserted) {
return toLowerHexString(asInserted);
}
- @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').
diff --git a/src/test/com/cloudera/sqoop/manager/OracleExportTest.java b/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
index d3533835..7ee3d944 100644
--- a/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
+++ b/src/test/com/cloudera/sqoop/manager/OracleExportTest.java
@@ -264,11 +264,6 @@ public void testDatesAndTimes() throws IOException, SQLException {
}
}
- @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;
diff --git a/src/test/com/cloudera/sqoop/mapreduce/db/TestDataDrivenDBInputFormat.java b/src/test/com/cloudera/sqoop/mapreduce/db/TestDataDrivenDBInputFormat.java
index ed2062dd..6b4214cf 100644
--- a/src/test/com/cloudera/sqoop/mapreduce/db/TestDataDrivenDBInputFormat.java
+++ b/src/test/com/cloudera/sqoop/mapreduce/db/TestDataDrivenDBInputFormat.java
@@ -181,14 +181,10 @@ public void testDateSplits() throws Exception {
// Create the table.
s.executeUpdate("CREATE TABLE " + DATE_TABLE + "(" + COL + " TIMESTAMP)");
- 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')");
+ 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')");
// commit this tx.
connection.commit();
diff --git a/src/test/com/cloudera/sqoop/testutil/ManagerCompatTestCase.java b/src/test/com/cloudera/sqoop/testutil/ManagerCompatTestCase.java
index bb8132c1..ecbaa835 100644
--- a/src/test/com/cloudera/sqoop/testutil/ManagerCompatTestCase.java
+++ b/src/test/com/cloudera/sqoop/testutil/ManagerCompatTestCase.java
@@ -390,27 +390,11 @@ protected String getTimestampSeqOutput(String tsAsInserted) {
}
protected String getNumericSeqOutput(String 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;
- }
+ return numAsInserted;
}
protected String getDecimalSeqOutput(String 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;
- }
+ return numAsInserted;
}
/**
@@ -418,7 +402,7 @@ protected String getDecimalSeqOutput(String numAsInserted) {
* sequence file
*/
protected String getFixedCharSeqOut(int fieldWidth, String asInserted) {
- return padString(fieldWidth, asInserted);
+ return asInserted;
}
/**