fix: column with reserved name in mysql
This commit is contained in:
parent
8b8a3c37a9
commit
62d89d7e22
|
|
@ -52,3 +52,5 @@ test/tst_json/tst_upgrades*
|
||||||
test/tst_phrases/tst_phrases*
|
test/tst_phrases/tst_phrases*
|
||||||
test/tst_quuid/tst_uuid*
|
test/tst_quuid/tst_uuid*
|
||||||
test/tst_upgrades/tst_upgrades*
|
test/tst_upgrades/tst_upgrades*
|
||||||
|
|
||||||
|
.idea
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ QString AbstractSqlGenerator::fieldDeclare(FieldModel *field)
|
||||||
if (type.isEmpty())
|
if (type.isEmpty())
|
||||||
return type;
|
return type;
|
||||||
|
|
||||||
QString ret = field->name + QStringLiteral(" ") + type;
|
QString ret = escaleFieldName(field->name) + QStringLiteral(" ") + type;
|
||||||
if (field->notNull)
|
if (field->notNull)
|
||||||
ret.append(QStringLiteral(" NOT NULL"));
|
ret.append(QStringLiteral(" NOT NULL"));
|
||||||
|
|
||||||
|
|
@ -157,6 +157,11 @@ QString AbstractSqlGenerator::fieldDeclare(FieldModel *field)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString AbstractSqlGenerator::escaleFieldName(const QString &fieldName) const
|
||||||
|
{
|
||||||
|
return fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
QStringList AbstractSqlGenerator::constraints(TableModel *table)
|
QStringList AbstractSqlGenerator::constraints(TableModel *table)
|
||||||
{
|
{
|
||||||
Q_UNUSED(table)
|
Q_UNUSED(table)
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ public:
|
||||||
//fields
|
//fields
|
||||||
virtual QString fieldType(FieldModel *field) = 0;
|
virtual QString fieldType(FieldModel *field) = 0;
|
||||||
virtual QString fieldDeclare(FieldModel *field);
|
virtual QString fieldDeclare(FieldModel *field);
|
||||||
|
virtual QString escaleFieldName(const QString &fieldName) const;
|
||||||
virtual QStringList constraints(TableModel *table);
|
virtual QStringList constraints(TableModel *table);
|
||||||
virtual QString escapeValue(const QVariant &v) const;
|
virtual QString escapeValue(const QVariant &v) const;
|
||||||
virtual QVariant unescapeValue(const QMetaType::Type &type, const QVariant &dbValue);
|
virtual QVariant unescapeValue(const QMetaType::Type &type, const QVariant &dbValue);
|
||||||
|
|
|
||||||
|
|
@ -356,4 +356,14 @@ void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString MySqlGenerator::primaryKeyConstraint(const TableModel *table) const
|
||||||
|
{
|
||||||
|
return QStringLiteral("PRIMARY KEY (%1)")
|
||||||
|
.arg(table->primaryKey());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString MySqlGenerator::escaleFieldName(const QString &fieldName) const
|
||||||
|
{
|
||||||
|
return "`" + fieldName + "`";
|
||||||
|
}
|
||||||
NUT_END_NAMESPACE
|
NUT_END_NAMESPACE
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ public:
|
||||||
// QString selectCommand(AgregateType t, QString agregateArg, QString tableName, QList<WherePhrase> &wheres, QList<WherePhrase> &orders, QList<RelationModel *> joins, int skip, int take);
|
// QString selectCommand(AgregateType t, QString agregateArg, QString tableName, QList<WherePhrase> &wheres, QList<WherePhrase> &orders, QList<RelationModel *> joins, int skip, int take);
|
||||||
QString createConditionalPhrase(const PhraseData *d) const override;
|
QString createConditionalPhrase(const PhraseData *d) const override;
|
||||||
void appendSkipTake(QString &sql, int skip, int take) override;
|
void appendSkipTake(QString &sql, int skip, int take) override;
|
||||||
|
QString primaryKeyConstraint(const TableModel *table) const override;
|
||||||
|
QString escaleFieldName(const QString &fieldName) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool readInsideParentese(QString &text, QString &out);
|
bool readInsideParentese(QString &text, QString &out);
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,18 @@
|
||||||
.arg(QString::fromUtf8(__func__))
|
.arg(QString::fromUtf8(__func__))
|
||||||
|
|
||||||
|
|
||||||
#define DRIVER QStringLiteral("QSQLITE")
|
/*#define DRIVER QStringLiteral("QSQLITE")
|
||||||
#define DATABASE QStringLiteral("nut_test_%1_db") \
|
|
||||||
.arg(QString::fromUtf8(metaObject()->className())).toLower()
|
|
||||||
#define HOST QString()
|
#define HOST QString()
|
||||||
#define USERNAME QString()
|
#define USERNAME QString()
|
||||||
#define PASSWORD QString()
|
#define PASSWORD QString()
|
||||||
|
*/
|
||||||
|
#define DRIVER QStringLiteral("QMYSQL")
|
||||||
|
#define HOST QStringLiteral("192.168.10.2")
|
||||||
|
#define USERNAME QStringLiteral("root")
|
||||||
|
#define PASSWORD QStringLiteral("lDexDJGvQwx20sfgtsetDSupmn9")
|
||||||
|
|
||||||
|
#define DATABASE QStringLiteral("nut_test_%1_db") \
|
||||||
|
.arg(QString::fromUtf8(metaObject()->className())).toLower()
|
||||||
|
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
# define OS "Linux"
|
# define OS "Linux"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue