1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#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;
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
|