summaryrefslogtreecommitdiffstats
path: root/src/plugins/sqldrivers
Commit message (Collapse)AuthorAgeFilesLines
...
* SQL/MySQL: add options to explicitly specify the protocol typeChristian Ehrlicher2023-02-121-0/+20
| | | | | | | | | | | | [ChangeLog][QtSql] Added the ability to specify the MySQL/MariaDB connection type using the "MYSQL_OPT_PROTOCOL" connection string option. In case the connection type is "MEMORY" for shared memory, applications can specify the shared memory segment name using the "MYSQL_SHARED_MEMORY_BASE_NAME" option. Fixes: QTBUG-2551 Change-Id: I91e0981994c045fb74478d0e765e2ec24eefeece Reviewed-by: Thiago Macieira <[email protected]>
* src: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-107-39/+2
| | | | | | Pick-to: 6.5 Change-Id: Id644d322a602038403bb7f46c532744575fbf6d3 Reviewed-by: Alexey Edelev <[email protected]>
* SQL/MySQL: Fix retrieving a datetime for libmysql >= 8.0.27Christian Ehrlicher2023-02-101-9/+19
| | | | | | | | | | | | | | Somewhere between libmysql 8.0.18 and 8.0.27, the MYSQL_TIME structure gained an additional member which increased the struct size by 4 bytes. This makes an internal check for the correct size of the structi go fail. Since it can now happen that the plugin is linked against a new libmysql and used with an old and the other way round, duplicate the old MYSQL_TIME struct to use this in our code Pick-to: 6.4 6.5 Fixes: QTBUG-110967 Change-Id: I5bc631179a0a1be47a5966954e757f27a72f1592 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: add handling for SQL_SS_TIME2Christian Ehrlicher2023-02-101-0/+6
| | | | | | | | | | MSSql Server sometimes returns SQL_SS_TIME2 instead SQL_TIME. Since this value is non-standard, we have to define it by ourself. Pick-to: 5.15 6.2 6.4 6.5 Fixes: QTBUG-109206 Change-Id: I40a4b32590d877ebfdc4b2f1d9080d8cdb2ae7a5 Reviewed-by: Volker Hilsheimer <[email protected]>
* SQL/DB2: apply misc changesChristian Ehrlicher2023-02-081-42/+39
| | | | | | | Similar to the ODBC changes from 901c86032c Change-Id: I552b2e43d380080bfac62d61b0e27ba42d13024d Reviewed-by: Andy Shaw <[email protected]>
* ODBC/SQL: Fix usage of SQLGetDataChristian Ehrlicher2023-02-071-94/+49
| | | | | | | | | | | SQLGetData was called with a nullptr for the output buffer to determine the buffer length which is not allowed. Fix it by passing a valid buffer with a buffer size of 0. Fixes: QTBUG-70362 Fixes: QTBUG-110803 Change-Id: I4d547383100714901a4e2ca3b4777326cfab12fe Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: optimize QVarLengthArray usageChristian Ehrlicher2023-02-071-23/+16
| | | | | | | | | Optimize the QVarLengthArray usage by passing the prealloc size and directly initializing the allocated memory instead using a memset where needed. Change-Id: I61c6f9387fae63ae0c62ee1e87d3b3a7430369b7 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: misc cleanup for fromSQLTCHAR()Christian Ehrlicher2023-02-071-19/+13
| | | | | | | | Change fromSQLTCHAR() to honor the fact that we know the size of SQLTCHAR during compile time. Change-Id: I1cebf2550be7228980083703e143c7577e8ad377 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: Pass correct length to SQLColAttribute()Christian Ehrlicher2023-02-041-3/+8
| | | | | | | | | This ensures the tst_QSqlQuery::record() test passes when checking the tablename. Pick-to: 6.5 6.4 6.2 5.15 Change-Id: I146f9f627ea366c6813af61ce48b930ca1041b15 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: misc cleanupChristian Ehrlicher2023-02-041-56/+49
| | | | | | | | | | | Cleanup the codebase a little bit: - move loop variable into for scope - use utils functions instead homebrew - avoid use of const_cast<> - simplify splitTableQualifier() Change-Id: I6962f01c94a6b4e0e38ad1b229cdf6e8b3308c78 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: optimize toSQLTCHAR() - avoid an unneeded copyChristian Ehrlicher2023-02-041-27/+16
| | | | | | | | Avoid an unneeded copy in toSQLTCHAR() when sizeof(SQLTCHAR) == 1 or 4 by directly writing the encoded data into the QVarLengthArray. Change-Id: Ic4180343764fa1ca175a9cdd444c5359d664c754 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/ODBC: fix some users of toSQLTCHAR() to not assume identical UTF-8/16/32 ↵Marc Mutz2023-02-021-71/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | string lengths We already fixed the implementation of toSQLTCHAR() in 66767eea46bea0f19f8ae5ad6ebc641d86867701 to not assume that a UTF-8 or UTF-32-encoded string has the same number of code points as the equivalent UTF-16 string, but it turns out that users of the function, as well as other code, also failed to account for this. This patch fixes callers of toSQLTCHAR() to use const auto encoded = toSQLTCHAR(s); ~~~ use encoded.data(), encoded.size() ~~~ (except we can't make `encoded` const, because the SQL API isn't const-correct and takes void* instead of const void*) instead of the anti-pattern ~~~ use toSQLTCHAR(s).data(), s.size() ~~~ As a drive-by: - Extract Method qt_string_SQLSetConnectAttr() - skipping an unneeded .utf16() call (a NUL-terminated string is not required for calling toSQLTCHAR()) - de-duplicate some code in exec() - and make a comment there slightly more informative - replace - NULL with nullptr - size() == 0 with isEmpty() - C-style with constructor-style casts Pick-to: 6.5 6.4 6.2 5.15 Change-Id: I3696381d0a93af8861ce2b7915f212d9e5e9a243 Reviewed-by: Thiago Macieira <[email protected]>
* ODBC SQL driver: fix conversion of QByteArray to QVLA<SQLTCHAR>Marc Mutz2023-02-011-4/+5
| | | | | | | | | | | | | | | | | | | The QByteArray is assumed to contain an SQLTCHAR string (so, either UTF-8, UTF-16 or UTF-32-encoded). Only in the UTF-8 case would the size of the byte array be the same as the size of the SQLTCHAR string in codepoints, yet the size in bytes is what the code passed to the QVLA<SQLTCHAR> append() call, causing it to read past the QByteArray buffer in the UTF-16 and UTF-32 cases. Fix by properly calculating the string size from the size-in-bytes and then memcpy()ing into the QVLA. We use memcpy() and not QVLA::append(T*, n) because the QByteArray buffer need not be aligned on an alignof(SQLTCHAR) boundary (certainly not since it gained the prepend "optimization"). Pick-to: 6.5 6.4 6.2 5.15 Change-Id: If3838c3dee89e6aca65541242642315b8e1fa6b4 Reviewed-by: Thiago Macieira <[email protected]>
* ODBC SQL driver: deal with different sizes of SQLTCHAR correctlyMarc Mutz2023-01-251-14/+30
| | | | | | | | | | | | | | | | | | Neither the UTF-32, nor the UTF-8 recoding of a UTF-16 string is necessarily of the same length as the input. The UTF-32 version may be shorter, if surrogate pairs were encountered. The UTF-8 version will be longer whenever the string contains non-US-ASCII characters. Split toSQLTCHAR() into three functions, templated on sizeof(SQLTCHAR), and use QVLA's range-append instead of manual memcpy()s. This patch specifically doesn't use constexpr-if, as that's not available until C++17, which Qt 5 doesn't require. Pick-to: 6.5 6.4 6.2 5.15 Change-Id: I0bfcb66eb321598908ef00ac34c888fdbccf9316 Reviewed-by: Christian Ehrlicher <[email protected]> Reviewed-by: Thiago Macieira <[email protected]>
* SQL: use qsizetype and range-based for loops where possibleChristian Ehrlicher2023-01-201-1/+1
| | | | | | | | Some public functions are still using int instead qsizetype which can't be changed until Qt7. Change-Id: Ib6f210c344acce9f3836e8a5493a741eb8b2b385 Reviewed-by: Marc Mutz <[email protected]>
* DB2: Fix typo in QMetaTypeHannah von Reth2022-12-291-1/+1
| | | | | | Change-Id: I6ada1fec3ce16670dd7346788db4e9c80ffae8d9 Reviewed-by: Giuseppe D'Angelo <[email protected]> Reviewed-by: Andy Shaw <[email protected]>
* Support connecting Oracle DB as system userJohannes Oikarinen2022-12-221-9/+18
| | | | | | | | Adding support to different authentication modes to Oracle DB. Adjust the connection string parsing a little bit as a drive-by. Change-Id: I24ed70ed5085f22ba58eff70caa685579d31c96f Reviewed-by: Andy Shaw <[email protected]>
* SQL: remove unneeded CMake commands - these plugins were removed in Qt6Christian Ehrlicher2022-12-191-8/+0
| | | | | Change-Id: I6880b514a92a01b9a8a8d84fc814aa38c95b09ef Reviewed-by: Andy Shaw <[email protected]>
* SQL/OCI: replace deprecated QDateTime() ctorChristian Ehrlicher2022-12-191-1/+1
| | | | | Change-Id: I0d36f036a9814e85f4606644e0fd8801e76ffccf Reviewed-by: Andy Shaw <[email protected]>
* Bump version to 6.6.0Jani Heikkinen2022-12-141-1/+1
| | | | | Change-Id: I957e8a980542f16d3a3b493b41406bbeb884c2dc Reviewed-by: Jani Heikkinen <[email protected]>
* SQL/MySQL: add connect option MYSQL_OPT_LOCAL_INFILEChristian Ehrlicher2022-12-081-0/+1
| | | | | | | | | Add the connect option MYSQL_OPT_LOCAL_INFILE to be able to specify the client-side LOCAL capability for LOAD DATA operations Fixes: QTBUG-104916 Change-Id: I9914250059e7dc1a705941d3b409fa624e105ecd Reviewed-by: Andy Shaw <[email protected]>
* SQL/MySQL: don't use deprecated defines, cleanupChristian Ehrlicher2022-12-081-31/+31
| | | | | | | | | 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 <[email protected]>
* SQL/MySQL: fix handling of json columnChristian Ehrlicher2022-12-051-1/+3
| | | | | | | | | | | 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 <[email protected]>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* SQLite: enable default features for the built-in versionGiuseppe D'Angelo2022-10-301-0/+3
| | | | | | | | | | | | | | SQLite's configure enables, by default, more options than the ones that we enabled in our bundled copy of SQLite. Add the necessary defines to reach feature parity, namely support for MATH functions, GEOPOLY and FTS4. [ChangeLog][Third-Party Code] SQLite shipped with Qt now supports FTS4, the mathematical functions and the Geopoly interface. Change-Id: Iaed93fa1994a4c14c0990fab18d7a6e3e67af1e4 Fixes: QTBUG-108016 Reviewed-by: Christian Ehrlicher <[email protected]>
* SQL/MySQL: rework driver option parsingChristian Ehrlicher2022-10-221-74/+83
| | | | | | | | | | Rework the parsing of client option to make it easier to add new options. Add the two options MYSQL_OPT_SSL_CRL and MYSQL_OPT_SSL_CRLPATH and deprecate the SSL_foo options without the MYSQL_OPT_ prefix. Change-Id: Ibaf5f553d77d9c102ca2bfef2fe68be0572f594b Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Volker Hilsheimer <[email protected]>
* SQL/MySQL: misc cleanupChristian Ehrlicher2022-10-211-32/+23
| | | | | | | Cleanup the code a little bit and use qsizetype on some obvious places. Change-Id: Ib9e5ec79a39c45c9fab7e21dbda70ed728025191 Reviewed-by: Thiago Macieira <[email protected]>
* SQL/OCI: fix compilationChristian Ehrlicher2022-10-142-2/+3
| | | | | | | | | | | Fix compilation error introduced with 917b4d3802f3c2102021610cbf977403a3d4c21a and add a missing override Pick-to: 6.4 Fixes: QTBUG-107544 Change-Id: I53571a0a113dc0f1e65f8773e66c02c1764739ee Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Sze Howe Koh <[email protected]>
* SQL/OCI: add missing overide()Christian Ehrlicher2022-10-141-1/+1
| | | | | | | | | QOCIDriver::hasFeature() missed a 'override' which prevents compiling it with '-Werror' Pick-to: 6.2 6.4 Change-Id: I73a30134415947475e8f378fdb51bdd3f7fdd989 Reviewed-by: Volker Hilsheimer <[email protected]>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <[email protected]>
* Port from container.count()/length() to size()Marc Mutz2022-10-042-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Volker Hilsheimer <[email protected]>
* plugins: use nullptr instead of 0 and NULLJohannes Kauffmann2022-10-022-4/+5
| | | | | Change-Id: I7f3e56db1d0db178d8a7d9eb91c09e03cae89f6b Reviewed-by: Volker Hilsheimer <[email protected]>
* QODBC: fix handling NULL values for stringsChristian Ehrlicher2022-10-011-16/+11
| | | | | | | | | | | | | Qt6 added a slight behavior change in QVariant - an empty QString in a QVariant no longer results in QVariant::isNull(). This created an issue that qGetStringData() could no longer return a NULL value. On the other side, NULL values in Qt5 could not be distinguished to an empty string which we now can. Fixes: QTBUG-106607 Pick-to: 6.2 Change-Id: Iddc6f7e8b97f5abc136bbbfd02d175b80152ac90 Reviewed-by: Volker Hilsheimer <[email protected]>
* QODBC: correctly fill cache when index() is calledChristian Ehrlicher2022-09-281-1/+1
| | | | | | | | | | QODBCResult::isNull() incorrectly checked for the validity of the internal row cache which lead to wrong results when the requested column was not yet cached. Pick-to: 6.4 6.2 5.15 Change-Id: Ic7dcc2117e6f05b63c83f21c6a84ba7e0bda2b2d Reviewed-by: Volker Hilsheimer <[email protected]>
* Apply Q_CONSTINIT where beneficialSona Kurazyan2022-09-011-1/+1
| | | | | | | | | | Applied Q_CONSTINIT to variables with static storage duration, but skipped the POD types with core constant initializers. Task-number: QTBUG-100486 Change-Id: Iaabf824e9cb0f29a405a149912200d4e4b3573c1 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-2310-10/+10
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Put code related to timezone functionality under QT_CONFIG(timezone)Tatiana Borisova2022-08-181-0/+2
| | | | | | Pick-to: 6.4 6.3 Change-Id: I0d1573dbb4ae4f9740fc19546950ae4316aa4c0c Reviewed-by: Edward Welbourne <[email protected]>
* Add license headers to cmake filesLucie Gérard2022-08-0310-0/+30
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <[email protected]>
* MySQL plugin: fix escaping a QByteArrayChristian Ehrlicher2022-07-251-1/+1
| | | | | | | | | | | 1df974590f19dec7b632d000ab9408a4de6f117a introduced a regression which kills the escaping of a QByteArray because QString::fromUtf8() gets a wrong length from a QVarLengthArray. Pick-to: 6.4 Fixes: QTBUG-105078 Change-Id: Ic2f76c82c246e1e9eaf1d3f907d11fc345b5655e Reviewed-by: Samuel Gaist <[email protected]>
* wasm: enable sql/sqlite for non threaded buildsLorn Potter2022-07-051-0/+5
| | | | | | | | | [ChangeLog][QtSql][Wasm] Enable sqlite for non threaded builds Pick-to: 6.4 Fixes: QTBUG-70505 Change-Id: I7cb6f52c81a6e8a60249f7bcaa8ee29f109f7b84 Reviewed-by: Morten Johan Sørvig <[email protected]>
* Fix typos in docs and commentsKai Köhne2022-06-153-3/+3
| | | | | | | | | Found by codespell Pick-to: 6.4 Change-Id: Ie3e301a23830c773a2e9aff487c702a223d246eb Reviewed-by: Nicholas Bennett <[email protected]> Reviewed-by: Edward Welbourne <[email protected]>
* Bump version to 6.5.0Jani Heikkinen2022-06-061-1/+1
| | | | | Change-Id: I83a4f915a914bdc18f6706bb902f3e3b13da074f Reviewed-by: Qt Submodule Update Bot <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-05-1621-798/+42
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Lars Knoll <[email protected]> Reviewed-by: Jörg Bornemann <[email protected]>
* Revert "MySQL: pedantism: create and destroy the MYSQL_TIME type"Thiago Macieira2022-05-121-7/+3
| | | | | | | | | | This reverts commit 6feb28918924d80c94b6f435bc3bc981855d59d6. It causes a crash when field.myField is null. Fixes: QTBUG-102489 Pick-to: 6.3 Change-Id: I7e305799c8594ebab255fffd16ee1a41cac8d387 Reviewed-by: Andy Shaw <[email protected]>
* QSQLiteDriverPlugin: includemocsMarc Mutz2022-04-281-0/+2
| | | | | | | | | | | Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-102886 Change-Id: I3ad19796499e5fd4bb2bd1a495aeed7729890650 Reviewed-by: Thiago Macieira <[email protected]>
* QMYSQLDriverPlugin: includemocsMarc Mutz2022-04-281-0/+2
| | | | | | | | | | | Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-102886 Change-Id: Idf1a38d8a293e3cbf74443f00d2a9765eb68a9c0 Reviewed-by: Thiago Macieira <[email protected]>
* Sql: replace remaining uses of QLatin1String with QLatin1StringViewSona Kurazyan2022-04-194-8/+8
| | | | | | Task-number: QTBUG-98434 Change-Id: Ia621f9d937649dda41a7b0d13a61e6f1397f6dde Reviewed-by: Volker Hilsheimer <[email protected]>
* Sql: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-04-1914-286/+305
| | | | | | Task-number: QTBUG-98434 Change-Id: Ie12ca82fd912617eabe4f602c08914f12878cb32 Reviewed-by: Volker Hilsheimer <[email protected]>
* Sql: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-04-197-146/+146
| | | | | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. As a drive-by, fix qsizetype -> int narrowing conversion warnings for the touched lines. Change-Id: I03477e645a94948cac3e3e2abca52aa4e3e2efff Reviewed-by: Volker Hilsheimer <[email protected]>
* qsql_ibase: fix includesShawn Rutledge2022-03-211-13/+14
| | | | | | | | | QMap was a transitive include, apparently; and we have mostly standardized on specifying the module where each include comes from. Change-Id: I1a54db879e744120f5b10eb0b16f8ba36cde8300 Reviewed-by: Mårten Nordheim <[email protected]> Reviewed-by: Marc Mutz <[email protected]>