summaryrefslogtreecommitdiffstats
path: root/src/plugins/sqldrivers/psql
Commit message (Collapse)AuthorAgeFilesLines
* Add security tags to the Qt Sql moduleVolker Hilsheimer2025-09-173-0/+3
| | | | | | | | | | | | | | Tag code that constructs SQL statements, parses results, or deals with user credentials as security critical. This is the driver code, the implementation of QSqlResult, QSqlTableModel, and the QSqlDatabase implementation (which deals with, and optionally stores, credentials). The rest of the code is not critical and gets the default tag. Fixes: QTBUG-135591 Pick-to: 6.10 6.9 6.8 Change-Id: I18fb565fd27ed8d1c9c1f3a1f572816b718eb3e8 Reviewed-by: Mate Barany <mate.barany@qt.io>
* Reland: CMake: Annotate some qt_find_package calls with MODULEAlexandru Croitor2025-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A qt_find_package call first tries to find a Config package with the CONFIG mode option, and if not found, falls back to an arg-less mode which searches both Config and Find modules. For some packages, we know we want to find the Find module because there can't be a Config package, e.g our FindWrap modules or any of the other Find modules we carry in our cmake directory. So we should annotate these calls with MODULE. Aside from slightly faster configuration, there is another reason to do so. Future versions of CMake will automatically log find_package calls that have a state change (e.g. Not Found -> Found) into CMakeConfigureLog.yaml. Due to the Config-first logic in qt_find_package, we always unset the Foo_DIR variable if the Config package is not found. This means that there will be a constant build up of not-found messages in the log. Explicitly annotating the calls with MODULE will prevent this. Do that. This commit relands f1a59e974f013fcf8629d8cbacab58d895523100 This reverts commit 0ce82b78a35026cb56ff76d1c24b311008934a53. Pick-to: 6.10 Change-Id: I5d37579d2f4957215ce1475b5c0ec8509d77c83d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Revert "CMake: Annotate some qt_find_package calls with MODULE"Alexandru Croitor2025-06-191-1/+1
| | | | | | | | | | | | | | | | | | | This breaks reconfiguring Qt in various ways, one of which is CMake Error at cmake/QtTargetHelpers.cmake:1557 (message): PkgConfig::ATSPI2 is not a valid target. This happens because pkg_check_modules sets ATSPI2_FOUND to 1, so qt_find_package thinks it shouldn't find the FindATSPI2.cmake module, which ends up not creating the ATSPI2 target. This reverts commit f1a59e974f013fcf8629d8cbacab58d895523100. Pick-to: 6.10 Fixes: QTBUG-137870 Change-Id: Ica74a236c6b1bb9d7ca9af29175cb2e84a93251b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Annotate some qt_find_package calls with MODULEAlexandru Croitor2025-06-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A qt_find_package call first tries to find a Config package with the CONFIG mode option, and if not found, falls back to an arg-less mode which searches both Config and Find modules. For some packages, we know we want to find the Find module because there can't be a Config package, e.g our FindWrap modules or any of the other Find modules we carry in our cmake directory. So we should annotate these calls with MODULE. Aside from slightly faster configuration, there is another reason to do so. Future versions of CMake will automatically log find_package calls that have a state change (e.g. Not Found -> Found) into CMakeConfigureLog.yaml. Due to the Config-first logic in qt_find_package, we always unset the Foo_DIR variable if the Config package is not found. This means that there will be a constant build up of not-found messages in the log. Explicitly annotating the calls with MODULE will prevent this. Do that. Pick-to: 6.10 Change-Id: I465b015ac18f8a09b9a5c86cec7b6312a0bfbdf1 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* SQL/PSQL: use a QByteArray for preparedStmtIdChristian Ehrlicher2025-01-291-10/+9
| | | | | | | | | | | ... instead a QString as it gets converted to an utf-8 string anyway to avoid this conversion. Pick-to: 6.9 Task-number: QTBUG-132303 Change-Id: I3fcf721f9fd0d1dd181af262663fddd532262ee3 Reviewed-by: Thierry Bastian <thierryb@filewave.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SQL/PSQL: slight improvement in codeThierry Bastian2025-01-281-3/+6
| | | | | | | | | added a details about code paths that cannot happen and added constexpr Fixes: QTBUG-132303 Pick-to: 6.9 Change-Id: I98340c5a1f275c00aafb3294cf8e5e8368126b76 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* SQL/PSQL: Avoid copies of data in QByteArray when binding such a valueThierry Bastian2025-01-281-22/+33
| | | | | | | Fixes: QTBUG-132303 Pick-to: 6.9 Change-Id: I84e822078d684850c5c0384338cfa4c01fe5007f Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* SQL/PSQL: call deallocatePreparedStmt() unconditionallyChristian Ehrlicher2025-01-271-5/+3
| | | | | | | | | | | deallocatePreparedStmt() knows by itself when to call the psql cleanup routines or not. No need to have this logic outside this function. Pick-to: 6.9 Task-number: QTBUG-132303 Change-Id: Ib1a5ba7b53c156f6a6b93f23a3ec8c851d7398fc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Thierry Bastian <thierryb@filewave.com>
* Add support for PostgreSQL prepared statements with pgBouncerThierry Bastian2025-01-232-42/+70
| | | | | | | | | | | | | | | Since 2023, pgBouncer supports prepared statements but only when prepared/executed/removed at the protocol level. So to support this, You need to call the appropriate functions from libpq. it does not change the behavior otherwise. You can note that to free statements, libpq only has the function in v17. Prior versions of postgresql will still use DEALLOCATE. Fixes: QTBUG-132303 Pick-to: 6.9 Change-Id: I2456820bbea318e1715ae46617bf4d137815ca54 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* SQL/PSQL: add full support for uuid column typeChristian Ehrlicher2024-12-181-0/+7
| | | | | | | | | | Add full support for uuid column type by decoding a uuid column directly into a QUuid. Storing a QUuid in a database was already supported for a longer time. Task-number: QTBUG-130389 Change-Id: I1b86749e2317c619b3aa8a4f9292c83c33fdcaad Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SQL/PostgreSQL: fix comment for formatting QDateTimeChristian Ehrlicher2024-10-231-3/+3
| | | | | | | | | | | The comment to convert a QDateTime to a PostgreSQL compatible string was outdated. Adjust it to the current state and make clear that the PostgreSQL documentation is unclear here. Pick-to: 6.8 Task-number: QTBUG-129983 Change-Id: I46e45082f2154881ab34278c5e9887cb2274dd64 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* SQL/PostgreSQL: fix parsing timestamptz return valuesChristian Ehrlicher2024-10-171-6/+7
| | | | | | | | | | | When setting the timezone explicitly to something different to the localtime (e.g. UTC), the strings returned for timestamptz columns contain a '+xx' annotation which resulted in a parser error. Pick-to: 6.8 Fixes: QTBUG-129983 Change-Id: I4f5e45860e88a5c44b2f1409dae667984ac90913 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Straighten out various logging categoriesUlf Hermann2024-06-191-1/+1
| | | | | | | | | | | | Either make them static or declare them in a header. We want them to be static wherever possible, in order to reduce the number of visible symbols. If they can't be static, however, they should at least be declared in only one place. Task-number: QTBUG-67692 Change-Id: I6f3b596ed4f0adc9873dd0a5f54f055a991a6207 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* SQL/PostgreSQL: use categorized loggerChristian Ehrlicher2024-03-161-22/+26
| | | | | | | Use the categorized logger qt.sql.postgresql Change-Id: I480346cadb879c22874f0af92d6e05d513f25b48 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SQL/PostgreSQL: Make sure the server returns datetime in UTCChristian Ehrlicher2024-03-161-3/+17
| | | | | | | | | | | | | | | | The postgresql server by default returns the datetime in it's local timezone. This works as long as this is the same as on the client. If they are different, the parsing is going wrong.. Therefore let the server return the datetime in UTC. Also do not convert the datetime into local time to be in sync with the MySQL plugin. [ChangeLog][SQL][PostgreSQL] Fixed a bug where a wrong QDateTime might be returned when the PostgreSQL server and the Qt client had different time zones configured. Fixes: QTBUG-115960 Change-Id: I1a6dda69359a34b99ef399b2a54f35c8ba041326 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SQL/PostgreSQL: cleanup usage of QT_CONFIG(datestring)Christian Ehrlicher2024-03-151-24/+15
| | | | | | | | | Creating a QString from a QDate/QTime works even when QT_CONFIG(datestring) is not defined, so no need to ifdef it out. Pick-to: 6.7 Change-Id: Ib3594036f309393b612d3fbf21f51be9c36a9391 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* SQL/QSqlField: deprecate internal functions setSqlType()/typeID()Christian Ehrlicher2024-03-101-2/+0
| | | | | | | | | These functions set/get the db-specific internal sql type but it's not used in any of the sql plugins since ages. Any external plugin using this for some reason must be ported away until Qt7. Change-Id: Ifb33e9d3be0b80fb4d0979d31436e89ea6a8208b Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* SQL/PostgreSQL: misc cleanupChristian Ehrlicher2023-10-061-13/+11
| | | | | | | | | | Misc cleanup for the PostgreSQL driver: - use constexpr instead const for some constants - use new signal/slot syntax - unconditionally call PQfinish() - check is done inside the function Change-Id: I47b83ef3436225f698fca24c68e5c9cde32c1163 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* SQL/PSQL: Handle jsonb operators in prepared queriesChristian Ehrlicher2023-07-231-2/+2
| | | | | | | | | | | | Add an option to disable handling of positional binding so jsonb operators are not screwed up [ChangeLog][QtSql][QSqlQuery] Add setEnablePositionalBinding() to be able to disable positional binding. Fixes: QTBUG-96636 Change-Id: I428a9d3b10274b97292ab86a74d9b3971d6f10e9 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* SQL: use QT_NO_CONTEXTLESS_CONNECT for sql pluginsChristian Ehrlicher2023-07-191-0/+1
| | | | | | | | | Use QT_NO_CONTEXTLESS_CONNECT to disable 3-arg connects which are considered dangerous. Change-Id: I0ac711491de60e0eeaca9edb60715eafe9da841a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* SQL plugins: add moc includesChristian Ehrlicher2023-07-191-0/+2
| | | | | Change-Id: I9ed4b63fd02b4a6fc5f4b614466590cd099609e2 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* SQL: replace qPrintable() / toLocal8Bit() with unicode versionsChristian Ehrlicher2023-04-181-8/+10
| | | | | | | Replace qPrintable() and toLocal8Bit() with qUtf16Printable() Change-Id: Id30b5ba611b005faab91a08b10a9dc5569fd7a07 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* SQL/PSQL: remove non utf-8 supportChristian Ehrlicher2023-04-051-14/+14
| | | | | | | | | PostgreSQL supports the utf-8 encoding ('UNICODE') since at least version 7.3 which is the oldest version we support. Therefore remove the non utf-8 codepath completely. Change-Id: I64b1a4e7b0b85141fe13f5f57e6f35f9eb7d542e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* SQL: small optimization for SQLDriver::escapeIdentifier()Christian Ehrlicher2023-02-281-1/+1
| | | | | | | | Avoid a memmove (and replace it with a memcpy) by not using QString::prepend() but create a completely new string object instead. Change-Id: Ibdb4a9c6b15b96f1743d47e158ff0fb9b2048221 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* src: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-101-6/+1
| | | | | | Pick-to: 6.5 Change-Id: Id644d322a602038403bb7f46c532744575fbf6d3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* 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 <marc.mutz@qt.io>
* 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 <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-231-1/+1
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-031-0/+3
| | | | | | | | | | | | 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 <joerg.bornemann@qt.io>
* Fix typos in docs and commentsKai Köhne2022-06-151-1/+1
| | | | | | | | | Found by codespell Pick-to: 6.4 Change-Id: Ie3e301a23830c773a2e9aff487c702a223d246eb Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-163-114/+6
| | | | | | | | | | | | | 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 <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Sql: replace remaining uses of QLatin1String with QLatin1StringViewSona Kurazyan2022-04-191-2/+2
| | | | | | Task-number: QTBUG-98434 Change-Id: Ia621f9d937649dda41a7b0d13a61e6f1397f6dde Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Sql: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-04-192-17/+19
| | | | | | Task-number: QTBUG-98434 Change-Id: Ie12ca82fd912617eabe4f602c08914f12878cb32 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Sql: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-04-191-23/+25
| | | | | | | | | | | 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 <volker.hilsheimer@qt.io>
* Adapt SQL drivers to Qt 6 change of QVariant::isNullVolker Hilsheimer2022-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In Qt 5, QVariant::isNull returned true if either the variant didn't contain a value, or if the value was of a nullable type where the type's isNull member function returned true. In Qt 6, QVariant::isNull only returns true for variants that don't contain a value; if the value contained is e.g. a null-QString or QDateTime, then QVariant::isNull returns false. This change requires a follow up in the SQL drivers, which must still treat null-values the same as null-variants, lest they write data into the data base. Add a static helper to QSqlResultPrivate that implements isNull-checking of variants that contain a nullable type relevant for Sql, and add a test case to the QSqlQuery test that exercises that code. Pick-to: 6.2 6.3 Fixes: QTBUG-99408 Fixes: QTBUG-98471 Change-Id: I08b74a33aa3235c37d974f182da1f2bdcfd8217e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Build PostgreSQL driver as universal binary on macOSTor Arne Vestbø2021-11-151-2/+0
| | | | | | | Task-number: QTBUG-93204 Pick-to: 6.2 Change-Id: I3e7c76411a7bebee9105a9d97b6ca2c4128a8ddc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Rename qt6_add_plugin TYPE option to PLUGIN_TYPEAlexandru Croitor2021-08-061-1/+1
| | | | | | | | | | | | | The intention is to remove TYPE as a keyword completely before 6.2.0 release, but in case if that's not possible due to the large amount of repositories and examples, just print a deprecation warning for now and handle both TYPE and PLUGIN_TYPE. Task-number: QTBUG-95170 Pick-to: 6.2 Change-Id: If0c18345483b9254b0fc21120229fcc2a2fbfbf5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix building multi-arch universal macOS QtAlexandru Croitor2021-04-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the same approach we use for iOS, which is to set multiple CMAKE_OSX_ARCHITECTURES values and let the clang front end deal with lipo-ing the final libraries. For now, Qt can be configured to build universal macOS libraries by passing 2 architectures to CMake, either via: -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" or -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" Currently we recommend specifying the intel x86_64 arch as the first one, to get an intel slice configuration that is comparable to a non-universal intel build. Specifying the arm64 slice first could pessimize optimizations and reduce the feature set for the intel slice due to the limitation that we run configure tests only once. The first specified architecture is the one used to do all the configure tests. It 'mostly' defines the common feature set of both architecture slices, with the excepion of some special handling for sse2 and neon instructions. In the future we might want to run at least the Qt architecture config test for all specified architectures, so that we can extract all the supported sub-arches and instruction sets in a reliable way. For now, we use the same sse2 hack as for iOS simulator_and_device builds, otherwise QtGui fails to link due to missing qt_memfill32_sse2 and other symbols. The hack is somewhat augmented to ensure that reconfiguration still succeeds (same issue happened with iOS). Previously the sse2 feature condition was broken due to force setting the feature to be ON. Now the condition also checks for a special QT_FORCE_FEATURE_sse2 variable which we set internally. Note that we shouldn't build for arm64e, because the binaries get killed when running on AS with the following message: kernel: exec_mach_imgact: not running binary built against preview arm64e ABI. Aslo, by default, we disable the arm64 slice for qt sql plugins, mostly because the CI provisioned sql libraries that we depend on only contain x86_64 slices, and trying to build the sql plugins for both slices will fail with linker errors. This behavior can be disabled for all targets marked by qt_internal_force_macos_intel_arch, by setting the QT_FORCE_MACOS_ALL_ARCHES CMake option to ON. To disble it per-target one can set QT_FORCE_MACOS_ALL_ARCHES_${target} to ON. Task-number: QTBUG-85447 Change-Id: Iccb5dfcc1a21a8a8292bd3817df0ea46c3445f75 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* cmake: Don't give plugins PUBLIC usage requirementsCraig Scott2021-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The pro2cmake.py conversion script faithfully reproduced the .pro files for the plugins, which specified the libraries as public. But in CMake, the implications of this are that public usage requirements should then be propagated to consumers. We don't expect any consumers, since a plugin is created as a MODULE library in CMake, so for Windows we don't even have an import library to link with. The only exception to this is for static builds where plugins are created as STATIC libraries instead, but only in certain controlled situations do we then link to plugins. Even then, usage requirements are not expected to propagate to the consumers, so these relationships should always be specified as private. This change warns on any PUBLIC usage requirements specified for a plugin. This check is disabled by default to avoid spamming CI builds for repos that haven't been fixed yet. The check can be enabled by a CMake cache option, which is intended for developers to use locally when fixing this issue in other repos (all plugins in qtbase should not trigger this warning as a result of changes in this commit). Task-number: QTBUG-90819 Pick-to: 6.1 Change-Id: I09f2c8da77db1193ad3370f85d367dfc6ab7b9a6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix compilation of the QPSQLDriverPlugin plugin with enabled PCHAlexey Edelev2021-02-091-0/+11
| | | | | | | | | | | | | | | PostgreSQL package delivers several header files such as pthread, zlib, zconf, uuid, etc. within Windows installation package. The headers are exposed to the compiler by PostgreSQL include paths and have different versions. When compiling PCH of the QPSQLDriverPlugin plugin, MinGW uses the pthread.h header from the PostgreSQL include paths, that cause an error related to pthread implementation mismatch. Disable PCH for the QPSQLDriverPlugin plugin, when using MinGW. Fixes: QTBUG-90850 Change-Id: I0be91bbefe37731acb2658d679b5b644ef552b23 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add upstream version of FindPostgreSQL.cmakeAlexey Edelev2021-01-261-3/+0
| | | | | | | | | | | | Add CMake upstream(3.20.0) version of FindPostgreSQL.cmake, to avoid server-related headers lookup. Avoid using the Qt version of the PostgreSQL module, if it's older than the CMake's one. Fixes: QTBUG-89639 Change-Id: I71a0c3508000901969933aea8a08d1ad431db711 Reviewed-by: Craig Scott <craig.scott@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QSql/PostgreSQL: allow blobs with more than 2^30 bytesChristian Ehrlicher2021-01-251-2/+2
| | | | | | | | | | | | Due to limitations of QByteArray it was not possible to store more than 2^31 bytes. This was fixed in Qt6 so throw away the casts to int in the postgres plugin Fixes: QTBUG-79059 Change-Id: I8ae7276a04d4936bcf5ba6c413e3412f6c342ff5 Pick-to: 6.0 Reviewed-by: Robert Szefner <robertsz27@interia.pl> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-121-24/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-071-11/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* fix potential mem leak on connection lostMatthias Möller2020-12-301-15/+12
| | | | | | | | | | | | | | | The PostgreSQL driver can change it's connection status after the first established connection. In this case, the function "isOpen()" returns false and the "close()" function would not free all resources. With this fix, the "close()" function always frees any allocated resource independent of the connection status. Fixes: QTBUG-88984 Pick-to: 6.0 5.15 5.12 Change-Id: I7c9add6a183bf46a8573952ab39f8cb1f728c00c Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Deprecate QVariant::TypeLars Knoll2020-10-231-33/+32
| | | | | | | | | It's been obsolete for a long time already. Make sure the compiler now warns about it and remove all remaining uses in qtbase. Change-Id: I0ff80311184dba52d2ba5f4e2fabe0d47fdc59d7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* PostgreSQL: Attempt to subscribe even if it is already addedAndy Shaw2020-09-071-9/+8
| | | | | | | | | | | | As the connection could be lost and then reconnected for the same driver instance then it should just do the LISTEN query as it will not do anything if it is already subscribed. Fixes: QTBUG-84356 Change-Id: I6179bca3991c3828ccee066fd96a6e5003c522be Pick-to: 5.15 Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Deprecate QVariant::Type uses in QSqlFieldLars Knoll2020-08-151-5/+5
| | | | | | | | Add metaType()/setMetaType() methods to be used instead of the type() methods taking a QVariant::Type. Change-Id: Ieaba35b73f8061cd83288dd6b50d58322db3c7ed Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Use QList instead of QVector in pluginsJarek Kobus2020-07-061-1/+1
| | | | | | Task-number: QTBUG-84469 Change-Id: Ic86f4a3000592a1c9ae62e4a83f4fe39832a6b24 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Port QRegularExpression to QStringView, drop QStringRefGiuseppe D'Angelo2020-05-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | The idea is pretty simple -- add QRegularExpression matching over QStringView. When matching over a QString, keep the string alive (by taking a copy), and set the view onto that string. Otherwise, just use the view provided by the user (who is then responsible for ensuring the data stays valid while matching). Do just minor refactorings to support this use case in a cleaner fashion. In QRegularExpressionMatch drop the QStringRef-returning methods, as they cannot work any more -- in the general case there won't be a QString to build a QStringRef from. [ChangeLog][QtCore][QRegularExpression] All the APIs dealing with QStringRef have been ported to QStringView, following QStringRef deprecation in Qt 6.0. Change-Id: Ic367991d9583cc108c045e4387c9b7288c8f1ffd Reviewed-by: Lars Knoll <lars.knoll@qt.io>