diff options
Diffstat (limited to 'Plugins/SqlEnterpriseFormatter/formatexpr.cpp')
| -rw-r--r-- | Plugins/SqlEnterpriseFormatter/formatexpr.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Plugins/SqlEnterpriseFormatter/formatexpr.cpp b/Plugins/SqlEnterpriseFormatter/formatexpr.cpp index e79995f..53c7421 100644 --- a/Plugins/SqlEnterpriseFormatter/formatexpr.cpp +++ b/Plugins/SqlEnterpriseFormatter/formatexpr.cpp @@ -4,6 +4,7 @@ #include "parser/ast/sqlitecolumntype.h" #include "parser/ast/sqliteselect.h" #include "parser/ast/sqliteraise.h" +#include "parser/ast/sqlitefilterover.h" #include "sqlenterpriseformatter.h" QRegularExpression FormatExpr::WORD_ONLY_RE = QRegularExpression("^[a-zA-Z]+$"); @@ -82,6 +83,8 @@ void FormatExpr::formatInternal() withFuncId(expr->function).withParFuncLeft(); if (expr->distinctKw) withKeyword("DISTINCT"); + else if (expr->allKw) + withKeyword("ALL"); if (expr->star) withOperator("*").withParFuncRight(); @@ -90,6 +93,24 @@ void FormatExpr::formatInternal() break; } + case SqliteExpr::Mode::WINDOW_FUNCTION: + { + withFuncId(expr->function).withParFuncLeft(); + if (expr->distinctKw) + withKeyword("DISTINCT"); + else if (expr->allKw) + withKeyword("ALL"); + + if (expr->star) + withOperator("*").withParFuncRight(); + else + withStatementList(expr->exprList, "funcArgs", FormatStatement::ListSeparator::EXPR_COMMA).withParFuncRight(); + + if (expr->filterOver) + withStatement(expr->filterOver); + + break; + } case SqliteExpr::Mode::SUB_EXPR: withParExprLeft().withStatement(expr->expr1).withParExprRight(); break; |
