1 #ifndef SQLITEORDERBY_H 2 #define SQLITEORDERBY_H 3 4 #include "sqlitestatement.h" 5 #include "sqlitesortorder.h" 6 #include "sqlitenulls.h" 7 #include "sqliteextendedindexedcolumn.h" 8 9 class SqliteExpr; 10 11 class API_EXPORT SqliteOrderBy : public SqliteStatement, public SqliteExtendedIndexedColumn 12 { 13 public: 14 SqliteOrderBy(); 15 SqliteOrderBy(const SqliteOrderBy& other); 16 SqliteOrderBy(SqliteExpr* expr, SqliteSortOrder order, SqliteNulls nulls); 17 ~SqliteOrderBy(); 18 19 SqliteStatement* clone(); 20 bool isSimpleColumn() const; 21 QString getColumnName() const; 22 QString getCollation() const; 23 QString getColumnString() const; 24 void setColumnName(const QString& name); 25 void setCollation(const QString& name); 26 void clearCollation(); 27 28 SqliteExpr* expr = nullptr; 29 SqliteSortOrder order = SqliteSortOrder::null; 30 SqliteNulls nulls = SqliteNulls::null; 31 32 protected: 33 TokenList rebuildTokensFromContents(); 34 void evaluatePostParsing(); 35 36 private: 37 void pullLastCollationAsOuterExpr(); 38 }; 39 40 typedef QSharedPointer<SqliteOrderBy> SqliteOrderByPtr; 41 42 #endif // SQLITEORDERBY_H 43