diff options
Diffstat (limited to 'dbaccess/source/filter/hsqldb/fbcreateparser.cxx')
-rw-r--r-- | dbaccess/source/filter/hsqldb/fbcreateparser.cxx | 71 |
1 files changed, 30 insertions, 41 deletions
diff --git a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx index 4f8fb8667d1e..f19778f7439d 100644 --- a/dbaccess/source/filter/hsqldb/fbcreateparser.cxx +++ b/dbaccess/source/filter/hsqldb/fbcreateparser.cxx @@ -29,52 +29,46 @@ using namespace css::sdbc; namespace { -void lcl_appendWithSpace(OUStringBuffer& sBuff, const OUString& sStr) -{ - sBuff.append(" "); - sBuff.append(sStr); -} - OUString lcl_DataTypetoFbTypeName(sal_Int32 eType) { switch (eType) { case DataType::CHAR: case DataType::BINARY: - return "CHAR"; + return u"CHAR"_ustr; case DataType::VARCHAR: case DataType::VARBINARY: - return "VARCHAR"; + return u"VARCHAR"_ustr; case DataType::TINYINT: // no such type in Firebird case DataType::SMALLINT: - return "SMALLINT"; + return u"SMALLINT"_ustr; case DataType::INTEGER: - return "INTEGER"; + return u"INTEGER"_ustr; case DataType::BIGINT: - return "BIGINT"; + return u"BIGINT"_ustr; case DataType::NUMERIC: - return "NUMERIC"; + return u"NUMERIC"_ustr; case DataType::DECIMAL: - return "DECIMAL"; + return u"DECIMAL"_ustr; case DataType::BOOLEAN: - return "BOOLEAN"; + return u"BOOLEAN"_ustr; case DataType::LONGVARCHAR: case DataType::LONGVARBINARY: case DataType::CLOB: case DataType::BLOB: case DataType::OTHER: - return "BLOB"; + return u"BLOB"_ustr; case DataType::DATE: - return "DATE"; + return u"DATE"_ustr; case DataType::TIME: - return "TIME"; + return u"TIME"_ustr; case DataType::TIMESTAMP: - return "TIMESTAMP"; + return u"TIMESTAMP"_ustr; case DataType::DOUBLE: case DataType::REAL: - return "DOUBLE PRECISION"; + return u"DOUBLE PRECISION"_ustr; case DataType::FLOAT: - return "FLOAT"; + return u"FLOAT"_ustr; default: assert(false); return OUString(); @@ -89,12 +83,12 @@ OUString lcl_getTypeModifier(sal_Int32 eType) { case DataType::CLOB: case DataType::LONGVARCHAR: - return "SUB_TYPE 1"; + return u"SUB_TYPE 1"_ustr; case DataType::LONGVARBINARY: - return "SUB_TYPE -9546"; + return u"SUB_TYPE -9546"_ustr; case DataType::BINARY: case DataType::VARBINARY: - return "CHARACTER SET OCTETS"; + return u"CHARACTER SET OCTETS"_ustr; default: return OUString(); } @@ -110,8 +104,7 @@ void FbCreateStmtParser::appendPrimaryKeyPart(OUStringBuffer& rSql) const if (sPrimaryKeys.empty()) return; // no primary key specified - rSql.append(","); - rSql.append("PRIMARY KEY("); + rSql.append(",PRIMARY KEY("); auto it = sPrimaryKeys.cbegin(); while (it != sPrimaryKeys.end()) { @@ -135,16 +128,14 @@ OUString FbCreateStmtParser::compose() const { ensureProperTableLengths(); OUStringBuffer sSql(128); - sSql.append("CREATE TABLE "); - sSql.append(getTableName()); + sSql.append("CREATE TABLE " + getTableName() + " ("); // column declaration - lcl_appendWithSpace(sSql, "("); // column declaration auto& rColumns = getColumnDef(); auto columnIter = rColumns.cbegin(); while (columnIter != rColumns.end()) { - lcl_appendWithSpace(sSql, columnIter->getName()); - lcl_appendWithSpace(sSql, lcl_DataTypetoFbTypeName(columnIter->getDataType())); + sSql.append(" " + columnIter->getName() + " " + + lcl_DataTypetoFbTypeName(columnIter->getDataType())); std::vector<sal_Int32> params{ columnIter->getParams() }; @@ -163,7 +154,7 @@ OUString FbCreateStmtParser::compose() const auto it = params.cbegin(); while (it != params.end()) { - sSql.append(OUString::number(*it)); + sSql.append(*it); ++it; if (it != params.end()) sSql.append(","); @@ -174,32 +165,30 @@ OUString FbCreateStmtParser::compose() const // special modifiers here, based on type (e.g. charset, subtype) OUString sModifier = lcl_getTypeModifier(columnIter->getDataType()); if (!sModifier.isEmpty()) - lcl_appendWithSpace(sSql, sModifier); + sSql.append(" " + sModifier); if (columnIter->isAutoIncremental()) { - 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(")"); + sSql.append(" GENERATED BY DEFAULT AS IDENTITY (START WITH " + + OUString::number(columnIter->getStartValue() - 1) + ")"); } else if (!columnIter->isNullable()) - lcl_appendWithSpace(sSql, "NOT NULL"); + sSql.append(" NOT NULL"); if (columnIter->isCaseInsensitive()) - lcl_appendWithSpace(sSql, "COLLATE UNICODE_CI"); + sSql.append(" COLLATE UNICODE_CI"); const OUString& sDefaultVal = columnIter->getDefault(); if (!sDefaultVal.isEmpty()) { - lcl_appendWithSpace(sSql, "DEFAULT"); + sSql.append(" DEFAULT "); if (sDefaultVal.equalsIgnoreAsciiCase("NOW")) - lcl_appendWithSpace(sSql, "\'NOW\'"); // Fb likes it single quoted + sSql.append("'NOW'"); // Fb likes it single quoted else - lcl_appendWithSpace(sSql, sDefaultVal); + sSql.append(sDefaultVal); } ++columnIter; |