Fixed QTBUG-11935 : "With MySQL version > 50000 the QMYSQLDriver::
authorEmmanuel BOURGERIE <manu.dwarf@gmail.com>
Wed, 27 Apr 2011 04:04:02 +0000 (14:04 +1000)
committerOlivier Goffart <olivier.goffart@nokia.com>
Tue, 10 May 2011 10:54:49 +0000 (12:54 +0200)
tables() returns tables in all databases on the server"

This bugfix has been rewritten to match contributors advise.

Change-Id: I3a9cf900ff7eae47c9ffdbcf34bcb1b4396d9837
Merge-request: 1010
Reviewed-by: Charles Yin <charles.yin@nokia.com>
(cherry picked from commit c0ca29efdeb442a6b88ccadff409e3f7ef828ce8)

src/sql/drivers/mysql/qsql_mysql.cpp

index 37c3055..4250b61 100644 (file)
@@ -1374,16 +1374,16 @@ QStringList QMYSQLDriver::tables(QSql::TableType type) const
     } else {
         QSqlQuery q(createResult());
         if(type & QSql::Tables) {
-            QString sql = QLatin1String("select table_name from information_schema.tables where table_schema = ':schema' and table_type = 'BASE TABLE'");
-            sql.replace(QLatin1String(":schema"), QLatin1String(d->mysql->db));
+            QString sql = QLatin1String("select table_name from information_schema.tables where table_schema = '") + QLatin1String(d->mysql->db) + QLatin1String("' and table_type = 'BASE TABLE'");
             q.exec(sql);
+            
             while(q.next())
                 tl.append(q.value(0).toString());
         }
         if(type & QSql::Views) {
-            QString sql = QLatin1String("select table_name from information_schema.tables where table_schema = ':schema' and table_type = 'VIEW'");
-            sql.replace(QLatin1String(":schema"), QLatin1String(d->mysql->db));
+            QString sql = QLatin1String("select table_name from information_schema.tables where table_schema = '") + QLatin1String(d->mysql->db) + QLatin1String("' and table_type = 'VIEW'");
             q.exec(sql);
+            
             while(q.next())
                 tl.append(q.value(0).toString());
         }