summaryrefslogtreecommitdiffstats
path: root/tests/auto/sql/kernel/qsqlquery
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup the SQL testsAndy Shaw2013-04-251-131/+114
| | | | | | | | | | This removes some XFAILS that were no longer correct and fixes some existing problems in the tests where ODBC is concerned. Change-Id: I91de526bb50ad4046ba07ddb5336aa3714966687 Reviewed-by: Mark Brand <mabrand@mabrand.nl> Reviewed-by: Caroline Chao <caroline.chao@digia.com>
* Fix sql tests in respect to Oracle databasesAndy Shaw2013-04-051-117/+119
| | | | | | | | | | Oracle has a limitation of 30 characters for a tablename so the main change is to account for this, which meant changing all the usages of qTableName(). Some other fixes are included that ensure the tests are working correctly as far as Oracle is concerned. Change-Id: I8ad8a5a33e6a70fcad235f6a7e82e91687b74fee Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Move the dbmstype to QSqlDriverPrivate so it can be used for all driversAndy Shaw2013-04-021-1/+1
| | | | | | | | | By moving it to QSqlDriverPrivate we make it easier to check what database is actually connected which is particularly useful for the autotests. Change-Id: I54d1c2c998919c1d54efb1b6ac9303070ece54aa Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* QtSql tests: Remove DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0Debao Zhang2013-03-281-1/+0
| | | | | Change-Id: I93169244b51f8b993f97f7595e0bc7006ae04e3a Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* ODBC: fixed consistence of return of QODBCResult::exec()Israel Lins2013-03-201-0/+4
| | | | | | | | | | The QODBCResult::exec() returns false when query is an delete with no data do delete caused by SQLExecute function returning SQL_NO_DATA, but the false return means error on execution. Task-number: QTBUG-10569 Change-Id: I6c7ebadcf62ab404b60c7bcccdab6a10bf16a923 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* ODBC: fix loss of milliseconds when binding QDateTimeIsrael Lins2013-03-131-3/+8
| | | | | | | | | | Caused by operator precedence error. Follow-up to commit b8b79a0f37ec74fd5b4ad829e522a384ba3622ae Task-number: QTBUG-2192 Change-Id: I17decd18c469b48a0bc938ae05c16cced8042219 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Fix for Sql query aliases with dotsMarko Kangas2013-03-131-0/+39
| | | | | | | Task-number: QTBUG-14904 Change-Id: I98a02d4bbf28522cd5c2f65ea606b6b26977e8e6 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* QSqlQuery tests: fix create table failuresMark Brand2013-02-121-7/+16
| | | | | Change-Id: Id20517cc68d03ac008650374fadd96cd6626d3fe Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* QSqlQuery tests: fix bool test for postgresqlMark Brand2013-02-121-4/+6
| | | | | Change-Id: I60634f89841cbc81058588e435c6482c6c0efed6 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* QSqlQuery tests: fix mysql problemsMark Brand2013-02-121-5/+14
| | | | | | Change-Id: I82f4e6c8801c7a936b80ad72c229f915e6d2a4de Reviewed-by: Israel Lins Albuquerque <israelins85@yahoo.com.br> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix QSqlQuery test in relation to PSQL supportAndy Shaw2012-12-221-14/+21
| | | | | | | | | Some things needed to be corrected for testing with PSQL, this was checked against the the PostgreSQL documentation to confirm that the exepected behaviour is correct. Change-Id: I45a6b343e9eb920fcae2a62910ecc956abcac0f0 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Fix some typosSergio Ahumada2012-12-211-1/+1
| | | | | Change-Id: I4e8d9bd8ea66ec810e4f1fbfd8ddbf25c4b3d980 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* fix binding of bool type in mysql driverMark Brand2012-11-091-0/+35
| | | | | | | | | | | | | | | | | | MYSQL_TYPE_TINY should be used for binding bool input value. MYSQL_TYPE_LONG might be too big for bool, resulting in bools being saved in the database as int 127. The problem was not specific to the vendor's BOOL column type. http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html http://dev.mysql.com/doc/refman/5.0/en/c-api-prepared-statement-type-codes.html Added generic autotest to make sure that binding bool works. All drivers should pass this test. Task-number: QTBUG-27763 Change-Id: I4e69f8e3b32fffb702ec9fa8a80ff5c50dea954b Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* QSqlQuery::value string overloadThiago A. Correa2012-10-081-0/+1
| | | | | | | | | | Introduce value overload to take field name as a parameter. This allows for terser application code that avoids explicit calls to QSqlRecord::value(). Change-Id: I02b6712cd5ec41633b902714315b5716c17d1a9b Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Set the Qt API level to compatibility mode in all tests.Thiago Macieira2012-08-011-0/+1
| | | | | | | | | | | Qt 5.0 beta requires changing the default to the 5.0 API, disabling the deprecated code. However, tests should test (and often do) the compatibility API too, so turn it back on. Task-number: QTBUG-25053 Change-Id: I8129c3ef3cb58541c95a32d083850d9e7f768927 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix error when inserting to tables with datetime fields with QODBCThiago A. Correa2012-07-161-1/+27
| | | | | | | | | | | | | SQL Server 10 introduced stricter rules for TIMESTAMP validation, making it necessary to specify the decimal digits. Other databases might do the same as well, so this patch introduces a check for the TIMESTAMP column size and adjusts the decimal digits parameter as needed. Task-number: QTBUG-2192 Change-Id: If6d798c6c928ebda75bc474e49a07fbbfbe5816c Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Fix encoding mismatches in tst_QSqlQueryThiago Macieira2012-05-071-3/+3
| | | | | | | | | | | | | | | The file has been UTF-8 encoded for years, which means that the line: QString longerBLOB( "abcdefghijklmnopqrstuvxyz¿äëïöü¡ " ); Loaded a mojibake into QString. Then, this data was stored as a blob in the database by calling longerBLOB.toLatin1() (a QByteArray), and reloaded for check using toString(). Once the QString default codec changes to UTF-8, the mojibake would get fixed, and the test would fail. Make sure it doesn't happen. Change-Id: If12d6124c973e4a1c1b7978d90fffb9aa5545c66 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QtSql]Thiago Macieira2012-05-051-2/+2
| | | | | | | | | | This operation should be a no-op anyway, since at this point in time, the fromAscii and toAscii functions simply call their fromLatin1 and toLatin1 counterparts. Task-number: QTBUG-21872 Change-Id: Icb3ab0e1f4f3173563f3de36115b5457cf1ba856 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Don't use obsolete qVariantValue, qVariantCanConvert, etc.Debao Zhang2012-05-021-1/+1
| | | | | | | | | | qVariantValue and qVariantCanConvert are Compatibility members, while in Qt4.8 they are marked as Qt 3 Support Members. qVariantFromValue and qVariantSetValue are Obsolete members. Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QTBUG-18435 fix stored procedure output parameters on ODBCMark Brand2012-04-171-0/+32
| | | | | | | | | | | | | | | | Follow-up to c55a99965d8c08d5f924d49db4fe4aa49df8096. 3 problems prevented stored procedure output parameters from working. - SQLBindParameter needs access to buffer provided by QByteArray. - The length of the buffer is measured in bytes. - A typo corrupted conversion back to QString. Also, data() makes more sense than constData() to expose the buffer. Task-Id: QTBUG-18435 Change-Id: I66444b13c0f584ed79bcf026e5a23caff83c22cb Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* fix QSqlQuery ODBC auto testsMark Brand2012-04-171-8/+22
| | | | | | | | | | | | | The placeholder name must include the : prefix. Several type tests for aggregate functions assumed sqlite behavior which is actually exceptional due to sqlite's loose type system. REAL is a synonymn for DOUBLE in sqlite but is also compatible with at least MS SQL Server, PostgreSQL, Oracle, and MySQL. Change-Id: I97f8c55d2e962b072cfab11a121fda685666e754 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Convert Boolean value into integerHonglei Zhang2012-04-021-0/+61
| | | | | | | | | | | | | According to documentation, SQLite doesn't have a separate Boolean storage class. Instead, values are stored as integers 0(false) and 1(true). In QSqlQuery::bindValue(), if a boolean value is bound to a placeholder, it is converted to text true and false. This fix converts boolean value to integer 0 and 1. Task-number: QTBUG-23895 Change-Id: I4945971172f0b5e5819446700390033a1a4ce301 Reviewed-by: Michael Goddard <michael.goddard@nokia.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Expand QtSql tests covering boundValues and boundValueNameMatt Newell2012-03-311-12/+75
| | | | | | | | Tests added that cover boundValues with positional binding, and boundValueName. Change-Id: I2962d76607b716d19d3e0be958109be2f032f2d9 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Allow named bind values to be used multiple times per queryMatt Newell2012-03-301-4/+18
| | | | | | | | | | | Prepared queries should be able to use a name parameter more than once. Currently this will result in undefined behavior and crashes. This patch fixes the bug and implements the needed test case. Task-number: QTBUG-6420 Change-Id: I07d6537e432a9b2781e9ef3d9f597bceb054527e Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
* Improve type detection for query resultsAndy Shaw2012-03-071-0/+118
| | | | | | | | | | | | | | When an aggregate function is used for a column in a SQL resultset then it should ensure that the right data type is reported for that column. This also concerns expressions when the returned column does not map directly to a table column. Test included for this. Task-number: QTBUG-22038 Change-Id: I07487694c0ed393d46af06e232914fe923356a99 Reviewed-by: Mark Brand <mabrand@mabrand.nl> Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
* Handle the 'real' datatype correctly in the SQLite driverAndy Shaw2012-02-031-0/+30
| | | | | | | | | | | | | | | The 'real' datatype should be seen as a QVariant::Double type and not as a QVariant::String type otherwise it does not get presented correctly when using a non Qt application to access it. Test is included for QSqlQuery. Task-number: QTBUG-16373 Change-Id: Ie323ce49eb95e4d6bb4c3814ba9a957a63f4b259 Reviewed-by: Yunqiao Yin <charles.yin@nokia.com> (cherry picked from commit b23631015c23a49e3b4d296ea0a6266bfce3d4f1) Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Check driver validity before using itHonglei Zhang2011-12-121-2/+7
| | | | | | | | | | | | Even though it is stated in the documentation that the SQL driver must remain valid during the life time of QSqlQuery, there are users who don't follow the rule. It's common that the destructor of QSqlQuery is called after the driver is already deleted. This fix checks the validity of the SQLite driver before QSqliteResult uses it in destructor. Task-number: QTBUG-16967 Change-Id: If0f52113f12e14102da1671cd6e12bdaa267114f Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* Remove TESTED_CLASS/TESTED_FILES comments from tests.Jason McDonald2011-12-061-2/+0
| | | | | | | | | These comments were mostly empty or inaccurate. Appropriate naming of tests and appropriate placement of tests within the directory tree provide more reliable indicators of what is being tested. Change-Id: Ib6bf373d9e79917e4ab1417ee5c1264a2c2d7027 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix sqlite driver memory eating due to close failureHonglei Zhang2011-11-301-0/+49
| | | | | | | | | | | | | | If an ongoing query is not finalized before close function is called, sqlite driver still tries to close the connection to sqlite. In this case, sqlite reports an error to sqlite driver which is not reported to the client. The failure in close causes connection to sqlite unclosed and memory is not freed. This fix tries to finalize all queries before close function is called. The close function should succeed. Task-number: QTBUG-16967 Change-Id: I2f10a2a9017446a9d44b693b00464a89625e3602 Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* SQLite support only one statement at a timeHonglei Zhang2011-11-231-0/+47
| | | | | | | | | | | SQLite driver support only one statement at a time. This fix makes the exec and prepare call failed if more than one statements are given. This is bug fix for QTBUG-21884. Also the behaviour is documented in the API specification. Task-number: QTBUG-21884 Change-Id: If1e25a0dd9f9ee38961ef478fc7909f6b05e360a Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* test: Split `qsqlquery' unit and benchmark testSergio Ahumada2011-10-232-39/+4
| | | | | | | | | | | | | Moving benchmark test from 'tests/auto' to 'tests/benchmarks'. Also removing 'qttest_p4' usage while we are at it. - void benchmark(); was moved to 'tests/benchmarks/sql/kernel/qsqlquery' Task-number: QTQAINFRA-353 Change-Id: I241bb1a2fba1c1b5524c21e5941a6c5daf5a4a89 Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
* Remove SkipMode parameter from QSKIP calls.Jason McDonald2011-10-211-38/+38
| | | | | | | | | The previous commit removed SkipMode from the testlib APi. This commit removes the parameter from all calls to QSKIP. Task-number: QTBUG-21851, QTBUG-21652 Change-Id: I21c0ee6731c1bc6ac6d962590d9b31d7459dfbc5 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* No need to return after QSKIP.Jason McDonald2011-10-071-27/+9
| | | | | | | | | QSKIP already causes the test function that calls it to return, so the returns removed by this commit were unreachable. Change-Id: I1fa2f3a3271927d8a600b02d8b31bd81db9146b1 Reviewed-on: http://codereview.qt-project.org/6188 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove Symbian-specific code from tests.Jason McDonald2011-09-291-10/+0
| | | | | | | | | Symbian is not a supported platform for Qt5, so this code is no longer required. Change-Id: I1172e6a42d518490e63e9599bf10579df08259aa Reviewed-on: http://codereview.qt-project.org/5657 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Moved sql autotests into new directory structureJo Asplin2011-09-063-0/+3293
Task-number: QTBUG-21253 Change-Id: Id20605e1247b080e775968b56ea5f56462ca4c71 Reviewed-on: http://codereview.qt.nokia.com/4127 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>