Kaydet (Commit) 210638cc authored tarafından Tamas Bunth's avatar Tamas Bunth Kaydeden (comit) Tamás Bunth

tdf#117299 dbahsql: add varchar_ignorecase type

Change-Id: I1dc904fe1b9146c978086861ef96f5141794bf09
Reviewed-on: https://gerrit.libreoffice.org/53901Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Bunth <btomi96@gmail.com>
üst 1e2afc9b
......@@ -27,13 +27,14 @@ using namespace css::sdbc;
ColumnDefinition::ColumnDefinition(const OUString& sName, sal_Int32 eType,
const std::vector<sal_Int32> aParams, bool bPrimary,
sal_Int32 nAutoIncr, bool bNullable)
sal_Int32 nAutoIncr, bool bNullable, bool bCaseInsensitive)
: m_sName(sName)
, m_eType(eType)
, m_aParams(aParams)
, m_bPrimaryKey(bPrimary)
, m_nAutoIncrement(nAutoIncr)
, m_bNullable(bNullable)
, m_bCaseInsensitive(bCaseInsensitive)
{
}
}
......
......@@ -25,16 +25,19 @@ private:
bool m_bPrimaryKey;
sal_Int32 m_nAutoIncrement;
bool m_bNullable;
bool m_bCaseInsensitive;
public:
ColumnDefinition(const OUString& sName, sal_Int32 eType, const std::vector<sal_Int32> aParams,
bool bPrimary = false, sal_Int32 nAutoIncr = -1, bool bNullable = true);
bool bPrimary = false, sal_Int32 nAutoIncr = -1, bool bNullable = true,
bool bCaseInsensitive = false);
OUString getName() const { return m_sName; }
sal_Int32 getDataType() const { return m_eType; }
bool isPrimaryKey() const { return m_bPrimaryKey; }
bool isNullable() const { return m_bNullable; }
bool isAutoIncremental() const { return m_nAutoIncrement >= 0; }
bool isCaseInsensitive() const { return m_bCaseInsensitive; }
sal_Int32 getStartValue() const { return m_nAutoIncrement; }
const std::vector<sal_Int32> getParams() const { return m_aParams; }
};
......
......@@ -96,7 +96,7 @@ sal_Int32 lcl_getDataTypeFromHsql(const OUString& sTypeName)
{
if (sTypeName == "CHAR")
return DataType::CHAR;
else if (sTypeName == "VARCHAR")
else if (sTypeName == "VARCHAR" || sTypeName == "VARCHAR_IGNORECASE")
return DataType::VARCHAR;
else if (sTypeName == "TINYINT")
return DataType::TINYINT;
......@@ -189,9 +189,10 @@ void CreateStmtParser::parseColumnPart(const OUString& sColumnPart)
lcl_addDefaultParameters(aParams, lcl_getDataTypeFromHsql(sTypeName));
}
bool bCaseInsensitive = sTypeName.indexOf("IGNORECASE") >= 0;
ColumnDefinition aColDef(words[0], lcl_getDataTypeFromHsql(sTypeName), aParams,
lcl_isPrimaryKey(sColumn), lcl_getAutoIncrementDefault(sColumn),
lcl_isNullable(sColumn));
lcl_isNullable(sColumn), bCaseInsensitive);
m_aColumns.push_back(aColDef);
}
......
......@@ -159,6 +159,9 @@ OUString FbCreateStmtParser::compose() const
if (columnIter->isPrimaryKey())
lcl_appendWithSpace(sSql, "PRIMARY KEY");
if (columnIter->isCaseInsensitive())
lcl_appendWithSpace(sSql, "COLLATE UNICODE_CI");
++columnIter;
if (columnIter != rColumns.end())
sSql.append(",");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment