[
https://issues.apache.org/jira/browse/CALCITE-3526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17302665#comment-17302665
]
Wenrui Meng commented on CALCITE-3526:
--------------------------------------
[~julianhyde] I see. Thanks for your suggestion. We have some use cases that
only outputs the from clause node to the SQL string. In that case, it will
throw the exception. Maybe I can overwrite on our end if that's not a normal
use case for others.
> SqlPrettyWriter should have options to fold/chop long lines, print leading
> commas
> ---------------------------------------------------------------------------------
>
> Key: CALCITE-3526
> URL: https://issues.apache.org/jira/browse/CALCITE-3526
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Priority: Major
> Fix For: 1.22.0
>
>
> SqlPrettyWriter should have options to fold/chop long lines, print leading
> commas.
> In this change, we change how {{SqlPrettyWriter}} is configured: methods such
> as
> {{setIndentation}} are now deprecated, there is an immutable config object
> {{SqlWriterConfig}}, and the {{SqlDialect}} and {{boolean
> alwaysUseParentheses}} constructor arguments are also properties of the
> config. So, rather than
> {code}
> new SqlPrettyWriter(d, p).setIndentation(4)
> {code}
> you now write
> {code}
> new SqlPrettyWriter(
> SqlPrettyWriter.config()
> .withDialect(d)
> .withAlwaysUseParentheses(p)
> .withIndentation(4))
> {code}
> This change adds options to fold lists such as the SELECT clause: WIDE always
> puts items on the same line, TALL always puts items on separate lines, and
> FOLD and CHOP adapt. If the line is too long, FOLD fits as many items on a
> line as it can, whereas CHOP puts items onto separate lines. STEP is like
> WIDE but observes the {{clauseEndsLine}} property.
> You can set folding policy for each clause separately using
> {{withSelectFolding}}, {{withOrderByFolding}} etc., or set the default
> {{withFolding}}.
> A new property {{clauseEndsLine}} causes first SELECT item to be on a
> separate line than the SELECT keyword, and similarly other clauses.
> For all options, see
> [SqlWriterConfig|https://calcite.apache.org/apidocs/org/apache/calcite/sql/SqlWriterConfig.html].
> This changes also fixes CALCITE-1585; because config is held in an immutable
> object rather than the SqlPrettyWriter, {{reset()}} no longer resets settings
> such as {{alwaysUseParentheses}}.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)