diff options
author | Tamas Bunth <tamas.bunth@collabora.co.uk> | 2018-10-26 21:04:09 +0200 |
---|---|---|
committer | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2018-11-06 19:05:21 +0100 |
commit | 3c8ad17c769753af50ef14770661a6c1ffed226e (patch) | |
tree | e41e1ff174d9db6349fc2365488bf161b16e7aa7 /dbaccess | |
parent | 885f99d1d926fa08f58117573717f98eb0de139c (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.cxx | 18 |
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("("); |