From 295e98915d933970e56c65510b35f21e848f9af1 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Fri, 31 Jul 2020 12:48:22 +0200 Subject: Introduce maximumIdentifierLength to return database limits for names Since Interbase/Firebird has a limit for column and table names then this function can be used by QSqlRelationalTableModel to make sure that the aliases created are within that limit. Change-Id: I0cb1c65b34befcb3690ccad3f081556dd2691344 Reviewed-by: Volker Hilsheimer --- src/sql/kernel/qsqldriver.cpp | 15 +++++++++++++++ src/sql/kernel/qsqldriver.h | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/sql/kernel') diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp index 8753352617..02371a209b 100644 --- a/src/sql/kernel/qsqldriver.cpp +++ b/src/sql/kernel/qsqldriver.cpp @@ -46,6 +46,8 @@ #include "private/qobject_p.h" #include "private/qsqldriver_p.h" +#include + QT_BEGIN_NAMESPACE static QString prepareIdentifier(const QString &identifier, @@ -829,4 +831,17 @@ bool QSqlDriver::cancelQuery() return false; } +/*! + \since 6.0 + + Returns the maximum length for the identifier \a type according to the database settings. Returns + INT_MAX by default if the is no maximum for the database. +*/ + +int QSqlDriver::maximumIdentifierLength(QSqlDriver::IdentifierType type) const +{ + Q_UNUSED(type); + return INT_MAX; +} + QT_END_NAMESPACE diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h index 31de63be15..361a11bec3 100644 --- a/src/sql/kernel/qsqldriver.h +++ b/src/sql/kernel/qsqldriver.h @@ -130,7 +130,7 @@ public: QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const; DbmsType dbmsType() const; - + virtual int maximumIdentifierLength(IdentifierType type) const; public Q_SLOTS: virtual bool cancelQuery(); -- cgit v1.2.3