QSqlDatabase: provide QString defaultConnectionName()

This avoids doing a conversion from 8-bit to UTF-16 and thus allocating
memory on the call to these functions.

Change-Id: Ibed5fc9ef19a21ea475efffdb978f45c1b9b3cc0
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
This commit is contained in:
Thiago Macieira 2025-01-21 17:03:35 -08:00
parent 16aae5a4b8
commit cf93005bb1
2 changed files with 13 additions and 8 deletions

View File

@ -38,6 +38,11 @@ struct QSqlDatabaseDefaultConnectionName
{
// separate class because of the static inline constexpr variable
static constexpr const char defaultConnection[] = "qt_sql_default_connection";
static QString defaultConnectionName() noexcept
{
using namespace Qt::StringLiterals;
return u"qt_sql_default_connection"_s;
}
};
class Q_SQL_EXPORT QSqlDatabase : public QSqlDatabaseDefaultConnectionName
@ -98,15 +103,15 @@ public:
#endif
static QSqlDatabase addDatabase(const QString& type,
const QString& connectionName = QLatin1StringView(defaultConnection));
const QString &connectionName = defaultConnectionName());
static QSqlDatabase addDatabase(QSqlDriver* driver,
const QString& connectionName = QLatin1StringView(defaultConnection));
static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString& connectionName);
static QSqlDatabase cloneDatabase(const QString &other, const QString& connectionName);
static QSqlDatabase database(const QString& connectionName = QLatin1StringView(defaultConnection),
const QString &connectionName = defaultConnectionName());
static QSqlDatabase cloneDatabase(const QSqlDatabase &other, const QString &connectionName);
static QSqlDatabase cloneDatabase(const QString &other, const QString &connectionName);
static QSqlDatabase database(const QString &connectionName = defaultConnectionName(),
bool open = true);
static void removeDatabase(const QString& connectionName);
static bool contains(const QString& connectionName = QLatin1StringView(defaultConnection));
static void removeDatabase(const QString &connectionName);
static bool contains(const QString &connectionName = defaultConnectionName());
static QStringList drivers();
static QStringList connectionNames();
static void registerSqlDriver(const QString &name, QSqlDriverCreatorBase *creator);

View File

@ -276,7 +276,7 @@ static void qInit(QSqlQuery *q, const QString& query, const QSqlDatabase &db)
QSqlDatabase database = db;
if (!database.isValid()) {
database =
QSqlDatabase::database(QLatin1StringView(QSqlDatabase::defaultConnection), false);
QSqlDatabase::database(QSqlDatabase::defaultConnectionName(), false);
}
if (database.isValid())
*q = QSqlQuery(database.driver()->createResult());