summaryrefslogtreecommitdiffstats
path: root/tests/auto/sql/kernel
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2023-03-12 14:50:05 +0100
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2023-03-17 20:33:16 +0100
commit1981ebe8ada68f600ecb10d9e9b7270cf9e19866 (patch)
treedf0f563b03004e737ae3865dae137a450092fab6 /tests/auto/sql/kernel
parentf49f3f2f942e98a44277eea09fa2e985b8b2924a (diff)
SQL/OCI: add maximumIdentifierLength()
A table name or identifier must not be longer than 30 (< Oracle 12.2) or 128 bytes (sadly not characters). Change-Id: I49192afaf908e12f5cfd20c754640b6117b03a71 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/sql/kernel')
-rw-r--r--tests/auto/sql/kernel/qsqldatabase/tst_databases.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
index 0694186942..02aa0e6ba2 100644
--- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
+++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
@@ -45,16 +45,13 @@ static QString qGetHostName()
return hostname;
}
-inline QString fixupTableName(const QString &tableName, QSqlDatabase db)
+inline QString fixupTableName(const QString &tableName, const QSqlDatabase &db)
{
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 == QSqlDriver::Oracle)
- tbName.truncate(30);
- // On Interbase we are limited to 31 character tablenames
- if (d && d->dbmsType == QSqlDriver::Interbase)
- tbName.truncate(31);
+ // Oracle & Interbase/Firebird have a limit on the tablename length
+ QSqlDriver *drv = db.driver();
+ if (drv)
+ tbName.truncate(drv->maximumIdentifierLength(QSqlDriver::TableName));
return tbName;
}