dbaccess/source/filter/hsqldb/parseschema.cxx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
New commits: commit ed9acbe6057f535bca8d4ce98aa0eda7be34e15b Author: Tamas Bunth <tamas.bu...@collabora.co.uk> AuthorDate: Tue Jul 16 21:44:38 2019 +0200 Commit: Michael Stahl <michael.st...@cib.de> CommitDate: Mon Jul 22 11:33:30 2019 +0200 tdf#123020 dbahsql: Support string delimiter Support multi-word table names while migrating HSQLDB data. Change-Id: I5129f995ea90a3fdbcbcb844774cf074f3ffddb2 Reviewed-on: https://gerrit.libreoffice.org/75734 Tested-by: Jenkins Reviewed-by: Xisco FaulĂ <xiscofa...@libreoffice.org> (cherry picked from commit b5890bf269214a47833bc9514b80650455e77ef6) Reviewed-on: https://gerrit.libreoffice.org/75820 Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> (cherry picked from commit 47d6c43c19aa6ea05f0f65db58e5cdcf1c603660) Reviewed-on: https://gerrit.libreoffice.org/75853 Reviewed-by: Michael Stahl <michael.st...@cib.de> diff --git a/dbaccess/source/filter/hsqldb/parseschema.cxx b/dbaccess/source/filter/hsqldb/parseschema.cxx index e04998c80f28..f8e17d90b312 100644 --- a/dbaccess/source/filter/hsqldb/parseschema.cxx +++ b/dbaccess/source/filter/hsqldb/parseschema.cxx @@ -28,6 +28,7 @@ #include <comphelper/processfactory.hxx> #include <comphelper/string.hxx> #include <sal/log.hxx> +#include <connectivity/dbexception.hxx> namespace { @@ -74,8 +75,17 @@ public: OUString getTableName() const { - // SET TABLE <tableName> - return string::split(m_sql, u' ')[2]; + // SET TABLE <tableName> or SET TABLE "<multi word table name>" + OUString sName = string::split(m_sql, u' ')[2]; + if (sName.indexOf('"') >= 0) + { + // Table name with string delimiter + OUStringBuffer sMultiName("\""); + sMultiName.append(string::split(m_sql, u'"')[1]); + sMultiName.append("\""); + sName = sMultiName.makeStringAndClear(); + } + return sName; } }; @@ -169,6 +179,12 @@ void SchemaParser::parseSchema() ColumnTypeVector SchemaParser::getTableColumnTypes(const OUString& sTableName) const { + if (m_ColumnTypes.count(sTableName) < 1) + { + constexpr char NOT_EXIST[] = "Internal error while getting column information of table"; + SAL_WARN("dbaccess", NOT_EXIST << ". Table name is: " << sTableName); + dbtools::throwGenericSQLException(NOT_EXIST, ::comphelper::getProcessComponentContext()); + } return m_ColumnTypes.at(sTableName); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits