From a308f430f694423064ebc86fd0506c8c6fdb3d93 Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 19 Apr 2015 22:30:21 -0400 Subject: Imported Upstream version 3.0.5 --- SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp | 4 ++-- SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h | 9 +++++++-- SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp | 7 ++++--- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'SQLiteStudio3/coreSQLiteStudio/parser') diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp index 454c0e3..d21578e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.cpp @@ -640,8 +640,8 @@ SqliteCreateTable::Column::Column(const QString &name, SqliteColumnType *type, c this->constraints.last()->type != SqliteCreateTable::Column::Constraint::NAME_ONLY) { SqliteCreateTable::Column::Constraint* last = this->constraints.last(); - last->deferrable = constr->deferrable; - last->initially = constr->initially; + last->foreignKey->deferrable = constr->deferrable; + last->foreignKey->initially = constr->initially; delete constr; // We don't want deleted constr to be added to list. We finish this now. diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h index f3be244..877d0fa 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitecreatetable.h @@ -21,6 +21,8 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery public: class API_EXPORT Constraint : public SqliteStatement { + friend class Column; + public: enum Type { @@ -70,11 +72,14 @@ class API_EXPORT SqliteCreateTable : public SqliteQuery QString id; QString collationName = QString::null; SqliteForeignKey* foreignKey = nullptr; - SqliteDeferrable deferrable = SqliteDeferrable::null; - SqliteInitially initially = SqliteInitially::null; protected: TokenList rebuildTokensFromContents(); + + private: + SqliteDeferrable deferrable = SqliteDeferrable::null; // only a temporary field for parse time, before merging with actual FK + SqliteInitially initially = SqliteInitially::null; // only a temporary field for parse time, before merging with actual FK + }; typedef QSharedPointer ConstraintPtr; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp index 1429cef..12adf80 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqliteexpr.cpp @@ -65,11 +65,12 @@ QString SqliteExpr::likeOp(SqliteExpr::LikeOp value) SqliteExpr::NotNull SqliteExpr::notNullOp(const QString &value) { - if (value == "ISNULL") + QString upper = value.toUpper(); + if (upper == "ISNULL") return SqliteExpr::NotNull::ISNULL; - else if (value == "NOTNULL") + else if (upper == "NOTNULL") return SqliteExpr::NotNull::NOTNULL; - else if (value == "NOT NULL") + else if (upper == "NOT NULL") return SqliteExpr::NotNull::NOT_NULL; else return SqliteExpr::NotNull::null; -- cgit v1.2.3