diff options
author | Tamas Bunth <tamas.bunth@collabora.co.uk> | 2018-10-26 21:04:09 +0200 |
---|---|---|
committer | Tamás Bunth <btomi96@gmail.com> | 2018-10-29 10:02:56 +0100 |
commit | 76279399f747548494a259173ef5669553c3f06f (patch) | |
tree | 9efa72d1fb79472e4c868c7efeabc85c1206dbe8 /dbaccess | |
parent | a1dd2f55f24da4fa875a92eebf05c154528e1d74 (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>
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("("); |