From 9d27c07e284457fb86258ab518f39c5cab1dac80 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 19 Oct 2022 21:00:29 +0200 Subject: SQL/MySQL: fix handling of json column Add handling for MYSQL_TYPE_JSON by treating it the same as MYSQL_TYPE_BLOB (which is used by current MariaDB Server for a json column) Pick-to: 5.15 6.2 6.4 Fixes: QTBUG-101680 Change-Id: I4d4b0cdad73cd12e0db4df4021fddbd6a649c8ed Reviewed-by: Volker Hilsheimer --- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index 7f44128d01..6a9626a8a4 100644 --- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -228,6 +228,7 @@ static QMetaType qDecodeMYSQLType(int mysqltype, uint flags) case FIELD_TYPE_MEDIUM_BLOB : case FIELD_TYPE_LONG_BLOB : case FIELD_TYPE_GEOMETRY : + case MYSQL_TYPE_JSON : type = (flags & BINARY_FLAG) ? QMetaType::QByteArray : QMetaType::QString; break; default: @@ -266,7 +267,8 @@ static bool qIsBlob(int t) return t == MYSQL_TYPE_TINY_BLOB || t == MYSQL_TYPE_BLOB || t == MYSQL_TYPE_MEDIUM_BLOB - || t == MYSQL_TYPE_LONG_BLOB; + || t == MYSQL_TYPE_LONG_BLOB + || t == MYSQL_TYPE_JSON; } static bool qIsTimeOrDate(int t) -- cgit v1.2.3