aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/viewmodifier.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/coreSQLiteStudio/viewmodifier.h
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/viewmodifier.h')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/viewmodifier.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/viewmodifier.h b/SQLiteStudio3/coreSQLiteStudio/viewmodifier.h
new file mode 100644
index 0000000..6d7c770
--- /dev/null
+++ b/SQLiteStudio3/coreSQLiteStudio/viewmodifier.h
@@ -0,0 +1,53 @@
+#ifndef VIEWMODIFIER_H
+#define VIEWMODIFIER_H
+
+#include "db/db.h"
+#include "parser/ast/sqlitecreateview.h"
+#include "parser/ast/sqlitecreatetrigger.h"
+#include <QString>
+
+class API_EXPORT ViewModifier
+{
+ public:
+ ViewModifier(Db* db, const QString& view);
+ ViewModifier(Db* db, const QString& database, const QString& view);
+
+ void alterView(const QString& newView);
+ void alterView(SqliteCreateViewPtr newView);
+
+ QStringList generateSqls() const;
+ QList<bool> getMandatoryFlags() const;
+ QStringList getWarnings() const;
+ QStringList getErrors() const;
+ bool hasMessages() const;
+
+ private:
+ void handleTriggers();
+ void collectNewColumns();
+ void addMandatorySql(const QString& sql);
+ void addOptionalSql(const QString& sql);
+ bool handleNewColumns(SqliteCreateTriggerPtr trigger);
+
+ Db* db = nullptr;
+ Dialect dialect;
+ QString database;
+ QString view;
+
+ /**
+ * @brief sqls Statements to be executed to make changes real.
+ */
+ QStringList sqls;
+ QList<bool> sqlMandatoryFlags;
+
+ QStringList warnings;
+ QStringList errors;
+
+ /**
+ * @brief createView Original DDL.
+ */
+ SqliteCreateViewPtr createView;
+
+ QStringList newColumns;
+};
+
+#endif // VIEWMODIFIER_H