diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java index ec6d6e08cd..ad006a9b9a 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java @@ -1212,6 +1212,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS public boolean visit(ModelClause x) { print("MODEL"); + incrementIndent(); for (CellReferenceOption opt : x.getCellReferenceOptions()) { print(' '); print(opt.name); @@ -1228,6 +1229,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } x.getMainModel().accept(this); + decrementIndent(); return false; } diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java index 053564f1a7..b450423acc 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleAnyTest.java @@ -15,8 +15,8 @@ public class OracleAnyTest extends TestCase { + "ORDER BY country, prod, year;"; String expect = "SELECT country, prod, YEAR, s\n" + "FROM sales_view\n" + "MODEL\n" - + "PARTITION BY (country)\n" + "DIMENSION BY (prod, YEAR)\n" + "MEASURES (sale s)\n" - + "IGNORE NAV\n" + "UNIQUE DIMENSION\n" + "RULES UPSERT SEQUENTIAL ORDER (s[ANY, 2000] = 0)\n" + + "\tPARTITION BY (country)\n" + "\tDIMENSION BY (prod, YEAR)\n" + "\tMEASURES (sale s)\n" + + "\tIGNORE NAV\n" + "\tUNIQUE DIMENSION\n" + "\tRULES UPSERT SEQUENTIAL ORDER (s[ANY, 2000] = 0)\n" + "ORDER BY country, prod, YEAR;\n"; OracleStatementParser parser = new OracleStatementParser(sql);