summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorTamas Bunth <tamas.bunth@collabora.co.uk>2018-10-26 21:04:09 +0200
committerBartosz Kosiorek <gang65@poczta.onet.pl>2018-11-06 19:05:21 +0100
commit3c8ad17c769753af50ef14770661a6c1ffed226e (patch)
treee41e1ff174d9db6349fc2365488bf161b16e7aa7 /dbaccess
parent885f99d1d926fa08f58117573717f98eb0de139c (diff)
tdf#120691 Migrate tables which contain spaces
Change-Id: I115d765bc781a926189605990e91c8e47f24d474 Reviewed-on: https://gerrit.libreoffice.org/62403 Tested-by: Jenkins Reviewed-by: Tamás Bunth <btomi96@gmail.com> (cherry picked from commit 76279399f747548494a259173ef5669553c3f06f) Reviewed-on: https://gerrit.libreoffice.org/62501 Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/filter/hsqldb/utils.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/dbaccess/source/filter/hsqldb/utils.cxx b/dbaccess/source/filter/hsqldb/utils.cxx
index dfdbee40c37b..8d6c49e348dc 100644
--- a/dbaccess/source/filter/hsqldb/utils.cxx
+++ b/dbaccess/source/filter/hsqldb/utils.cxx
@@ -22,6 +22,8 @@
#include <comphelper/processfactory.hxx>
#include <connectivity/dbexception.hxx>
+#include <sal/log.hxx>
+
#include "utils.hxx"
using namespace dbahsql;
@@ -39,6 +41,22 @@ OUString utils::getTableNameFromStmt(const OUString& sSql)
if (*wordIter == "TABLE")
++wordIter;
+ // it may contain spaces if it's put into apostrophes.
+ if (wordIter->indexOf("\"") >= 0)
+ {
+ sal_Int32 nAposBegin = sSql.indexOf("\"");
+ sal_Int32 nAposEnd = nAposBegin;
+ bool bProperEndAposFound = false;
+ while (!bProperEndAposFound)
+ {
+ nAposEnd = sSql.indexOf("\"", nAposEnd + 1);
+ if (sSql[nAposEnd - 1] != u'\\')
+ bProperEndAposFound = true;
+ }
+ OUString result = sSql.copy(nAposBegin, nAposEnd - nAposBegin + 1);
+ return result;
+ }
+
// next word is the table's name
// it might stuck together with the column definitions.
sal_Int32 nParenPos = wordIter->indexOf("(");