summaryrefslogtreecommitdiff
path: root/dbaccess/qa
diff options
context:
space:
mode:
authorTamas Bunth <tamas.bunth@collabora.co.uk>2018-06-26 12:27:57 +0200
committerTamás Bunth <btomi96@gmail.com>2018-07-06 10:33:48 +0200
commit8f3d6e67b08ed1bce9bc989e5e3df92c4d9d95d3 (patch)
tree090693bcf6074ace894d37a6b40c0dab01706c6f /dbaccess/qa
parent2b0a7c346f8e3c5823a9e032a4501f20bc712914 (diff)
tdf#117867 dbahsql: Migrate default values
Default Value "NOW" is a special case, because Firebird likes it with single quotes. In contrast, HSQLDB uses the keyword without quotes. Add unit test for parsing default value "NOW" Change-Id: I34886f8ae53e98addb52bf5e85030a03721d6a45 Reviewed-on: https://gerrit.libreoffice.org/56454 Tested-by: Jenkins Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Diffstat (limited to 'dbaccess/qa')
-rw-r--r--dbaccess/qa/extras/hsql_schema_import.cxx23
1 files changed, 23 insertions, 0 deletions
diff --git a/dbaccess/qa/extras/hsql_schema_import.cxx b/dbaccess/qa/extras/hsql_schema_import.cxx
index a04e3697ecfb..892be33d15e7 100644
--- a/dbaccess/qa/extras/hsql_schema_import.cxx
+++ b/dbaccess/qa/extras/hsql_schema_import.cxx
@@ -41,6 +41,7 @@ public:
void testNumericWithTwoParam();
void testIntegerAutoincremental();
void testTimestampWithParam();
+ void testDefaultValueNow();
// TODO testForeign, testDecomposer
CPPUNIT_TEST_SUITE(HsqlSchemaImportTest);
@@ -51,6 +52,7 @@ public:
CPPUNIT_TEST(testNumericWithTwoParam);
CPPUNIT_TEST(testIntegerAutoincremental);
CPPUNIT_TEST(testTimestampWithParam);
+ CPPUNIT_TEST(testDefaultValueNow);
CPPUNIT_TEST_SUITE_END();
};
@@ -174,6 +176,27 @@ void HsqlSchemaImportTest::testTimestampWithParam()
CPPUNIT_ASSERT(fbSql.indexOf("0") < 0); //does not contain
}
+/**
+ * Special case:
+ * HSQLDB uses keyword NOW without quotes. Firebird uses single quotes 'NOW'
+ */
+void HsqlSchemaImportTest::testDefaultValueNow()
+{
+ OUString sql{ "CREATE CACHED TABLE \"myTable\"(\"id\" INTEGER NOT NULL PRIMARY KEY, \"myDate\" "
+ "TIMESTAMP DEFAULT NOW)" };
+
+ FbCreateStmtParser aCreateParser;
+ aCreateParser.parse(sql);
+
+ const auto& columns = aCreateParser.getColumnDef();
+ const ColumnDefinition* colTimeStamp = lcl_findByType(columns, css::sdbc::DataType::TIMESTAMP);
+
+ CPPUNIT_ASSERT(colTimeStamp != nullptr);
+ CPPUNIT_ASSERT_EQUAL(OUString{ "NOW" }, colTimeStamp->getDefault()); // parsed NOW
+ OUString fbSql = aCreateParser.compose();
+ CPPUNIT_ASSERT(fbSql.indexOf("\'NOW\'") > 0); // composed 'NOW'
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(HsqlSchemaImportTest);
CPPUNIT_PLUGIN_IMPLEMENT();