summaryrefslogtreecommitdiffstats
path: root/src/sql/models/qsqlrelationaltablemodel.cpp
diff options
context:
space:
mode:
authorAndy Shaw <[email protected]>2020-07-31 12:48:22 +0200
committerAndy Shaw <[email protected]>2020-08-11 22:13:13 +0200
commit295e98915d933970e56c65510b35f21e848f9af1 (patch)
tree3e7c61a90704d550c6d64cb780d357469d9e65ff /src/sql/models/qsqlrelationaltablemodel.cpp
parente790af0e0a030dea597bbc9489170b5ba1cf9e46 (diff)
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 <[email protected]>
Diffstat (limited to 'src/sql/models/qsqlrelationaltablemodel.cpp')
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp
index bdd82990d94..8c787eab0cb 100644
--- a/src/sql/models/qsqlrelationaltablemodel.cpp
+++ b/src/sql/models/qsqlrelationaltablemodel.cpp
@@ -590,8 +590,9 @@ QString QSqlRelationalTableModel::selectStatement() const
QString displayColumn = relation.displayColumn();
if (d->db.driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName))
displayColumn = d->db.driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName);
- const QString alias = QString::fromLatin1("%1_%2_%3")
+ QString alias = QString::fromLatin1("%1_%2_%3")
.arg(relTableName, displayColumn, QString::number(fieldNames.value(fieldList[i])));
+ alias.truncate(d->db.driver()->maximumIdentifierLength(QSqlDriver::FieldName));
displayTableField = Sql::as(displayTableField, alias);
--fieldNames[fieldList[i]];
}