diff --git a/parser/format.go b/parser/format.go index 50cb7b3..a2946a3 100644 --- a/parser/format.go +++ b/parser/format.go @@ -197,13 +197,17 @@ func (a *AlterRole) FormatSQL(formatter *Formatter) { formatter.WriteExpr(roleRenamePair) } if len(a.Settings) > 0 { - formatter.WriteString(" SETTINGS ") + formatter.Break() + formatter.WriteString("SETTINGS") + formatter.Indent() for i, setting := range a.Settings { if i > 0 { - formatter.WriteString(", ") + formatter.WriteString(",") } + formatter.Break() formatter.WriteExpr(setting) } + formatter.Dedent() } } @@ -986,13 +990,17 @@ func (c *CreateRole) FormatSQL(formatter *Formatter) { formatter.WriteExpr(c.AccessStorageType) } if len(c.Settings) > 0 { - formatter.WriteString(" SETTINGS ") + formatter.Break() + formatter.WriteString("SETTINGS") + formatter.Indent() for i, setting := range c.Settings { if i > 0 { - formatter.WriteString(", ") + formatter.WriteString(",") } + formatter.Break() formatter.WriteExpr(setting) } + formatter.Dedent() } } @@ -2192,13 +2200,13 @@ func (r *RoleRenamePair) FormatSQL(formatter *Formatter) { func (r *RoleSetting) FormatSQL(formatter *Formatter) { for i, settingPair := range r.SettingPairs { if i > 0 { - formatter.WriteByte(whitespace) + formatter.Break() } formatter.WriteExpr(settingPair) } if r.Modifier != nil { if len(r.SettingPairs) > 0 { - formatter.WriteByte(whitespace) + formatter.Break() } formatter.WriteExpr(r.Modifier) } diff --git a/parser/testdata/ddl/format/beautify/alter_role.sql b/parser/testdata/ddl/format/beautify/alter_role.sql index f6f25a2..f9fb67e 100644 --- a/parser/testdata/ddl/format/beautify/alter_role.sql +++ b/parser/testdata/ddl/format/beautify/alter_role.sql @@ -26,20 +26,62 @@ ALTER ROLE r2_01293@'%.myhost.com'; ALTER ROLE r1_01293; ALTER ROLE r1_01293 ON CLUSTER cluster_1 RENAME TO r2_01293; ALTER ROLE r1_01293 RENAME TO r2_01293, r3_01293 RENAME TO r4_01293; -ALTER ROLE r1_01293 SETTINGS NONE; -ALTER ROLE r2_01293 SETTINGS PROFILE 'default'; -ALTER ROLE r3_01293 SETTINGS max_memory_usage=5000000; -ALTER ROLE r4_01293 SETTINGS max_memory_usage MIN=5000000; -ALTER ROLE r5_01293 SETTINGS max_memory_usage MAX=5000000; -ALTER ROLE r6_01293 SETTINGS max_memory_usage CONST; -ALTER ROLE r7_01293 SETTINGS max_memory_usage WRITABLE; -ALTER ROLE r8_01293 SETTINGS max_memory_usage=5000000 MIN 4000000 MAX 6000000 CONST; -ALTER ROLE r9_01293 SETTINGS PROFILE 'default', max_memory_usage=5000000 WRITABLE; +ALTER ROLE r1_01293 +SETTINGS + NONE; +ALTER ROLE r2_01293 +SETTINGS + PROFILE 'default'; +ALTER ROLE r3_01293 +SETTINGS + max_memory_usage=5000000; +ALTER ROLE r4_01293 +SETTINGS + max_memory_usage + MIN=5000000; +ALTER ROLE r5_01293 +SETTINGS + max_memory_usage + MAX=5000000; +ALTER ROLE r6_01293 +SETTINGS + max_memory_usage + CONST; +ALTER ROLE r7_01293 +SETTINGS + max_memory_usage + WRITABLE; +ALTER ROLE r8_01293 +SETTINGS + max_memory_usage=5000000 + MIN 4000000 + MAX 6000000 + CONST; +ALTER ROLE r9_01293 +SETTINGS + PROFILE 'default', + max_memory_usage=5000000 + WRITABLE; ALTER ROLE r1_01293, r2_01293; -ALTER ROLE r1_01293 SETTINGS readonly=1; -ALTER ROLE r2_01293 SETTINGS PROFILE 'default'; -ALTER ROLE r3_01293 SETTINGS max_memory_usage=5000000 MIN 4000000 MAX 6000000 WRITABLE; -ALTER ROLE r4_01293 SETTINGS PROFILE 'default', max_memory_usage=5000000, readonly=1; -ALTER ROLE r5_01293 SETTINGS NONE; +ALTER ROLE r1_01293 +SETTINGS + readonly=1; +ALTER ROLE r2_01293 +SETTINGS + PROFILE 'default'; +ALTER ROLE r3_01293 +SETTINGS + max_memory_usage=5000000 + MIN 4000000 + MAX 6000000 + WRITABLE; +ALTER ROLE r4_01293 +SETTINGS + PROFILE 'default', + max_memory_usage=5000000, + readonly=1; +ALTER ROLE r5_01293 +SETTINGS + NONE; ALTER ROLE r1_01293@'%'; ALTER ROLE r2_01293@'%.myhost.com'; diff --git a/parser/testdata/ddl/format/beautify/create_role.sql b/parser/testdata/ddl/format/beautify/create_role.sql index fec03df..eb26195 100644 --- a/parser/testdata/ddl/format/beautify/create_role.sql +++ b/parser/testdata/ddl/format/beautify/create_role.sql @@ -30,20 +30,62 @@ CREATE ROLE r1_01293 ON CLUSTER cluster_1; CREATE ROLE r1_01293, r2_01293; CREATE ROLE r1_01293 ON CLUSTER cluster_1, r2_01293; CREATE ROLE r1_01293 ON CLUSTER cluster_1, r2_01293 ON CLUSTER cluster_2; -CREATE ROLE r1_01293 SETTINGS NONE; -CREATE ROLE r2_01293 SETTINGS PROFILE 'default'; -CREATE ROLE r3_01293 SETTINGS max_memory_usage=5000000; -CREATE ROLE r4_01293 SETTINGS max_memory_usage MIN=5000000; -CREATE ROLE r5_01293 SETTINGS max_memory_usage MAX=5000000; -CREATE ROLE r6_01293 SETTINGS max_memory_usage CONST; -CREATE ROLE r7_01293 SETTINGS max_memory_usage WRITABLE; -CREATE ROLE r8_01293 SETTINGS max_memory_usage=5000000 MIN 4000000 MAX 6000000 CONST; -CREATE ROLE r9_01293 SETTINGS PROFILE 'default', max_memory_usage=5000000 WRITABLE; +CREATE ROLE r1_01293 +SETTINGS + NONE; +CREATE ROLE r2_01293 +SETTINGS + PROFILE 'default'; +CREATE ROLE r3_01293 +SETTINGS + max_memory_usage=5000000; +CREATE ROLE r4_01293 +SETTINGS + max_memory_usage + MIN=5000000; +CREATE ROLE r5_01293 +SETTINGS + max_memory_usage + MAX=5000000; +CREATE ROLE r6_01293 +SETTINGS + max_memory_usage + CONST; +CREATE ROLE r7_01293 +SETTINGS + max_memory_usage + WRITABLE; +CREATE ROLE r8_01293 +SETTINGS + max_memory_usage=5000000 + MIN 4000000 + MAX 6000000 + CONST; +CREATE ROLE r9_01293 +SETTINGS + PROFILE 'default', + max_memory_usage=5000000 + WRITABLE; CREATE ROLE r1_01293, r2_01293; -CREATE ROLE r1_01293 SETTINGS readonly=1; -CREATE ROLE r2_01293 SETTINGS PROFILE 'default'; -CREATE ROLE r3_01293 SETTINGS max_memory_usage=5000000 MIN 4000000 MAX 6000000 WRITABLE; -CREATE ROLE r4_01293 SETTINGS PROFILE 'default', max_memory_usage=5000000, readonly=1; -CREATE ROLE r5_01293 SETTINGS NONE; +CREATE ROLE r1_01293 +SETTINGS + readonly=1; +CREATE ROLE r2_01293 +SETTINGS + PROFILE 'default'; +CREATE ROLE r3_01293 +SETTINGS + max_memory_usage=5000000 + MIN 4000000 + MAX 6000000 + WRITABLE; +CREATE ROLE r4_01293 +SETTINGS + PROFILE 'default', + max_memory_usage=5000000, + readonly=1; +CREATE ROLE r5_01293 +SETTINGS + NONE; CREATE ROLE r1_01293@'%'; CREATE ROLE r2_01293@'%.myhost.com';