connectivity/source/drivers/firebird/Util.cxx | 92 ++++++++++++++------------ 1 file changed, 52 insertions(+), 40 deletions(-)
New commits: commit 5b33b1a6b0f251202e89cef436efd4719c3fc0c4 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Wed Oct 28 22:38:28 2020 +0100 Commit: Julien Nabet <serval2...@yahoo.fr> CommitDate: Thu Oct 29 22:50:02 2020 +0100 tdf#137801: Firebird fix warn when changing a table having a field type BLOB OTableController::alterColumns() from dbaccess/source/ui/tabledesign/TableController.cxx checks if a column changes with: if((nType != pField->GetType() || sTypeName != pField->GetTypeName() || etc See https://opengrok.libreoffice.org/xref/core/dbaccess/source/ui/tabledesign/TableController.cxx?r=585cefd1#1002 So for example for "BLOB" field, LO was comparing "SQL_BLOB" from "sTypeName" with "BLOB" from "pField->GetTypeName()" In the same way, LO was comparing "SQL_LONG" from "sTypeName" with "INTEGER" from "pField->GetTypeName()" or "SQL_VARYING" from "sTypeName" with "VARCHAR" from "pField->GetTypeName()" Change-Id: I3632f3ee5845b4f07d606fddd586951a3deea67f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104979 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/connectivity/source/drivers/firebird/Util.cxx b/connectivity/source/drivers/firebird/Util.cxx index 7befd4b99014..7bdb12b8eb29 100644 --- a/connectivity/source/drivers/firebird/Util.cxx +++ b/connectivity/source/drivers/firebird/Util.cxx @@ -181,47 +181,59 @@ sal_Int32 firebird::ColumnTypeInfo::getSdbcType() const OUString firebird::ColumnTypeInfo::getColumnTypeName() const { - short aType = m_aType & ~1; // Remove last bit -- it is used to denote whether column - // can store Null, not needed for type determination - - switch (aType) + sal_Int32 nDataType = this->getSdbcType(); + switch (nDataType) { - case SQL_TEXT: - return "SQL_TEXT"; - case SQL_VARYING: - return "SQL_VARYING"; - case SQL_SHORT: - return "SQL_SHORT"; - case SQL_LONG: - return "SQL_LONG"; - case SQL_FLOAT: - return "SQL_FLOAT"; - case SQL_DOUBLE: - return "SQL_DOUBLE"; - case SQL_D_FLOAT: - return "SQL_D_FLOAT"; - case SQL_TIMESTAMP: - return "SQL_TIMESTAMP"; - case SQL_BLOB: - return "SQL_BLOB"; - case SQL_ARRAY: - return "SQL_ARRAY"; - case SQL_TYPE_TIME: - return "SQL_TYPE_TIME"; - case SQL_TYPE_DATE: - return "SQL_TYPE_DATE"; - case SQL_INT64: - return "SQL_INT64"; - case SQL_NULL: - return "SQL_NULL"; - case SQL_QUAD: - return "SQL_QUAD"; - case SQL_BOOLEAN: - return "SQL_BOOLEAN"; - default: - assert(false); // Should never happen - return OUString(); - } + case DataType::BIT: + return "BIT"; + case DataType::TINYINT: + return "TINYINT"; + case DataType::SMALLINT: + return "SMALLINT"; + case DataType::INTEGER: + return "INTEGER"; + case DataType::BIGINT: + return "BIGINT"; + case DataType::FLOAT: + return "FLOAT"; + case DataType::REAL: + return "REAL"; + case DataType::DOUBLE: + return "DOUBLE"; + case DataType::NUMERIC: + return "NUMERIC"; + case DataType::DECIMAL: + return "DECIMAL"; + case DataType::CHAR: + return "CHAR"; + case DataType::VARCHAR: + return "VARCHAR"; + case DataType::LONGVARCHAR: + return "LONGVARCHAR"; + case DataType::DATE: + return "DATE"; + case DataType::TIME: + return "TIME"; + case DataType::TIMESTAMP: + return "TIMESTAMP"; + case DataType::BINARY: + return "BINARY"; + case DataType::LONGVARBINARY: + return "LONGVARBINARY"; + case DataType::ARRAY: + return "ARRAY"; + case DataType::BLOB: + return "BLOB"; + case DataType::CLOB: + return "CLOB"; + case DataType::BOOLEAN: + return "BOOLEAN"; + case DataType::SQLNULL: + return "NULL"; + default: + assert(false); // Should never happen + return OUString(); + } } short firebird::getFBTypeFromBlrType(short blrType) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits