summaryrefslogtreecommitdiff
path: root/dbaccess/source
diff options
context:
space:
mode:
authorTamas Bunth <tamas.bunth@collabora.co.uk>2018-04-07 16:07:03 +0200
committerTamás Bunth <btomi96@gmail.com>2018-04-07 17:49:49 +0200
commit29c6629a54bd5d6cb8ccbfc663b1fed36c57e616 (patch)
tree7ec6b6c15ee8edbc4911e1b8e37f9ce831fb9f21 /dbaccess/source
parente3d3a7c373657dcc39aaefab9fedce9f2d12cb63 (diff)
dbahsql: add default for autoincremented columns
Change-Id: I8b4c99ed9e3701193228c58cc9e64dc87a03da71 Reviewed-on: https://gerrit.libreoffice.org/52550 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Diffstat (limited to 'dbaccess/source')
-rw-r--r--dbaccess/source/filter/hsqldb/columndef.hxx1
-rw-r--r--dbaccess/source/filter/hsqldb/fbcreateparser.cxx11
2 files changed, 10 insertions, 2 deletions
diff --git a/dbaccess/source/filter/hsqldb/columndef.hxx b/dbaccess/source/filter/hsqldb/columndef.hxx
index 5b5c68f7e67a..2bdbef83cd11 100644
--- a/dbaccess/source/filter/hsqldb/columndef.hxx
+++ b/dbaccess/source/filter/hsqldb/columndef.hxx
@@ -35,6 +35,7 @@ public:
bool isPrimaryKey() const { return m_bPrimaryKey; }
bool isNullable() const { return m_bNullable; }
bool isAutoIncremental() const { return m_nAutoIncrement >= 0; }
+ sal_Int32 getStartValue() const { return m_nAutoIncrement; }
const std::vector<sal_Int32> getParams() const { return m_aParams; }
};
}
diff --git a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
index 764ccaca2d69..fe23eec6635b 100644
--- a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
+++ b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx
@@ -142,9 +142,16 @@ OUString FbCreateStmtParser::compose() const
if (!sModifier.isEmpty())
lcl_appendWithSpace(sSql, sModifier);
- // TODO autoincremental default value with "START WITH"
if (columnIter->isAutoIncremental())
- lcl_appendWithSpace(sSql, "GENERATED BY DEFAULT AS IDENTITY (START WITH 0)");
+ {
+ lcl_appendWithSpace(sSql, "GENERATED BY DEFAULT AS IDENTITY (START WITH ");
+
+ // start with 0:
+ // HSQLDB: first value will be 0.
+ // Firebird: first value will be 1.
+ sSql.append(columnIter->getStartValue() - 1);
+ sSql.append(")");
+ }
else if (!columnIter->isNullable())
lcl_appendWithSpace(sSql, "NOT NULL");