148 foreach (const QString &dbname, dbs.dbNames) { |
149 foreach (const QString &dbname, dbs.dbNames) { |
149 QSqlDatabase db=QSqlDatabase::database(dbname); |
150 QSqlDatabase db=QSqlDatabase::database(dbname); |
150 if (db.driverName().startsWith("QIBASE")) |
151 if (db.driverName().startsWith("QIBASE")) |
151 db.exec("SET DIALECT 3"); |
152 db.exec("SET DIALECT 3"); |
152 else if (tst_Databases::isSqlServer(db)) { |
153 else if (tst_Databases::isSqlServer(db)) { |
153 QSqlQuery q(db); |
154 db.exec("SET ANSI_DEFAULTS ON"); |
154 QVERIFY_SQL(q, exec("SET ANSI_DEFAULTS ON")); |
155 db.exec("SET IMPLICIT_TRANSACTIONS OFF"); |
155 QVERIFY_SQL(q, exec("SET IMPLICIT_TRANSACTIONS OFF")); |
|
156 } |
156 } |
|
157 else if(tst_Databases::isPostgreSQL(db)) |
|
158 db.exec("set client_min_messages='warning'"); |
157 recreateTestTables(db); |
159 recreateTestTables(db); |
158 } |
160 } |
159 } |
161 } |
160 |
162 |
161 void tst_QSqlRelationalTableModel::cleanupTestCase() |
163 void tst_QSqlRelationalTableModel::cleanupTestCase() |
179 << qTableName( "rel test6" ) |
181 << qTableName( "rel test6" ) |
180 << qTableName( "rel test7" ) |
182 << qTableName( "rel test7" ) |
181 << qTableName("CASETEST1" ) |
183 << qTableName("CASETEST1" ) |
182 << qTableName("casetest1" ); |
184 << qTableName("casetest1" ); |
183 tst_Databases::safeDropTables( db, tableNames ); |
185 tst_Databases::safeDropTables( db, tableNames ); |
|
186 |
|
187 db.exec("DROP SCHEMA "+qTableName("QTBUG_5373")+" CASCADE"); |
|
188 db.exec("DROP SCHEMA "+qTableName("QTBUG_5373_s2")+" CASCADE"); |
184 } |
189 } |
185 |
190 |
186 void tst_QSqlRelationalTableModel::init() |
191 void tst_QSqlRelationalTableModel::init() |
187 { |
192 { |
188 } |
193 } |
1116 QCOMPARE(model.data(model.index(3,2)).toString(), QString("herr")); |
1121 QCOMPARE(model.data(model.index(3,2)).toString(), QString("herr")); |
1117 |
1122 |
1118 } |
1123 } |
1119 } |
1124 } |
1120 |
1125 |
1121 void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() { |
1126 void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() |
1122 |
1127 { |
1123 QFETCH_GLOBAL(QString, dbName); |
1128 QFETCH_GLOBAL(QString, dbName); |
1124 QSqlDatabase db = QSqlDatabase::database(dbName); |
1129 QSqlDatabase db = QSqlDatabase::database(dbName); |
1125 CHECK_DATABASE(db); |
1130 CHECK_DATABASE(db); |
1126 |
1131 |
1127 if (!testWhiteSpaceNames(db.driverName())) |
1132 if (!testWhiteSpaceNames(db.driverName())) |
1191 QCOMPARE(model.data(model.index(0, 0)).toInt(), 4); |
1196 QCOMPARE(model.data(model.index(0, 0)).toInt(), 4); |
1192 QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York")); |
1197 QCOMPARE(model.data(model.index(0, 1)).toString(), QString("New York")); |
1193 QCOMPARE(model.data(model.index(0, 2)).toInt(), 6); |
1198 QCOMPARE(model.data(model.index(0, 2)).toInt(), 6); |
1194 } |
1199 } |
1195 |
1200 |
|
1201 void tst_QSqlRelationalTableModel::psqlSchemaTest() |
|
1202 { |
|
1203 QFETCH_GLOBAL(QString, dbName); |
|
1204 QSqlDatabase db = QSqlDatabase::database(dbName); |
|
1205 CHECK_DATABASE(db); |
|
1206 |
|
1207 if(!tst_Databases::isPostgreSQL(db)) { |
|
1208 QSKIP("Postgresql specific test", SkipSingle); |
|
1209 return; |
|
1210 } |
|
1211 QSqlRelationalTableModel model(0, db); |
|
1212 QSqlQuery q(db); |
|
1213 QVERIFY_SQL(q, exec("create schema "+qTableName("QTBUG_5373"))); |
|
1214 QVERIFY_SQL(q, exec("create schema "+qTableName("QTBUG_5373_s2"))); |
|
1215 QVERIFY_SQL(q, exec("create table "+qTableName("QTBUG_5373")+"."+qTableName("document")+"(document_id int primary key, relatingid int, userid int)")); |
|
1216 QVERIFY_SQL(q, exec("create table "+qTableName("QTBUG_5373_s2")+"."+qTableName("user")+"(userid int primary key, username char(40))")); |
|
1217 model.setTable(qTableName("QTBUG_5373")+"."+qTableName("document")); |
|
1218 model.setRelation(1, QSqlRelation(qTableName("QTBUG_5373_s2")+"."+qTableName("user"), "userid", "username")); |
|
1219 model.setRelation(2, QSqlRelation(qTableName("QTBUG_5373_s2")+"."+qTableName("user"), "userid", "username")); |
|
1220 QVERIFY_SQL(model, select()); |
|
1221 } |
|
1222 |
1196 QTEST_MAIN(tst_QSqlRelationalTableModel) |
1223 QTEST_MAIN(tst_QSqlRelationalTableModel) |
1197 #include "tst_qsqlrelationaltablemodel.moc" |
1224 #include "tst_qsqlrelationaltablemodel.moc" |