diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-02-23 09:27:52 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-02-23 09:27:52 +0100 |
commit | efb46ea7ccf6fe8f89a8228bb5afe34c51901824 (patch) | |
tree | ea83ffeb690c735cbf2a9508e56a20ce2378fcc9 /src/plugins/sqldrivers | |
parent | cdc30acbdebdfb185df0a871537dd22411eae4f4 (diff) | |
parent | 5cfd5fd9d7ece7e1eb3c4d2be8ec342b376acf38 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I01dfc41e18333ac55954296cef8f01475adab27e
Diffstat (limited to 'src/plugins/sqldrivers')
-rw-r--r-- | src/plugins/sqldrivers/psql/qsql_psql.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp index 368b777ca5..f67c78b2bb 100644 --- a/src/plugins/sqldrivers/psql/qsql_psql.cpp +++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp @@ -817,19 +817,21 @@ QSqlRecord QPSQLResult::record() const else f.setName(QString::fromLocal8Bit(PQfname(d->result, i))); const int tableOid = PQftable(d->result, i); - auto &tableName = d->drv_d_func()->oidToTable[tableOid]; // WARNING: We cannot execute any other SQL queries on // the same db connection while forward-only mode is active // (this would discard all results of forward-only query). // So we just skip this... - if (tableName.isEmpty() && !isForwardOnly()) { - QSqlQuery qry(driver()->createResult()); - if (qry.exec(QStringLiteral("SELECT relname FROM pg_class WHERE pg_class.oid = %1") - .arg(tableOid)) && qry.next()) { - tableName = qry.value(0).toString(); + if (tableOid != InvalidOid && !isForwardOnly()) { + auto &tableName = d->drv_d_func()->oidToTable[tableOid]; + if (tableName.isEmpty()) { + QSqlQuery qry(driver()->createResult()); + if (qry.exec(QStringLiteral("SELECT relname FROM pg_class WHERE pg_class.oid = %1") + .arg(tableOid)) && qry.next()) { + tableName = qry.value(0).toString(); + } } + f.setTableName(tableName); } - f.setTableName(tableName); int ptype = PQftype(d->result, i); f.setType(qDecodePSQLType(ptype)); int len = PQfsize(d->result, i); |