From 4091d73af8fdc42b538d5bf82442f5e79b34ff1d Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Thu, 20 Oct 2022 18:01:18 +0200 Subject: SQL/MySQL: don't use deprecated defines, cleanup Replace plain int with enum 'enum_field_types' and don't use deprecated MySQL type names. Pick-to: 6.4 Change-Id: I8a629ac1b4ad7d6d78604ff641b5b35397cd769c Reviewed-by: Edward Welbourne --- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 62 ++++++++++++++--------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'src/plugins/sqldrivers/mysql/qsql_mysql.cpp') diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index 6a9626a8a4..7e290c56ab 100644 --- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -181,59 +181,59 @@ static QSqlError qMakeError(const QString &err, QSqlError::ErrorType type, } -static QMetaType qDecodeMYSQLType(int mysqltype, uint flags) +static QMetaType qDecodeMYSQLType(enum_field_types mysqltype, uint flags) { QMetaType::Type type; switch (mysqltype) { - case FIELD_TYPE_TINY : + case MYSQL_TYPE_TINY: type = (flags & UNSIGNED_FLAG) ? QMetaType::UChar : QMetaType::Char; break; - case FIELD_TYPE_SHORT : + case MYSQL_TYPE_SHORT: type = (flags & UNSIGNED_FLAG) ? QMetaType::UShort : QMetaType::Short; break; - case FIELD_TYPE_LONG : - case FIELD_TYPE_INT24 : + case MYSQL_TYPE_LONG: + case MYSQL_TYPE_INT24: type = (flags & UNSIGNED_FLAG) ? QMetaType::UInt : QMetaType::Int; break; - case FIELD_TYPE_YEAR : + case MYSQL_TYPE_YEAR: type = QMetaType::Int; break; - case FIELD_TYPE_LONGLONG : + case MYSQL_TYPE_LONGLONG: type = (flags & UNSIGNED_FLAG) ? QMetaType::ULongLong : QMetaType::LongLong; break; - case FIELD_TYPE_FLOAT : - case FIELD_TYPE_DOUBLE : - case FIELD_TYPE_DECIMAL : -#if defined(FIELD_TYPE_NEWDECIMAL) - case FIELD_TYPE_NEWDECIMAL: -#endif + case MYSQL_TYPE_FLOAT: + case MYSQL_TYPE_DOUBLE: + case MYSQL_TYPE_DECIMAL: + case MYSQL_TYPE_NEWDECIMAL: type = QMetaType::Double; break; - case FIELD_TYPE_DATE : + case MYSQL_TYPE_DATE: type = QMetaType::QDate; break; - case FIELD_TYPE_TIME : + case MYSQL_TYPE_TIME: // A time field can be within the range '-838:59:59' to '838:59:59' so // use QString instead of QTime since QTime is limited to 24 hour clock type = QMetaType::QString; break; - case FIELD_TYPE_DATETIME : - case FIELD_TYPE_TIMESTAMP : + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: type = QMetaType::QDateTime; break; - case FIELD_TYPE_STRING : - case FIELD_TYPE_VAR_STRING : - case FIELD_TYPE_BLOB : - case FIELD_TYPE_TINY_BLOB : - case FIELD_TYPE_MEDIUM_BLOB : - case FIELD_TYPE_LONG_BLOB : - case FIELD_TYPE_GEOMETRY : - case MYSQL_TYPE_JSON : + case MYSQL_TYPE_STRING: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_BLOB: + case MYSQL_TYPE_TINY_BLOB: + case MYSQL_TYPE_MEDIUM_BLOB: + case MYSQL_TYPE_LONG_BLOB: + case MYSQL_TYPE_GEOMETRY: + case MYSQL_TYPE_JSON: type = (flags & BINARY_FLAG) ? QMetaType::QByteArray : QMetaType::QString; break; - default: - case FIELD_TYPE_ENUM : - case FIELD_TYPE_SET : + case MYSQL_TYPE_ENUM: + case MYSQL_TYPE_SET: + type = QMetaType::QString; + break; + default: // needed because there are more enum values which are not available in all headers type = QMetaType::QString; break; } @@ -243,7 +243,7 @@ static QMetaType qDecodeMYSQLType(int mysqltype, uint flags) static QSqlField qToField(MYSQL_FIELD *field) { QSqlField f(QString::fromUtf8(field->name), - qDecodeMYSQLType(int(field->type), field->flags), + qDecodeMYSQLType(field->type, field->flags), QString::fromUtf8(field->table)); f.setRequired(IS_NOT_NULL(field->flags)); f.setLength(field->length); @@ -262,7 +262,7 @@ static QSqlError qMakeStmtError(const QString &err, QSqlError::ErrorType type, type, QString::number(mysql_stmt_errno(stmt))); } -static bool qIsBlob(int t) +static bool qIsBlob(enum_field_types t) { return t == MYSQL_TYPE_TINY_BLOB || t == MYSQL_TYPE_BLOB @@ -271,7 +271,7 @@ static bool qIsBlob(int t) || t == MYSQL_TYPE_JSON; } -static bool qIsTimeOrDate(int t) +static bool qIsTimeOrDate(enum_field_types t) { // *not* MYSQL_TYPE_TIME because its range is bigger than QTime // (see above) -- cgit v1.2.3