diff options
Diffstat (limited to 'tests/auto/sql/kernel')
-rw-r--r-- | tests/auto/sql/kernel/qsqldatabase/tst_databases.h | 22 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp | 193 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp | 8 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 236 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp | 14 |
5 files changed, 244 insertions, 229 deletions
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h index 0eb3ba8c22..e47140b61b 100644 --- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h @@ -96,14 +96,26 @@ static QString qGetHostName() // to prevent nameclashes on our database server, each machine // will use its own set of table names. Call this function to get // "tablename_hostname" -inline static QString qTableName( const QString& prefix, const char *sourceFileName ) +inline QString fixupTableName(const QString &tableName, QSqlDatabase db) { - return QLatin1String("dbtst")+QString::number(qHash(QLatin1String(sourceFileName) + "_" + qGetHostName().replace( "-", "_" )), 16)+"_"+prefix; + QString tbName = tableName; + // On Oracle we are limited to 30 character tablenames + QSqlDriverPrivate *d = static_cast<QSqlDriverPrivate *>(QObjectPrivate::get(db.driver())); + if (d && d->dbmsType == QSqlDriverPrivate::Oracle) + tbName.truncate(30); + return tbName; } -inline static QString qTableName( const QString& prefix, QSqlDriver* driver ) +inline static QString qTableName(const QString& prefix, const char *sourceFileName, QSqlDatabase db) { - return driver->escapeIdentifier( prefix + "_" + qGetHostName(), QSqlDriver::TableName ); + return fixupTableName(QString(QLatin1String("dbtst") + QString::number(qHash(QLatin1String(sourceFileName) + + "_" + qGetHostName().replace( "-", "_" )), 16) + "_" + prefix), db); +} + +inline static QString qTableName(const QString& prefix, QSqlDatabase db) +{ + return fixupTableName(QString(db.driver()->escapeIdentifier(prefix + "_" + qGetHostName(), QSqlDriver::TableName)), + db); } inline static bool testWhiteSpaceNames( const QString &name ) @@ -467,6 +479,8 @@ public: { if (db.driverName().startsWith("QPSQL")) return QLatin1String("timestamp"); + if (db.driverName().startsWith("QOCI") && getOraVersion(db) >= 9) + return QLatin1String("timestamp(0)"); return QLatin1String("datetime"); } diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp index b294570df8..b958a30108 100644 --- a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp +++ b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp @@ -242,10 +242,10 @@ struct FieldDef { // excluding the primary key field static int createFieldTable(const FieldDef fieldDefs[], QSqlDatabase db) { - tst_Databases::safeDropTable(db, qTableName("qtestfields", __FILE__)); + tst_Databases::safeDropTable(db, qTableName("qtestfields", __FILE__, db)); QSqlQuery q(db); // construct a create table statement consisting of all fieldtypes - QString qs = "create table " + qTableName("qtestfields", __FILE__); + QString qs = "create table " + qTableName("qtestfields", __FILE__, db); QString autoName = tst_Databases::autoFieldName(db); if (tst_Databases::isMSAccess(db)) qs.append(" (id int not null"); @@ -299,18 +299,18 @@ void tst_QSqlDatabase::createTestTables(QSqlDatabase db) // please never ever change this table; otherwise fix all tests ;) if (tst_Databases::isMSAccess(db)) { - QVERIFY_SQL(q, exec("create table " + qTableName("qtest", __FILE__) + + QVERIFY_SQL(q, exec("create table " + qTableName("qtest", __FILE__, db) + " (id int not null, t_varchar varchar(40) not null, t_char char(40), " "t_numeric number, primary key (id, t_varchar))")); } else { - QVERIFY_SQL(q, exec("create table " + qTableName("qtest", __FILE__) + + QVERIFY_SQL(q, exec("create table " + qTableName("qtest", __FILE__, db) + " (id integer not null, t_varchar varchar(40) not null, " "t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar))")); } if (testWhiteSpaceNames(db.driverName())) { QString qry = "create table " - + db.driver()->escapeIdentifier(qTableName("qtest", __FILE__) + " test", QSqlDriver::TableName) + + db.driver()->escapeIdentifier(qTableName("qtest", __FILE__, db) + " test", QSqlDriver::TableName) + '(' + db.driver()->escapeIdentifier(QLatin1String("test test"), QSqlDriver::FieldName) + " int not null primary key)"; @@ -329,45 +329,45 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db) } // drop the view first, otherwise we'll get dependency problems - tst_Databases::safeDropViews(db, QStringList() << qTableName("qtest_view", __FILE__) << qTableName("qtest_view2", __FILE__)); + tst_Databases::safeDropViews(db, QStringList() << qTableName("qtest_view", __FILE__, db) << qTableName("qtest_view2", __FILE__, db)); QStringList tableNames; - tableNames << qTableName("qtest", __FILE__) - << qTableName("qtestfields", __FILE__) - << qTableName("qtestalter", __FILE__) - << qTableName("qtest_temp", __FILE__) - << qTableName("qtest_bigint", __FILE__) - << qTableName("qtest_xmltype", __FILE__) - << qTableName("latin1table", __FILE__) - << qTableName("qtest_sqlguid", __FILE__) - << qTableName("batable", __FILE__) - << qTableName("qtest_prec", __FILE__) - << qTableName("uint", __FILE__) - << qTableName("strings", __FILE__) - << qTableName("numericfields", __FILE__) - << qTableName("qtest_ibaseblobs", __FILE__) - << qTableName("qtestBindBool", __FILE__) - << qTableName("testqGetString", __FILE__) - << qTableName("qtest_sqlguid", __FILE__) - << qTableName("uint_table", __FILE__) - << qTableName("uint_test", __FILE__) - << qTableName("bug_249059", __FILE__); + tableNames << qTableName("qtest", __FILE__, db) + << qTableName("qtestfields", __FILE__, db) + << qTableName("qtestalter", __FILE__, db) + << qTableName("qtest_temp", __FILE__, db) + << qTableName("qtest_bigint", __FILE__, db) + << qTableName("qtest_xmltype", __FILE__, db) + << qTableName("latin1table", __FILE__, db) + << qTableName("qtest_sqlguid", __FILE__, db) + << qTableName("batable", __FILE__, db) + << qTableName("qtest_prec", __FILE__, db) + << qTableName("uint", __FILE__, db) + << qTableName("strings", __FILE__, db) + << qTableName("numericfields", __FILE__, db) + << qTableName("qtest_ibaseblobs", __FILE__, db) + << qTableName("qtestBindBool", __FILE__, db) + << qTableName("testqGetString", __FILE__, db) + << qTableName("qtest_sqlguid", __FILE__, db) + << qTableName("uint_table", __FILE__, db) + << qTableName("uint_test", __FILE__, db) + << qTableName("bug_249059", __FILE__, db); QSqlQuery q(0, db); if (db.driverName().startsWith("QPSQL")) { - q.exec("drop schema " + qTableName("qtestschema", __FILE__) + " cascade"); - q.exec("drop schema " + qTableName("qtestScHeMa", __FILE__) + " cascade"); + q.exec("drop schema " + qTableName("qtestschema", __FILE__, db) + " cascade"); + q.exec("drop schema " + qTableName("qtestScHeMa", __FILE__, db) + " cascade"); } if (testWhiteSpaceNames(db.driverName())) - tableNames << db.driver()->escapeIdentifier(qTableName("qtest", __FILE__) + " test", QSqlDriver::TableName); + tableNames << db.driver()->escapeIdentifier(qTableName("qtest", __FILE__, db) + " test", QSqlDriver::TableName); tst_Databases::safeDropTables(db, tableNames); if (db.driverName().startsWith("QOCI")) { - q.exec("drop user "+qTableName("CREATOR", __FILE__)+" cascade"); - q.exec("drop user "+qTableName("APPUSER", __FILE__)+" cascade"); - q.exec("DROP TABLE system."+qTableName("mypassword", __FILE__)); + q.exec("drop user "+qTableName("CREATOR", __FILE__, db)+ " cascade"); + q.exec("drop user "+qTableName("APPUSER", __FILE__, db) + " cascade"); + q.exec("DROP TABLE sys."+qTableName("mypassword", __FILE__, db)); } } @@ -377,7 +377,7 @@ void tst_QSqlDatabase::populateTestTables(QSqlDatabase db) if (!db.isValid()) return; QSqlQuery q(db); - const QString qtest(qTableName("qtest", __FILE__)); + const QString qtest(qTableName("qtest", __FILE__, db)); q.exec("delete from " + qtest); //non-fatal QVERIFY_SQL(q, exec("insert into " + qtest + " (id, t_varchar, t_char, t_numeric) values (0, 'VarChar0', 'Char0', 1.1)")); @@ -502,7 +502,7 @@ void tst_QSqlDatabase::tables() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString qtest(qTableName("qtest", __FILE__)), qtest_view(qTableName("qtest_view", __FILE__)), temp_tab(qTableName("test_tab", __FILE__)); + const QString qtest(qTableName("qtest", __FILE__, db)), qtest_view(qTableName("qtest_view", __FILE__, db)), temp_tab(qTableName("test_tab", __FILE__, db)); bool views = true; bool tempTables = false; @@ -567,7 +567,7 @@ void tst_QSqlDatabase::whitespaceInIdentifiers() CHECK_DATABASE(db); if (testWhiteSpaceNames(db.driverName())) { - const QString tableName(qTableName("qtest", __FILE__) + " test"); + const QString tableName(qTableName("qtest", __FILE__, db) + " test"); QVERIFY(db.tables().contains(tableName, Qt::CaseInsensitive)); QSqlRecord rec = db.record(db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName)); @@ -595,7 +595,7 @@ void tst_QSqlDatabase::alterTable() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString qtestalter(qTableName("qtestalter", __FILE__)); + const QString qtestalter(qTableName("qtestalter", __FILE__, db)); QSqlQuery q(db); @@ -671,12 +671,12 @@ void tst_QSqlDatabase::commonFieldTest(const FieldDef fieldDefs[], QSqlDatabase { CHECK_DATABASE(db); - QSqlRecord rec = db.record(qTableName("qtestfields", __FILE__)); + QSqlRecord rec = db.record(qTableName("qtestfields", __FILE__, db)); QCOMPARE((int)rec.count(), fieldCount+1); testRecord(fieldDefs, rec, db); QSqlQuery q(db); - QVERIFY_SQL(q, exec("select * from " + qTableName("qtestfields", __FILE__))); + QVERIFY_SQL(q, exec("select * from " + qTableName("qtestfields", __FILE__, db))); } void tst_QSqlDatabase::recordTDS() @@ -772,12 +772,12 @@ void tst_QSqlDatabase::recordOCI() commonFieldTest(fieldDefs, db, fieldCount); // some additional tests - QSqlRecord rec = db.record(qTableName("qtestfields", __FILE__)); + QSqlRecord rec = db.record(qTableName("qtestfields", __FILE__, db)); QCOMPARE(rec.field("T_NUMBER").length(), 10); QCOMPARE(rec.field("T_NUMBER").precision(), 5); QSqlQuery q(db); - QVERIFY_SQL(q, exec("SELECT * FROM " + qTableName("qtestfields", __FILE__))); + QVERIFY_SQL(q, exec("SELECT * FROM " + qTableName("qtestfields", __FILE__, db))); rec = q.record(); QCOMPARE(rec.field("T_NUMBER").length(), 10); QCOMPARE(rec.field("T_NUMBER").precision(), 5); @@ -834,11 +834,11 @@ void tst_QSqlDatabase::recordPSQL() if(tst_Databases::isPostgreSQL(db)) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); - q.exec("drop sequence " + qTableName("qtestfields", __FILE__) + "_t_bigserial_seq"); - q.exec("drop sequence " + qTableName("qtestfields", __FILE__) + "_t_serial_seq"); + q.exec("drop sequence " + qTableName("qtestfields", __FILE__, db) + "_t_bigserial_seq"); + q.exec("drop sequence " + qTableName("qtestfields", __FILE__, db) + "_t_serial_seq"); // older psql cut off the table name - q.exec("drop sequence " + qTableName("qtestfields", __FILE__).left(15) + "_t_bigserial_seq"); - q.exec("drop sequence " + qTableName("qtestfields", __FILE__).left(18) + "_t_serial_seq"); + q.exec("drop sequence " + qTableName("qtestfields", __FILE__, db).left(15) + "_t_bigserial_seq"); + q.exec("drop sequence " + qTableName("qtestfields", __FILE__, db).left(18) + "_t_serial_seq"); const int fieldCount = createFieldTable(fieldDefs, db); QVERIFY(fieldCount > 0); @@ -1075,7 +1075,7 @@ void tst_QSqlDatabase::transaction() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString qtest(qTableName("qtest", __FILE__)); + const QString qtest(qTableName("qtest", __FILE__, db)); if (!db.driver()->hasFeature(QSqlDriver::Transactions)) QSKIP("DBMS not transaction capable"); @@ -1125,7 +1125,7 @@ void tst_QSqlDatabase::bigIntField() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); QString drvName = db.driverName(); - const QString qtest_bigint(qTableName("qtest_bigint", __FILE__)); + const QString qtest_bigint(qTableName("qtest_bigint", __FILE__, db)); QSqlQuery q(db); q.setForwardOnly(true); @@ -1196,21 +1196,21 @@ void tst_QSqlDatabase::caseSensivity() || db.driverName().startsWith("QODBC")) cs = true; - QSqlRecord rec = db.record(qTableName("qtest", __FILE__)); + QSqlRecord rec = db.record(qTableName("qtest", __FILE__, db)); QVERIFY((int)rec.count() > 0); if (!cs) { - rec = db.record(qTableName("QTEST", __FILE__).toUpper()); + rec = db.record(qTableName("QTEST", __FILE__, db).toUpper()); QVERIFY((int)rec.count() > 0); - rec = db.record(qTableName("qTesT", __FILE__)); + rec = db.record(qTableName("qTesT", __FILE__, db)); QVERIFY((int)rec.count() > 0); } - rec = db.primaryIndex(qTableName("qtest", __FILE__)); + rec = db.primaryIndex(qTableName("qtest", __FILE__, db)); QVERIFY((int)rec.count() > 0); if (!cs) { - rec = db.primaryIndex(qTableName("QTEST", __FILE__).toUpper()); + rec = db.primaryIndex(qTableName("QTEST", __FILE__, db).toUpper()); QVERIFY((int)rec.count() > 0); - rec = db.primaryIndex(qTableName("qTesT", __FILE__)); + rec = db.primaryIndex(qTableName("qTesT", __FILE__, db)); QVERIFY((int)rec.count() > 0); } } @@ -1226,7 +1226,7 @@ void tst_QSqlDatabase::noEscapedFieldNamesInRecord() fieldname = fieldname.toUpper(); QSqlQuery q(db); - QString query = "SELECT " + db.driver()->escapeIdentifier(fieldname, QSqlDriver::FieldName) + " FROM " + qTableName("qtest", __FILE__); + QString query = "SELECT " + db.driver()->escapeIdentifier(fieldname, QSqlDriver::FieldName) + " FROM " + qTableName("qtest", __FILE__, db); QVERIFY_SQL(q, exec(query)); QCOMPARE(q.record().fieldName(0), fieldname); } @@ -1246,9 +1246,9 @@ void tst_QSqlDatabase::psql_schemas() QVERIFY_SQL( q, exec("set client_min_messages='warning'")); } - QVERIFY_SQL(q, exec("CREATE SCHEMA " + qTableName("qtestschema", __FILE__))); + QVERIFY_SQL(q, exec("CREATE SCHEMA " + qTableName("qtestschema", __FILE__, db))); - QString table = qTableName("qtestschema", __FILE__) + '.' + qTableName("qtesttable", __FILE__); + QString table = qTableName("qtestschema", __FILE__, db) + '.' + qTableName("qtesttable", __FILE__, db); QVERIFY_SQL(q, exec("CREATE TABLE " + table + " (id int primary key, name varchar(20))")); QVERIFY(db.tables().contains(table)); @@ -1278,8 +1278,8 @@ void tst_QSqlDatabase::psql_escapedIdentifiers() if(tst_Databases::isPostgreSQL(db)) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); - const QString schemaName(qTableName("qtestScHeMa", __FILE__)), - tableName(qTableName("qtest", __FILE__)), + const QString schemaName(qTableName("qtestScHeMa", __FILE__, db)), + tableName(qTableName("qtest", __FILE__, db)), field1Name(QLatin1String("fIeLdNaMe")), field2Name(QLatin1String("ZuLu")); @@ -1318,7 +1318,7 @@ void tst_QSqlDatabase::psql_escapeBytea() QByteArray ba(dta, 4); QSqlQuery q(db); - const QString tableName(qTableName("batable", __FILE__)); + const QString tableName(qTableName("batable", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (ba bytea)").arg(tableName))); QSqlQuery iq(db); @@ -1351,7 +1351,7 @@ void tst_QSqlDatabase::bug_249059() QSKIP("Test requires PostgreSQL >= 7.3"); QSqlQuery q(db); - const QString tableName(qTableName("bug_249059", __FILE__)); + const QString tableName(qTableName("bug_249059", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (dt timestamp, t time)").arg(tableName))); QSqlQuery iq(db); @@ -1386,7 +1386,7 @@ void tst_QSqlDatabase::precisionPolicy() // DBMS_SPECIFIC(db, "QPSQL"); QSqlQuery q(db); - const QString tableName(qTableName("qtest_prec", __FILE__)); + const QString tableName(qTableName("qtest_prec", __FILE__, db)); if(!db.driver()->hasFeature(QSqlDriver::LowPrecisionNumbers)) QSKIP("Driver or database doesn't support setting precision policy"); @@ -1422,8 +1422,6 @@ void tst_QSqlDatabase::precisionPolicy() q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt32); QVERIFY_SQL(q, exec(query)); - if(db.driverName().startsWith("QOCI")) - QEXPECT_FAIL("", "Oracle fails to move to next when data columns are oversize", Abort); QVERIFY_SQL(q, next()); if(db.driverName().startsWith("QSQLITE")) QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue); @@ -1481,7 +1479,7 @@ void tst_QSqlDatabase::mysqlOdbc_unsignedIntegers() QSKIP("MySQL through ODBC-driver specific test"); QSqlQuery q(db); - const QString tableName(qTableName("uint", __FILE__)); + const QString tableName(qTableName("uint", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (foo integer(10) unsigned, bar integer(10))").arg(tableName))); QVERIFY_SQL(q, exec(QString("INSERT INTO %1 VALUES (-4000000000, -4000000000)").arg(tableName))); QVERIFY_SQL(q, exec(QString("INSERT INTO %1 VALUES (4000000000, 4000000000)").arg(tableName))); @@ -1505,7 +1503,7 @@ void tst_QSqlDatabase::accessOdbc_strings() QSKIP("MS Access specific test"); QSqlQuery q(db); - const QString tableName(qTableName("strings", __FILE__)); + const QString tableName(qTableName("strings", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (aStr memo, bStr memo, cStr memo, dStr memo" ", eStr memo, fStr memo, gStr memo, hStr memo)").arg(tableName))); @@ -1543,7 +1541,7 @@ void tst_QSqlDatabase::ibase_numericFields() CHECK_DATABASE(db); QSqlQuery q(db); - const QString tableName(qTableName("numericfields", __FILE__)); + const QString tableName(qTableName("numericfields", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id int not null, num1 NUMERIC(2,1), " "num2 NUMERIC(5,2), num3 NUMERIC(10,3), " "num4 NUMERIC(18,4))").arg(tableName))); @@ -1615,7 +1613,7 @@ void tst_QSqlDatabase::ibase_fetchBlobs() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("qtest_ibaseblobs", __FILE__)); + const QString tableName(qTableName("qtest_ibaseblobs", __FILE__, db)); QSqlQuery q(db); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (blob1 BLOB segment size 256)").arg(tableName))); @@ -1648,7 +1646,7 @@ void tst_QSqlDatabase::ibase_procWithoutReturnValues() CHECK_DATABASE(db); QSqlQuery q(db); - const QString procName(qTableName("qtest_proc1", __FILE__)); + const QString procName(qTableName("qtest_proc1", __FILE__, db)); q.exec(QString("drop procedure %1").arg(procName)); QVERIFY_SQL(q, exec("CREATE PROCEDURE " + procName + " (str VARCHAR(10))\nAS BEGIN\nstr='test';\nEND;")); QVERIFY_SQL(q, exec(QString("execute procedure %1('qtest')").arg(procName))); @@ -1664,7 +1662,7 @@ void tst_QSqlDatabase::ibase_procWithReturnValues() if (!db.driverName().startsWith("QIBASE")) QSKIP("InterBase specific test"); - const QString procName(qTableName("qtest_proc2", __FILE__)); + const QString procName(qTableName("qtest_proc2", __FILE__, db)); QSqlQuery q(db); q.exec(QString("drop procedure %1").arg(procName)); @@ -1706,11 +1704,11 @@ void tst_QSqlDatabase::formatValueTrimStrings() QSqlQuery q(db); - QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (50, 'Trim Test ', 'Trim Test 2 ')").arg(qTableName("qtest", __FILE__)))); - QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (51, 'TrimTest', 'Trim Test 2')").arg(qTableName("qtest", __FILE__)))); - QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (52, ' ', ' ')").arg(qTableName("qtest", __FILE__)))); + QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (50, 'Trim Test ', 'Trim Test 2 ')").arg(qTableName("qtest", __FILE__, db)))); + QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (51, 'TrimTest', 'Trim Test 2')").arg(qTableName("qtest", __FILE__, db)))); + QVERIFY_SQL(q, exec(QString("INSERT INTO %1 (id, t_varchar, t_char) values (52, ' ', ' ')").arg(qTableName("qtest", __FILE__, db)))); - QVERIFY_SQL(q, exec(QString("SELECT t_varchar, t_char FROM %1 WHERE id >= 50 AND id <= 52 ORDER BY id").arg(qTableName("qtest", __FILE__)))); + QVERIFY_SQL(q, exec(QString("SELECT t_varchar, t_char FROM %1 WHERE id >= 50 AND id <= 52 ORDER BY id").arg(qTableName("qtest", __FILE__, db)))); QVERIFY_SQL(q, next()); @@ -1734,10 +1732,10 @@ void tst_QSqlDatabase::odbc_reopenDatabase() CHECK_DATABASE(db); QSqlQuery q(db); - QVERIFY_SQL(q, exec("SELECT * from " + qTableName("qtest", __FILE__))); + QVERIFY_SQL(q, exec("SELECT * from " + qTableName("qtest", __FILE__, db))); QVERIFY_SQL(q, next()); db.open(); - QVERIFY_SQL(q, exec("SELECT * from " + qTableName("qtest", __FILE__))); + QVERIFY_SQL(q, exec("SELECT * from " + qTableName("qtest", __FILE__, db))); QVERIFY_SQL(q, next()); db.open(); } @@ -1752,10 +1750,10 @@ void tst_QSqlDatabase::odbc_bindBoolean() QSKIP("MySql has inconsistent behaviour of bit field type across versions."); QSqlQuery q(db); - QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("qtestBindBool", __FILE__) + "(id int, boolvalue bit)")); + QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("qtestBindBool", __FILE__, db) + "(id int, boolvalue bit)")); // Bind and insert - QVERIFY_SQL(q, prepare("INSERT INTO " + qTableName("qtestBindBool", __FILE__) + " VALUES(?, ?)")); + QVERIFY_SQL(q, prepare("INSERT INTO " + qTableName("qtestBindBool", __FILE__, db) + " VALUES(?, ?)")); q.bindValue(0, 1); q.bindValue(1, true); QVERIFY_SQL(q, exec()); @@ -1764,7 +1762,7 @@ void tst_QSqlDatabase::odbc_bindBoolean() QVERIFY_SQL(q, exec()); // Retrive - QVERIFY_SQL(q, exec("SELECT id, boolvalue FROM " + qTableName("qtestBindBool", __FILE__) + " ORDER BY id")); + QVERIFY_SQL(q, exec("SELECT id, boolvalue FROM " + qTableName("qtestBindBool", __FILE__, db) + " ORDER BY id")); QVERIFY_SQL(q, next()); QCOMPARE(q.value(0).toInt(), 1); QCOMPARE(q.value(1).toBool(), true); @@ -1778,7 +1776,7 @@ void tst_QSqlDatabase::odbc_testqGetString() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString testqGetString(qTableName("testqGetString", __FILE__)); + const QString testqGetString(qTableName("testqGetString", __FILE__, db)); QSqlQuery q(db); if (tst_Databases::isSqlServer(db)) @@ -1822,7 +1820,7 @@ void tst_QSqlDatabase::mysql_multiselect() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString qtest(qTableName("qtest", __FILE__)); + const QString qtest(qTableName("qtest", __FILE__, db)); QSqlQuery q(db); QString version=tst_Databases::getMySqlVersion( db ); @@ -1848,7 +1846,7 @@ void tst_QSqlDatabase::ibase_useCustomCharset() db.setConnectOptions("ISC_DPB_LC_CTYPE=Latin1"); db.open(); - const QString tableName(qTableName("latin1table", __FILE__)); + const QString tableName(qTableName("latin1table", __FILE__, db)); QSqlQuery q(db); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1(text VARCHAR(6) CHARACTER SET Latin1)").arg(tableName))); @@ -1886,8 +1884,8 @@ void tst_QSqlDatabase::oci_xmltypeSupport() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("qtest_xmltype", __FILE__)); - QString xml("<?xml version=\"1.0\"?><TABLE_NAME>MY_TABLE</TABLE_NAME>"); + const QString tableName(qTableName("qtest_xmltype", __FILE__, db)); + QString xml("<?xml version=\"1.0\"?>\n<TABLE_NAME>MY_TABLE</TABLE_NAME>\n"); QSqlQuery q(db); // Embedding the XML in the statement @@ -1914,7 +1912,7 @@ void tst_QSqlDatabase::oci_fieldLength() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("qtest", __FILE__)); + const QString tableName(qTableName("qtest", __FILE__, db)); QSqlQuery q(db); QVERIFY_SQL(q, exec(QString("SELECT t_varchar, t_char FROM %1").arg(tableName))); @@ -1930,7 +1928,7 @@ void tst_QSqlDatabase::oci_synonymstest() CHECK_DATABASE(db); QSqlQuery q(db); - const QString creator(qTableName("CREATOR", __FILE__)), appuser(qTableName("APPUSER", __FILE__)), table1(qTableName("TABLE1", __FILE__)); + const QString creator(qTableName("CREATOR", __FILE__, db)), appuser(qTableName("APPUSER", __FILE__, db)), table1(qTableName("TABLE1", __FILE__, db)); // QVERIFY_SQL(q, exec("drop public synonym "+table1)); QVERIFY_SQL(q, exec(QString("create user %1 identified by %2 default tablespace users temporary tablespace temp").arg(creator).arg(creator))); QVERIFY_SQL(q, exec(QString("grant CONNECT to %1").arg(creator))); @@ -1948,8 +1946,8 @@ void tst_QSqlDatabase::oci_synonymstest() db3.close(); QVERIFY_SQL(db3, open(appuser,appuser)); QSqlQuery q3(db3); - QVERIFY_SQL(q3, exec("create synonym "+appuser+'.'+qTableName("synonyms", __FILE__)+" for "+creator+'.'+table1)); - QVERIFY_SQL(db3, tables().filter(qTableName("synonyms", __FILE__), Qt::CaseInsensitive).count() >= 1); + QVERIFY_SQL(q3, exec("create synonym " + appuser + '.' + qTableName("synonyms", __FILE__, db) + " for " + creator + '.' + table1)); + QVERIFY_SQL(db3, tables().filter(qTableName("synonyms", __FILE__, db), Qt::CaseInsensitive).count() >= 1); } @@ -1963,7 +1961,7 @@ void tst_QSqlDatabase::odbc_uniqueidentifier() if (!tst_Databases::isSqlServer(db)) QSKIP("SQL Server (ODBC) specific test"); - const QString tableName(qTableName("qtest_sqlguid", __FILE__)); + const QString tableName(qTableName("qtest_sqlguid", __FILE__, db)); QString guid = QString("AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"); QString invalidGuid = QString("GAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"); @@ -2006,7 +2004,7 @@ void tst_QSqlDatabase::odbc_uintfield() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("uint_table", __FILE__)); + const QString tableName(qTableName("uint_table", __FILE__, db)); unsigned int val = 4294967295U; QSqlQuery q(db); @@ -2070,7 +2068,7 @@ void tst_QSqlDatabase::eventNotificationIBase() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString procedureName(qTableName("posteventProc", __FILE__)); + const QString procedureName(qTableName("posteventProc", __FILE__, db)); QSqlDriver *driver=db.driver(); QVERIFY_SQL(*driver, subscribeToNotification(procedureName)); QTest::qWait(300); // Interbase needs some time to call the driver callback. @@ -2100,7 +2098,7 @@ void tst_QSqlDatabase::eventNotificationPSQL() CHECK_DATABASE(db); QSqlQuery query(db); - QString procedureName = qTableName("posteventProc", __FILE__); + QString procedureName = qTableName("posteventProc", __FILE__, db); QString payload = "payload"; QSqlDriver &driver=*(db.driver()); QVERIFY_SQL(driver, subscribeToNotification(procedureName)); @@ -2124,7 +2122,7 @@ void tst_QSqlDatabase::sqlite_bindAndFetchUInt() QSKIP("SQLite3 specific test"); QSqlQuery q(db); - const QString tableName(qTableName("uint_test", __FILE__)); + const QString tableName(qTableName("uint_test", __FILE__, db)); QVERIFY_SQL(q, exec(QString("CREATE TABLE %1(uint_field UNSIGNED INTEGER)").arg(tableName))); QVERIFY_SQL(q, prepare(QString("INSERT INTO %1 VALUES(?)").arg(tableName))); q.addBindValue(4000000000U); @@ -2144,7 +2142,7 @@ void tst_QSqlDatabase::db2_valueCacheUpdate() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("qtest", __FILE__)); + const QString tableName(qTableName("qtest", __FILE__, db)); QSqlQuery q(db); q.exec(QString("SELECT id, t_varchar, t_char, t_numeric FROM %1").arg(tableName)); q.next(); @@ -2167,7 +2165,7 @@ void tst_QSqlDatabase::sqlStatementUseIsNull_189093() // select a record with NULL value QSqlQuery q(QString::null, db); - QVERIFY_SQL(q, exec("select * from " + qTableName("qtest", __FILE__) + " where id = 4")); + QVERIFY_SQL(q, exec("select * from " + qTableName("qtest", __FILE__, db) + " where id = 4")); QVERIFY_SQL(q, next()); QSqlDriver *driver = db.driver(); @@ -2190,17 +2188,18 @@ void tst_QSqlDatabase::mysql_savepointtest() QSqlQuery q(db); QVERIFY_SQL(q, exec("begin")); - QVERIFY_SQL(q, exec("insert into "+qTableName("qtest", __FILE__)+" VALUES (54, 'foo', 'foo', 54.54)")); + QVERIFY_SQL(q, exec("insert into " + qTableName("qtest", __FILE__, db) + " VALUES (54, 'foo', 'foo', 54.54)")); QVERIFY_SQL(q, exec("savepoint foo")); } void tst_QSqlDatabase::oci_tables() { + QSKIP("Requires specific permissions to create a system table"); QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); QSqlQuery q(db); - const QString systemTableName("system."+qTableName("mypassword", __FILE__)); + const QString systemTableName("sys." + qTableName("mypassword", __FILE__, db).toUpper()); QVERIFY_SQL(q, exec("CREATE TABLE "+systemTableName+"(name VARCHAR(20))")); QVERIFY(!db.tables().contains(systemTableName.toUpper())); QVERIFY(db.tables(QSql::SystemTables).contains(systemTableName.toUpper())); @@ -2220,8 +2219,8 @@ void tst_QSqlDatabase::sqlite_enable_cache_mode() db2.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); QVERIFY_SQL(db2, open()); QSqlQuery q(db), q2(db2); - QVERIFY_SQL(q, exec("select * from "+qTableName("qtest", __FILE__))); - QVERIFY_SQL(q2, exec("select * from "+qTableName("qtest", __FILE__))); + QVERIFY_SQL(q, exec("select * from " + qTableName("qtest", __FILE__, db))); + QVERIFY_SQL(q2, exec("select * from " + qTableName("qtest", __FILE__, db))); } QTEST_MAIN(tst_QSqlDatabase) diff --git a/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp b/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp index 852cb8f41e..3500e26f5e 100644 --- a/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp +++ b/tests/auto/sql/kernel/qsqldriver/tst_qsqldriver.cpp @@ -77,7 +77,7 @@ void tst_QSqlDriver::initTestCase_data() void tst_QSqlDriver::recreateTestTables(QSqlDatabase db) { QSqlQuery q(db); - const QString relTEST1(qTableName("relTEST1", __FILE__)); + const QString relTEST1(qTableName("relTEST1", __FILE__, db)); if(tst_Databases::isPostgreSQL(db)) QVERIFY_SQL( q, exec("set client_min_messages='warning'")); @@ -102,7 +102,7 @@ void tst_QSqlDriver::cleanupTestCase() { foreach (const QString &dbName, dbs.dbNames) { QSqlDatabase db = QSqlDatabase::database(dbName); - tst_Databases::safeDropTable( db, qTableName( "relTEST1", __FILE__ ) ); + tst_Databases::safeDropTable(db, qTableName("relTEST1", __FILE__, db)); } dbs.close(); } @@ -121,7 +121,7 @@ void tst_QSqlDriver::record() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - QString tablename(qTableName("relTEST1", __FILE__)); + QString tablename(qTableName("relTEST1", __FILE__, db)); QStringList fields; fields << "id" << "name" << "title_key" << "another_title_key"; @@ -178,7 +178,7 @@ void tst_QSqlDriver::primaryIndex() QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - QString tablename(qTableName("relTEST1", __FILE__)); + QString tablename(qTableName("relTEST1", __FILE__, db)); //check that we can get primary index using unquoted mixed case table name QSqlIndex index = db.driver()->primaryIndex(tablename); QCOMPARE(index.count(), 1); diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 1fbdd31a8f..ff458d6f2b 100644 --- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -44,7 +44,7 @@ #include "../qsqldatabase/tst_databases.h" -const QString qtest(qTableName( "qtest", __FILE__ )); +const QString qtest(qTableName("qtest", __FILE__, QSqlDatabase())); class tst_QSqlQuery : public QObject { @@ -318,59 +318,59 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db ) QStringList tablenames; // drop all the table in case a testcase failed tablenames << qtest - << qTableName( "qtest_null", __FILE__ ) - << qTableName( "qtest_blob", __FILE__ ) - << qTableName( "qtest_bittest", __FILE__ ) - << qTableName( "qtest_nullblob", __FILE__ ) - << qTableName( "qtest_rawtest", __FILE__ ) - << qTableName( "qtest_precision", __FILE__ ) - << qTableName( "qtest_prepare", __FILE__ ) - << qTableName( "qtestj1", __FILE__ ) - << qTableName( "qtestj2", __FILE__ ) - << qTableName( "char1Select", __FILE__ ) - << qTableName( "char1SU", __FILE__ ) - << qTableName( "qxmltest", __FILE__ ) - << qTableName( "qtest_exerr", __FILE__ ) - << qTableName( "qtest_empty", __FILE__ ) - << qTableName( "clobby", __FILE__ ) - << qTableName( "bindtest", __FILE__ ) - << qTableName( "more_results", __FILE__ ) - << qTableName( "blobstest", __FILE__ ) - << qTableName( "oraRowId", __FILE__ ) - << qTableName( "qtest_batch", __FILE__ ) - << qTableName("bug6421", __FILE__).toUpper() - << qTableName("bug5765", __FILE__) - << qTableName("bug6852", __FILE__) - << qTableName("bug21884", __FILE__) - << qTableName("bug23895", __FILE__) - << qTableName( "qtest_lockedtable", __FILE__ ) - << qTableName( "Planet", __FILE__ ) - << qTableName( "task_250026", __FILE__ ) - << qTableName( "task_234422", __FILE__ ) - << qTableName("test141895", __FILE__) - << qTableName("qtest_oraOCINumber", __FILE__) - << qTableName( "bug2192", __FILE__); + << qTableName("qtest_null", __FILE__, db) + << qTableName("qtest_blob", __FILE__, db) + << qTableName("qtest_bittest", __FILE__, db) + << qTableName("qtest_nullblob", __FILE__, db) + << qTableName("qtest_rawtest", __FILE__, db) + << qTableName("qtest_precision", __FILE__, db) + << qTableName("qtest_prepare", __FILE__, db) + << qTableName("qtestj1", __FILE__, db) + << qTableName("qtestj2", __FILE__, db) + << qTableName("char1Select", __FILE__, db) + << qTableName("char1SU", __FILE__, db) + << qTableName("qxmltest", __FILE__, db) + << qTableName("qtest_exerr", __FILE__, db) + << qTableName("qtest_empty", __FILE__, db) + << qTableName("clobby", __FILE__, db) + << qTableName("bindtest", __FILE__, db) + << qTableName("more_results", __FILE__, db) + << qTableName("blobstest", __FILE__, db) + << qTableName("oraRowId", __FILE__, db) + << qTableName("qtest_batch", __FILE__, db) + << qTableName("bug6421", __FILE__, db).toUpper() + << qTableName("bug5765", __FILE__, db) + << qTableName("bug6852", __FILE__, db) + << qTableName("bug21884", __FILE__, db) + << qTableName("bug23895", __FILE__, db) + << qTableName("qtest_lockedtable", __FILE__, db) + << qTableName("Planet", __FILE__, db) + << qTableName("task_250026", __FILE__, db) + << qTableName("task_234422", __FILE__, db) + << qTableName("test141895", __FILE__, db) + << qTableName("qtest_oraOCINumber", __FILE__, db) + << qTableName("bug2192", __FILE__, db); if ( db.driverName().startsWith("QPSQL") ) - tablenames << qTableName("task_233829", __FILE__); + tablenames << qTableName("task_233829", __FILE__, db); if ( db.driverName().startsWith("QSQLITE") ) - tablenames << qTableName( "record_sqlite", __FILE__ ); + tablenames << qTableName("record_sqlite", __FILE__, db); if ( tst_Databases::isSqlServer( db ) || db.driverName().startsWith( "QOCI" ) ) - tablenames << qTableName( "qtest_longstr", __FILE__ ); + tablenames << qTableName("qtest_longstr", __FILE__, db); if (tst_Databases::isSqlServer( db )) - db.exec("DROP PROCEDURE " + qTableName("test141895_proc", __FILE__)); + db.exec("DROP PROCEDURE " + qTableName("test141895_proc", __FILE__, db)); if (tst_Databases::isMySQL( db )) - db.exec("DROP PROCEDURE IF EXISTS "+qTableName("bug6852_proc", __FILE__)); + db.exec("DROP PROCEDURE IF EXISTS "+qTableName("bug6852_proc", __FILE__, db)); tst_Databases::safeDropTables( db, tablenames ); if ( db.driverName().startsWith( "QOCI" ) ) { QSqlQuery q( db ); - q.exec( "DROP PACKAGE " + qTableName("pkg", __FILE__) ); + q.exec("DROP PACKAGE " + qTableName("pkg", __FILE__, db)); } } @@ -391,15 +391,15 @@ void tst_QSqlQuery::createTestTables( QSqlDatabase db ) QVERIFY_SQL( q, exec( "create table " + qtest + " (id int "+tst_Databases::autoFieldName(db) +" NOT NULL, t_varchar varchar(20), t_char char(20), primary key(id))" ) ); if ( tst_Databases::isSqlServer( db ) || db.driverName().startsWith( "QTDS" ) ) - QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_null", __FILE__ ) + " (id int null, t_varchar varchar(20) null)" ) ); + QVERIFY_SQL(q, exec("create table " + qTableName("qtest_null", __FILE__, db) + " (id int null, t_varchar varchar(20) null)")); else - QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_null", __FILE__ ) + " (id int, t_varchar varchar(20))" ) ); + QVERIFY_SQL(q, exec("create table " + qTableName("qtest_null", __FILE__, db) + " (id int, t_varchar varchar(20))")); } void tst_QSqlQuery::populateTestTables( QSqlDatabase db ) { QSqlQuery q( db ); - const QString qtest_null(qTableName( "qtest_null", __FILE__ )); + const QString qtest_null(qTableName( "qtest_null", __FILE__, db)); q.exec( "delete from " + qtest ); QVERIFY_SQL( q, exec( "insert into " + qtest + " values (1, 'VarChar1', 'Char1')" ) ); QVERIFY_SQL( q, exec( "insert into " + qtest + " values (2, 'VarChar2', 'Char2')" ) ); @@ -423,7 +423,7 @@ void tst_QSqlQuery::char1Select() { QSqlQuery q( db ); - const QString tbl = qTableName("char1Select", __FILE__); + const QString tbl = qTableName("char1Select", __FILE__, db); q.exec( "drop table " + tbl); QVERIFY_SQL(q, exec("create table " + tbl + " (id char(1))")); QVERIFY_SQL(q, exec("insert into " + tbl + " values ('a')")); @@ -456,7 +456,7 @@ void tst_QSqlQuery::char1SelectUnicode() QSKIP( "Test requires MySQL >= 5.0"); QString createQuery; - const QString char1SelectUnicode(qTableName( "char1SU", __FILE__ )); + const QString char1SelectUnicode(qTableName("char1SU", __FILE__, db)); if ( tst_Databases::isSqlServer( db ) ) createQuery = "create table " + char1SelectUnicode + "(id nchar(1))"; @@ -501,7 +501,7 @@ void tst_QSqlQuery::oraRowId() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString oraRowId(qTableName("oraRowId", __FILE__)); + const QString oraRowId(qTableName("oraRowId", __FILE__, db)); QSqlQuery q( db ); QVERIFY_SQL( q, exec( "select rowid from " + qtest ) ); @@ -536,7 +536,7 @@ void tst_QSqlQuery::mysqlOutValues() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString hello(qTableName( "hello", __FILE__ )), qtestproc(qTableName( "qtestproc", __FILE__ )); + const QString hello(qTableName("hello", __FILE__, db)), qtestproc(qTableName("qtestproc", __FILE__, db)); QSqlQuery q( db ); @@ -594,7 +594,7 @@ void tst_QSqlQuery::bindBool() CHECK_DATABASE( db ); QSqlQuery q(db); - const QString tableName(qTableName( "bindBool", __FILE__ )); + const QString tableName(qTableName("bindBool", __FILE__, db)); q.exec("DROP TABLE " + tableName); QString colType = db.driverName().startsWith("QPSQL") ? QLatin1String("BOOLEAN") : QLatin1String("INT"); QVERIFY_SQL(q, exec("CREATE TABLE " + tableName + " (id INT, flag " + colType + " NOT NULL, PRIMARY KEY(id))")); @@ -622,7 +622,7 @@ void tst_QSqlQuery::oraOutValues() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString tst_outValues(qTableName("tst_outValues", __FILE__)); + const QString tst_outValues(qTableName("tst_outValues", __FILE__, db)); if ( !db.driver()->hasFeature( QSqlDriver::PreparedQueries ) ) QSKIP( "Test requires prepared query support"); @@ -718,7 +718,7 @@ void tst_QSqlQuery::oraClob() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString clobby(qTableName("clobby", __FILE__)); + const QString clobby(qTableName("clobby", __FILE__, db)); QSqlQuery q( db ); @@ -771,16 +771,16 @@ void tst_QSqlQuery::storedProceduresIBase() CHECK_DATABASE( db ); QSqlQuery q( db ); - q.exec( "drop procedure " + qTableName( "TESTPROC", __FILE__ ) ); + q.exec("drop procedure " + qTableName("TESTPROC", __FILE__, db)); - QVERIFY_SQL( q, exec( "create procedure " + qTableName( "TESTPROC", __FILE__ ) + + QVERIFY_SQL(q, exec("create procedure " + qTableName("TESTPROC", __FILE__, db) + " RETURNS (x integer, y varchar(20)) " "AS BEGIN " " x = 42; " " y = 'Hello Anders'; " "END" ) ); - QVERIFY_SQL( q, prepare( "execute procedure " + qTableName( "TestProc", __FILE__ ) ) ); + QVERIFY_SQL(q, prepare("execute procedure " + qTableName("TestProc", __FILE__, db))); QVERIFY_SQL( q, exec() ); // check for a valid result set @@ -797,7 +797,7 @@ void tst_QSqlQuery::storedProceduresIBase() // the second next shall fail QVERIFY( !q.next() ); - q.exec( "drop procedure " + qTableName( "TestProc", __FILE__ ) ); + q.exec("drop procedure " + qTableName("TestProc", __FILE__, db)); } void tst_QSqlQuery::outValuesDB2() @@ -813,8 +813,8 @@ void tst_QSqlQuery::outValuesDB2() q.setForwardOnly( true ); - q.exec( "drop procedure " + qTableName( "tst_outValues", __FILE__ ) ); //non-fatal - QVERIFY_SQL( q, exec( "CREATE PROCEDURE " + qTableName( "tst_outValues", __FILE__ ) + + q.exec("drop procedure " + qTableName("tst_outValues", __FILE__, db)); //non-fatal + QVERIFY_SQL( q, exec( "CREATE PROCEDURE " + qTableName("tst_outValues", __FILE__, db) + " (OUT x int, OUT x2 double, OUT x3 char(20))\n" "LANGUAGE SQL\n" "P1: BEGIN\n" @@ -823,7 +823,7 @@ void tst_QSqlQuery::outValuesDB2() " SET x3 = 'Homer';\n" "END P1" ) ); - QVERIFY_SQL( q, prepare( "call " + qTableName( "tst_outValues", __FILE__ ) + "(?, ?, ?)" ) ); + QVERIFY_SQL(q, prepare("call " + qTableName("tst_outValues", __FILE__, db) + "(?, ?, ?)")); q.addBindValue( 0, QSql::Out ); q.addBindValue( 0.0, QSql::Out ); @@ -841,7 +841,7 @@ void tst_QSqlQuery::outValues() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString tst_outValues(qTableName("tst_outValues", __FILE__)); + const QString tst_outValues(qTableName("tst_outValues", __FILE__, db)); if ( !db.driver()->hasFeature( QSqlDriver::PreparedQueries ) ) QSKIP( "Test requires prepared query support"); @@ -905,11 +905,11 @@ void tst_QSqlQuery::blob() q.setForwardOnly( true ); - QString queryString = QString( "create table " + qTableName( "qtest_blob", __FILE__ ) + + QString queryString = QString("create table " + qTableName("qtest_blob", __FILE__, db) + " (id int not null primary key, t_blob %1)" ).arg( tst_Databases::blobTypeName( db, BLOBSIZE ) ); QVERIFY_SQL( q, exec( queryString ) ); - QVERIFY_SQL( q, prepare( "insert into " + qTableName( "qtest_blob", __FILE__ ) + " (id, t_blob) values (?, ?)" ) ); + QVERIFY_SQL(q, prepare("insert into " + qTableName("qtest_blob", __FILE__, db) + " (id, t_blob) values (?, ?)")); for ( i = 0; i < BLOBCOUNT; ++i ) { q.addBindValue( i ); @@ -917,7 +917,7 @@ void tst_QSqlQuery::blob() QVERIFY_SQL( q, exec() ); } - QVERIFY_SQL( q, exec( "select * from " + qTableName( "qtest_blob", __FILE__ ) ) ); + QVERIFY_SQL(q, exec("select * from " + qTableName("qtest_blob", __FILE__, db))); for ( i = 0; i < BLOBCOUNT; ++i ) { QVERIFY( q.next() ); @@ -1382,7 +1382,7 @@ void tst_QSqlQuery::isNull() CHECK_DATABASE( db ); QSqlQuery q( db ); - QVERIFY_SQL( q, exec( "select id, t_varchar from " + qTableName( "qtest_null", __FILE__ ) + " order by id" ) ); + QVERIFY_SQL(q, exec("select id, t_varchar from " + qTableName("qtest_null", __FILE__, db) + " order by id")); QVERIFY( q.next() ); QVERIFY( !q.isNull( 0 ) ); QVERIFY( q.isNull( 1 ) ); @@ -1408,13 +1408,13 @@ void tst_QSqlQuery::bitField() QSqlQuery q( db ); - QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_bittest", __FILE__ ) + " (bitty bit)" ) ); + QVERIFY_SQL(q, exec("create table " + qTableName("qtest_bittest", __FILE__, db) + " (bitty bit)")); - QVERIFY_SQL( q, exec( "insert into " + qTableName( "qtest_bittest", __FILE__ ) + " values (0)" ) ); + QVERIFY_SQL(q, exec("insert into " + qTableName("qtest_bittest", __FILE__, db) + " values (0)")); - QVERIFY_SQL( q, exec( "insert into " + qTableName( "qtest_bittest", __FILE__ ) + " values (1)" ) ); + QVERIFY_SQL(q, exec("insert into " + qTableName("qtest_bittest", __FILE__, db) + " values (1)")); - QVERIFY_SQL( q, exec( "select bitty from " + qTableName( "qtest_bittest", __FILE__ ) ) ); + QVERIFY_SQL(q, exec("select bitty from " + qTableName("qtest_bittest", __FILE__, db))); QVERIFY( q.next() ); @@ -1432,7 +1432,7 @@ void tst_QSqlQuery::nullBlob() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_nullblob(qTableName("qtest_nullblob", __FILE__)); + const QString qtest_nullblob(qTableName("qtest_nullblob", __FILE__, db)); QSqlQuery q( db ); QVERIFY_SQL( q, exec( "create table " + qtest_nullblob + " (id int primary key, bb blob)" ) ); @@ -1462,7 +1462,7 @@ void tst_QSqlQuery::rawField() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_rawtest(qTableName("qtest_rawtest", __FILE__)); + const QString qtest_rawtest(qTableName("qtest_rawtest", __FILE__, db)); QSqlQuery q( db ); q.setForwardOnly( true ); @@ -1487,7 +1487,7 @@ void tst_QSqlQuery::precision() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_precision(qTableName( "qtest_precision", __FILE__ )); + const QString qtest_precision(qTableName("qtest_precision", __FILE__, db)); static const char* precStr = "1.2345678901234567891"; @@ -1646,7 +1646,7 @@ void tst_QSqlQuery::joins() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtestj1(qTableName("qtestj1", __FILE__)), qtestj2(qTableName("qtestj2", __FILE__)); + const QString qtestj1(qTableName("qtestj1", __FILE__, db)), qtestj2(qTableName("qtestj2", __FILE__, db)); if ( db.driverName().startsWith( "QOCI" ) || db.driverName().startsWith( "QTDS" ) @@ -1731,7 +1731,7 @@ void tst_QSqlQuery::prepare_bind_exec() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_prepare(qTableName("qtest_prepare", __FILE__)); + const QString qtest_prepare(qTableName("qtest_prepare", __FILE__, db)); if(db.driverName().startsWith("QIBASE") && (db.databaseName() == "silence.nokia.troll.no:c:\\ibase\\testdb_ascii" || db.databaseName() == "/opt/interbase/qttest.gdb")) QSKIP("Can't transliterate extended unicode to ascii"); @@ -2031,9 +2031,9 @@ void tst_QSqlQuery::sqlServerLongStrings() QSqlQuery q( db ); - QVERIFY_SQL( q, exec( "CREATE TABLE " + qTableName( "qtest_longstr", __FILE__ ) + " (id int primary key, longstring ntext)" ) ); + QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("qtest_longstr", __FILE__, db) + " (id int primary key, longstring ntext)")); - QVERIFY_SQL( q, prepare( "INSERT INTO " + qTableName( "qtest_longstr", __FILE__ ) + " VALUES (?, ?)" ) ); + QVERIFY_SQL(q, prepare("INSERT INTO " + qTableName("qtest_longstr", __FILE__, db) + " VALUES (?, ?)")); q.addBindValue( 0 ); @@ -2051,7 +2051,7 @@ void tst_QSqlQuery::sqlServerLongStrings() QVERIFY_SQL( q, exec() ); - QVERIFY_SQL( q, exec( "select * from " + qTableName( "qtest_longstr", __FILE__ ) ) ); + QVERIFY_SQL(q, exec("select * from " + qTableName( "qtest_longstr", __FILE__, db))); QVERIFY_SQL( q, next() ); @@ -2103,7 +2103,7 @@ void tst_QSqlQuery::batchExec() QSKIP( "Database can't do BatchOperations"); QSqlQuery q( db ); - const QString tableName = qTableName( "qtest_batch", __FILE__ ); + const QString tableName = qTableName("qtest_batch", __FILE__, db); QVERIFY_SQL( q, exec( "create table " + tableName + " (id int, name varchar(20), dt date, num numeric(8, 4))" ) ); QVERIFY_SQL( q, prepare( "insert into " + tableName + " (id, name, dt, num) values (?, ?, ?, ?)" ) ); @@ -2247,9 +2247,9 @@ void tst_QSqlQuery::record_sqlite() QSqlQuery q( db ); - QVERIFY_SQL( q, exec( "create table "+qTableName( "record_sqlite", __FILE__ )+"(id integer primary key, name varchar, title int)" ) ); + QVERIFY_SQL(q, exec("create table " + qTableName("record_sqlite", __FILE__, db) + "(id integer primary key, name varchar, title int)")); - QSqlRecord rec = db.record( qTableName( "record_sqlite", __FILE__ ) ); + QSqlRecord rec = db.record(qTableName("record_sqlite", __FILE__, db)); QCOMPARE( rec.count(), 3 ); QCOMPARE( rec.field( 0 ).type(), QVariant::Int ); @@ -2257,7 +2257,7 @@ void tst_QSqlQuery::record_sqlite() QCOMPARE( rec.field( 2 ).type(), QVariant::Int ); /* important - select from an empty table */ - QVERIFY_SQL( q, exec( "select id, name, title from "+qTableName( "record_sqlite", __FILE__ ) ) ); + QVERIFY_SQL(q, exec("select id, name, title from " + qTableName("record_sqlite", __FILE__, db))); rec = q.record(); QCOMPARE( rec.count(), 3 ); @@ -2276,13 +2276,13 @@ void tst_QSqlQuery::oraLong() QString aLotOfText( 127000, QLatin1Char( 'H' ) ); - QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_longstr", __FILE__ ) + " (id int primary key, astr long)" ) ); - QVERIFY_SQL( q, prepare( "insert into " + qTableName( "qtest_longstr", __FILE__ ) + " (id, astr) values (?, ?)" ) ); + QVERIFY_SQL(q, exec("create table " + qTableName("qtest_longstr", __FILE__, db) + " (id int primary key, astr long)")); + QVERIFY_SQL(q, prepare("insert into " + qTableName("qtest_longstr", __FILE__, db) + " (id, astr) values (?, ?)")); q.addBindValue( 1 ); q.addBindValue( aLotOfText ); QVERIFY_SQL( q, exec() ); - QVERIFY_SQL( q, exec( "select id,astr from " + qTableName( "qtest_longstr", __FILE__ ) ) ); + QVERIFY_SQL(q, exec("select id,astr from " + qTableName("qtest_longstr", __FILE__, db))); QVERIFY( q.next() ); QCOMPARE( q.value( 0 ).toInt(), 1 ); @@ -2297,7 +2297,7 @@ void tst_QSqlQuery::execErrorRecovery() QSqlQuery q( db ); - const QString tbl = qTableName("qtest_exerr", __FILE__); + const QString tbl = qTableName("qtest_exerr", __FILE__, db); q.exec("drop table " + tbl); QVERIFY_SQL(q, exec("create table " + tbl + " (id int not null primary key)")); QVERIFY_SQL(q, prepare("insert into " + tbl + " values (?)" )); @@ -2354,7 +2354,7 @@ void tst_QSqlQuery::bindWithDoubleColonCastOperator() if ( !db.driverName().startsWith( "QPSQL" ) ) QSKIP( "Test requires PostgreSQL"); - const QString tablename(qTableName( "bindtest", __FILE__ )); + const QString tablename(qTableName("bindtest", __FILE__, db)); QSqlQuery q( db ); @@ -2516,7 +2516,7 @@ void tst_QSqlQuery::sqlite_finish() db2.setDatabaseName( db.databaseName() ); QVERIFY_SQL( db2, open() ); - const QString tableName(qTableName( "qtest_lockedtable", __FILE__ )); + const QString tableName(qTableName("qtest_lockedtable", __FILE__, db)); QSqlQuery q( db ); tst_Databases::safeDropTable( db, tableName ); @@ -2566,7 +2566,7 @@ void tst_QSqlQuery::nextResult() else if ( db.driverName().startsWith( "QDB2" ) ) driverType = DB2; - const QString tableName(qTableName( "more_results", __FILE__ )); + const QString tableName(qTableName("more_results", __FILE__, db)); QVERIFY_SQL( q, exec( "CREATE TABLE " + tableName + " (id integer, text varchar(20), num numeric(6, 3), empty varchar(10));" ) ); @@ -2670,7 +2670,7 @@ void tst_QSqlQuery::nextResult() } // Stored procedure with multiple result sets - const QString procName(qTableName( "proc_more_res", __FILE__ )); + const QString procName(qTableName("proc_more_res", __FILE__, db)); q.exec( QString( "DROP PROCEDURE %1;" ).arg( procName ) ); @@ -2748,7 +2748,7 @@ void tst_QSqlQuery::blobsPreparedQuery() if ( !db.driver()->hasFeature( QSqlDriver::BLOB ) || !db.driver()->hasFeature( QSqlDriver::PreparedQueries ) ) QSKIP( "DBMS does not support BLOBs or prepared queries"); - const QString tableName(qTableName( "blobstest", __FILE__ )); + const QString tableName(qTableName("blobstest", __FILE__, db)); QSqlQuery q( db ); q.setForwardOnly( true ); // This is needed to make the test work with DB2. @@ -2803,10 +2803,10 @@ void tst_QSqlQuery::emptyTableNavigate() { QSqlQuery q( db ); - const QString tbl = qTableName("qtest_empty", __FILE__); + const QString tbl = qTableName("qtest_empty", __FILE__, db); q.exec("drop table " + tbl); QVERIFY_SQL(q, exec("create table " + tbl + " (id char(10))")); - QVERIFY_SQL(q, prepare("select * from " + qTableName("qtest_empty", __FILE__ ))); + QVERIFY_SQL(q, prepare("select * from " + tbl)); QVERIFY_SQL( q, exec() ); QVERIFY( !q.next() ); QCOMPARE( q.lastError().isValid(), false ); @@ -2819,7 +2819,7 @@ void tst_QSqlQuery::task_217003() QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); QSqlQuery q( db ); - const QString Planet(qTableName( "Planet", __FILE__)); + const QString Planet(qTableName( "Planet", __FILE__, db)); q.exec("drop table " + Planet); QVERIFY_SQL( q, exec( "create table " + Planet + " (Name varchar(20))" ) ); @@ -2850,7 +2850,7 @@ void tst_QSqlQuery::task_250026() CHECK_DATABASE( db ); QSqlQuery q( db ); - const QString tableName(qTableName( "task_250026", __FILE__ )); + const QString tableName(qTableName("task_250026", __FILE__, db)); if ( !q.exec( "create table " + tableName + " (longfield varchar(1100))" ) ) { qDebug() << "Error" << q.lastError(); @@ -2898,7 +2898,7 @@ void tst_QSqlQuery::task_229811() QSqlQuery q( db ); - const QString tableName(qTableName( "task_229811", __FILE__ )); + const QString tableName(qTableName("task_229811", __FILE__, db)); if ( !q.exec( "CREATE TABLE " + tableName + " (Word varchar(20))" ) ) { qDebug() << "Warning" << q.lastError(); @@ -2945,7 +2945,7 @@ void tst_QSqlQuery::task_234422() m_airlines << "Lufthansa" << "SAS" << "United" << "KLM" << "Aeroflot"; m_countries << "DE" << "SE" << "US" << "NL" << "RU"; - const QString tableName(qTableName( "task_234422", __FILE__ )); + const QString tableName(qTableName("task_234422", __FILE__, db)); QVERIFY_SQL(query,exec("CREATE TABLE " + tableName + " (id int primary key, " "name varchar(20), homecountry varchar(2))")); @@ -2977,7 +2977,7 @@ void tst_QSqlQuery::task_233829() CHECK_DATABASE( db ); QSqlQuery q( db ); - const QString tableName(qTableName("task_233829", __FILE__)); + const QString tableName(qTableName("task_233829", __FILE__, db)); QVERIFY_SQL(q,exec("CREATE TABLE " + tableName + "(dbl1 double precision,dbl2 double precision) without oids;")); QString queryString("INSERT INTO " + tableName +"(dbl1, dbl2) VALUES(?,?)"); @@ -2997,7 +2997,7 @@ void tst_QSqlQuery::sqlServerReturn0() if (!tst_Databases::isSqlServer( db )) QSKIP("SQL Server specific test"); - const QString tableName(qTableName("test141895", __FILE__)), procName(qTableName("test141895_proc", __FILE__)); + const QString tableName(qTableName("test141895", __FILE__, db)), procName(qTableName("test141895_proc", __FILE__, db)); QSqlQuery q( db ); q.exec("DROP TABLE " + tableName); q.exec("DROP PROCEDURE " + procName); @@ -3023,7 +3023,7 @@ void tst_QSqlQuery::QTBUG_551() QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); QSqlQuery q(db); - const QString pkgname(qTableName("pkg", __FILE__)); + const QString pkgname(qTableName("pkg", __FILE__, db)); QVERIFY_SQL(q, exec("CREATE OR REPLACE PACKAGE "+pkgname+" IS \n\ \n\ TYPE IntType IS TABLE OF INTEGER INDEX BY BINARY_INTEGER;\n\ @@ -3070,7 +3070,7 @@ void tst_QSqlQuery::QTBUG_14132() QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); QSqlQuery q(db); - const QString procedureName(qTableName("procedure", __FILE__)); + const QString procedureName(qTableName("procedure", __FILE__, db)); QVERIFY_SQL(q, exec("CREATE OR REPLACE PROCEDURE "+ procedureName + " (outStr OUT varchar2) \n\ is \n\ begin \n\ @@ -3093,7 +3093,7 @@ void tst_QSqlQuery::QTBUG_18435() return; QSqlQuery q(db); - QString procName(qTableName("qtbug_18435_proc", __FILE__)); + QString procName(qTableName("qtbug_18435_proc", __FILE__, db)); q.exec("DROP PROCEDURE " + procName); const QString stmt = @@ -3118,7 +3118,7 @@ void tst_QSqlQuery::QTBUG_5251() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString timetest(qTableName("timetest", __FILE__)); + const QString timetest(qTableName("timetest", __FILE__, db)); if (!db.driverName().startsWith( "QPSQL" )) return; @@ -3151,7 +3151,7 @@ void tst_QSqlQuery::QTBUG_6421() CHECK_DATABASE( db ); QSqlQuery q(db); - const QString tableName(qTableName("bug6421", __FILE__).toUpper()); + const QString tableName(qTableName("bug6421", __FILE__, db).toUpper()); QVERIFY_SQL(q, exec("create table "+tableName+"(COL1 char(10), COL2 char(10), COL3 char(10))")); QVERIFY_SQL(q, exec("create index INDEX1 on "+tableName+" (COL1 desc)")); @@ -3176,16 +3176,16 @@ void tst_QSqlQuery::QTBUG_6618() QSKIP("SQL Server specific test"); QSqlQuery q(db); - q.exec( "drop procedure " + qTableName( "tst_raiseError", __FILE__ ) ); //non-fatal + q.exec("drop procedure " + qTableName("tst_raiseError", __FILE__, db)); //non-fatal QString errorString; for (int i=0;i<110;i++) errorString+="reallylong"; errorString+=" error"; - QVERIFY_SQL( q, exec("create procedure " + qTableName( "tst_raiseError", __FILE__ ) + " as\n" + QVERIFY_SQL(q, exec("create procedure " + qTableName("tst_raiseError", __FILE__, db) + " as\n" "begin\n" " raiserror('" + errorString + "', 16, 1)\n" "end\n" )); - q.exec( "{call " + qTableName( "tst_raiseError", __FILE__ ) + "}" ); + q.exec("{call " + qTableName("tst_raiseError", __FILE__, db) + "}"); QVERIFY(q.lastError().text().contains(errorString)); } @@ -3198,7 +3198,7 @@ void tst_QSqlQuery::QTBUG_6852() QSKIP( "Test requires MySQL >= 5.0"); QSqlQuery q(db); - const QString tableName(qTableName("bug6852", __FILE__)), procName(qTableName("bug6852_proc", __FILE__)); + const QString tableName(qTableName("bug6852", __FILE__, db)), procName(qTableName("bug6852_proc", __FILE__, db)); QVERIFY_SQL(q, exec("DROP PROCEDURE IF EXISTS "+procName)); QVERIFY_SQL(q, exec("CREATE TABLE "+tableName+"(\n" @@ -3232,7 +3232,7 @@ void tst_QSqlQuery::QTBUG_5765() QSKIP( "Test requires MySQL >= 4.1"); QSqlQuery q(db); - const QString tableName(qTableName("bug5765", __FILE__)); + const QString tableName(qTableName("bug5765", __FILE__, db)); QVERIFY_SQL(q, exec("CREATE TABLE "+tableName+"(testval TINYINT(1) DEFAULT 0)")); q.prepare("INSERT INTO "+tableName+" SET testval = :VALUE"); @@ -3275,7 +3275,7 @@ void tst_QSqlQuery::QTBUG_21884() QSqlQuery q(db); QStringList stList; - QString tableName(qTableName("bug21884", __FILE__ )); + QString tableName(qTableName("bug21884", __FILE__, db)); stList << "create table " + tableName + "(id integer primary key, note string)"; stList << "select * from " + tableName + ";"; stList << "select * from " + tableName + "; \t\n\r"; @@ -3370,7 +3370,7 @@ void tst_QSqlQuery::QTBUG_23895() QSqlQuery q(db); - QString tableName(qTableName("bug23895", __FILE__ )); + QString tableName(qTableName("bug23895", __FILE__, db)); q.prepare("create table " + tableName + "(id integer primary key, val1 bool, val2 boolean)"); QVERIFY_SQL(q, exec()); q.prepare("insert into " + tableName + "(id, val1, val2) values(?, ?, ?);"); @@ -3425,7 +3425,7 @@ void tst_QSqlQuery::QTBUG_14904() QSqlQuery q(db); - QString tableName(qTableName("bug14904", __FILE__ )); + QString tableName(qTableName("bug14904", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); q.prepare("create table " + tableName + "(val1 bool)"); @@ -3456,7 +3456,7 @@ void tst_QSqlQuery::QTBUG_2192() QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); { - const QString tableName(qTableName("bug2192", __FILE__)); + const QString tableName(qTableName("bug2192", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); QSqlQuery q(db); @@ -3483,7 +3483,7 @@ void tst_QSqlQuery::oraOCINumber() QFETCH( QString, dbName ); QSqlDatabase db = QSqlDatabase::database( dbName ); CHECK_DATABASE( db ); - const QString qtest_oraOCINumber(qTableName("qtest_oraOCINumber", __FILE__)); + const QString qtest_oraOCINumber(qTableName("qtest_oraOCINumber", __FILE__, db)); QSqlQuery q( db ); q.setForwardOnly( true ); @@ -3592,7 +3592,7 @@ void tst_QSqlQuery::sqlite_constraint() QSKIP("Sqlite3 specific test"); QSqlQuery q(db); - const QString trigger(qTableName("test_constraint", __FILE__)); + const QString trigger(qTableName("test_constraint", __FILE__, db)); QVERIFY_SQL(q, exec("CREATE TEMP TRIGGER "+trigger+" BEFORE DELETE ON "+qtest+ "\nFOR EACH ROW " @@ -3610,7 +3610,7 @@ void tst_QSqlQuery::sqlite_real() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - const QString tableName(qTableName("sqliterealtype", __FILE__)); + const QString tableName(qTableName("sqliterealtype", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); QSqlQuery q(db); @@ -3641,8 +3641,10 @@ void tst_QSqlQuery::aggregateFunctionTypes() // QPSQL uses LongLong for manipulation of integers if (db.driverName().startsWith("QPSQL") || db.driverName().startsWith("QMYSQL")) intType = QVariant::LongLong; + else if (db.driverName().startsWith("QOCI")) + intType = QVariant::Double; { - const QString tableName(qTableName("numericFunctionsWithIntValues", __FILE__)); + const QString tableName(qTableName("numericFunctionsWithIntValues", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); QSqlQuery q(db); @@ -3672,7 +3674,7 @@ void tst_QSqlQuery::aggregateFunctionTypes() QVERIFY_SQL(q, exec("SELECT AVG(id) FROM " + tableName)); QVERIFY(q.next()); if (db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QPSQL") - || (db.driverName().startsWith("QMYSQL"))) { + || db.driverName().startsWith("QMYSQL") || db.driverName().startsWith("QOCI")) { QCOMPARE(q.value(0).toDouble(), 1.5); QCOMPARE(q.record().field(0).type(), QVariant::Double); } else { @@ -3688,15 +3690,15 @@ void tst_QSqlQuery::aggregateFunctionTypes() QVERIFY_SQL(q, exec("SELECT MIN(id) FROM " + tableName)); QVERIFY(q.next()); QCOMPARE(q.value(0).toInt(), 1); - QCOMPARE(q.record().field(0).type(), QVariant::Int); + QCOMPARE(q.record().field(0).type(), intType); QVERIFY_SQL(q, exec("SELECT MAX(id) FROM " + tableName)); QVERIFY(q.next()); QCOMPARE(q.value(0).toInt(), 2); - QCOMPARE(q.record().field(0).type(), QVariant::Int); + QCOMPARE(q.record().field(0).type(), intType); } { - const QString tableName(qTableName("numericFunctionsWithDoubleValues", __FILE__)); + const QString tableName(qTableName("numericFunctionsWithDoubleValues", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); QSqlQuery q(db); @@ -3755,7 +3757,7 @@ void tst_QSqlQuery::aggregateFunctionTypes() } } { - const QString tableName(qTableName("stringFunctions", __FILE__)); + const QString tableName(qTableName("stringFunctions", __FILE__, db)); tst_Databases::safeDropTable( db, tableName ); QSqlQuery q(db); diff --git a/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp b/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp index a3fe47be69..1be74dc5fa 100644 --- a/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp +++ b/tests/auto/sql/kernel/qsqlthread/tst_qsqlthread.cpp @@ -53,7 +53,7 @@ #include <pthread.h> #endif -const QString qtest(qTableName("qtest", __FILE__)); +const QString qtest(qTableName("qtest", __FILE__, QSqlDatabase())); // set this define if Oracle is built with threading support //#define QOCI_THREADED @@ -303,7 +303,7 @@ void tst_QSqlThread::dropTestTables() QSqlDatabase db = QSqlDatabase::database(dbs.dbNames.at(i)); QSqlQuery q(db); - tst_Databases::safeDropTables(db, QStringList() << qtest << qTableName("qtest2", __FILE__) << qTableName("emptytable", __FILE__)); + tst_Databases::safeDropTables(db, QStringList() << qtest << qTableName("qtest2", __FILE__, db) << qTableName("emptytable", __FILE__, db)); } } @@ -316,10 +316,10 @@ void tst_QSqlThread::createTestTables() QVERIFY_SQL(q, exec("create table " + qtest + "(id int NOT NULL primary key, name varchar(20), title int)")); - QVERIFY_SQL(q, exec("create table " + qTableName("qtest2", __FILE__) + QVERIFY_SQL(q, exec("create table " + qTableName("qtest2", __FILE__, db) + "(id int NOT NULL primary key, title varchar(20))")); - QVERIFY_SQL(q, exec("create table " + qTableName("emptytable", __FILE__) + QVERIFY_SQL(q, exec("create table " + qTableName("emptytable", __FILE__, db) + "(id int NOT NULL primary key)")); } } @@ -335,9 +335,9 @@ void tst_QSqlThread::repopulateTestTables() QVERIFY_SQL(q, exec("insert into " + qtest + " values(2, 'trond', 2)")); QVERIFY_SQL(q, exec("insert into " + qtest + " values(3, 'vohi', 3)")); - QVERIFY_SQL(q, exec("delete from " + qTableName("qtest2", __FILE__))); - QVERIFY_SQL(q, exec("insert into " + qTableName("qtest2", __FILE__) + " values(1, 'herr')")); - QVERIFY_SQL(q, exec("insert into " + qTableName("qtest2", __FILE__) + " values(2, 'mister')")); + QVERIFY_SQL(q, exec("delete from " + qTableName("qtest2", __FILE__, db))); + QVERIFY_SQL(q, exec("insert into " + qTableName("qtest2", __FILE__, db) + " values(1, 'herr')")); + QVERIFY_SQL(q, exec("insert into " + qTableName("qtest2", __FILE__, db) + " values(2, 'mister')")); } } |