@@ -36,14 +36,15 @@ describe('SnowflakeFormatter', () => {
36
36
supportsAlterTable ( format , {
37
37
addColumn : true ,
38
38
dropColumn : true ,
39
+ modify : true ,
39
40
renameTo : true ,
40
41
renameColumn : true ,
41
42
} ) ;
42
43
supportsDeleteFrom ( format ) ;
43
- supportsInsertInto ( format , { withOverwrite : true } ) ;
44
+ supportsInsertInto ( format ) ;
44
45
supportsUpdate ( format ) ;
45
- supportsTruncateTable ( format , { withoutTable : true , ifExists : true } ) ;
46
- supportsStrings ( format , [ '$$' , "''-bs" , "''-qq" ] ) ;
46
+ supportsTruncateTable ( format , { withoutTable : true } ) ;
47
+ supportsStrings ( format , [ "''-bs" , "''-qq" ] ) ;
47
48
supportsIdentifiers ( format , [ `""-qq` ] ) ;
48
49
supportsBetween ( format ) ;
49
50
// ':' and '::' are tested later, since they should always be dense
@@ -80,4 +81,102 @@ describe('SnowflakeFormatter', () => {
80
81
2::numeric AS foo;
81
82
` ) ;
82
83
} ) ;
84
+
85
+ it ( 'supports $$-quoted strings' , ( ) => {
86
+ expect ( format ( `SELECT $$foo' JOIN"$bar$$, $$foo$$$$bar$$` ) ) . toBe ( dedent `
87
+ SELECT
88
+ $$foo' JOIN"$bar$$,
89
+ $$foo$$ $$bar$$
90
+ ` ) ;
91
+ } ) ;
92
+
93
+ it ( 'formats ALTER TABLE ... ALTER COLUMN' , ( ) => {
94
+ expect (
95
+ format (
96
+ `ALTER TABLE t ALTER COLUMN foo SET DATA TYPE VARCHAR;
97
+ ALTER TABLE t ALTER COLUMN foo SET DEFAULT 5;
98
+ ALTER TABLE t ALTER COLUMN foo DROP DEFAULT;
99
+ ALTER TABLE t ALTER COLUMN foo SET NOT NULL;
100
+ ALTER TABLE t ALTER COLUMN foo DROP NOT NULL;
101
+ ALTER TABLE t ALTER COLUMN foo COMMENT 'blah';
102
+ ALTER TABLE t ALTER COLUMN foo UNSET COMMENT;
103
+ ALTER TABLE t ALTER COLUMN foo SET MASKING POLICY polis;
104
+ ALTER TABLE t ALTER COLUMN foo UNSET MASKING POLICY;
105
+ ALTER TABLE t ALTER COLUMN foo SET TAG tname = 10;
106
+ ALTER TABLE t ALTER COLUMN foo UNSET TAG tname;`
107
+ )
108
+ ) . toBe ( dedent `
109
+ ALTER TABLE
110
+ t
111
+ ALTER COLUMN
112
+ foo
113
+ SET DATA TYPE
114
+ VARCHAR;
115
+
116
+ ALTER TABLE
117
+ t
118
+ ALTER COLUMN
119
+ foo
120
+ SET DEFAULT
121
+ 5;
122
+
123
+ ALTER TABLE
124
+ t
125
+ ALTER COLUMN
126
+ foo
127
+ DROP DEFAULT;
128
+
129
+ ALTER TABLE
130
+ t
131
+ ALTER COLUMN
132
+ foo
133
+ SET NOT NULL;
134
+
135
+ ALTER TABLE
136
+ t
137
+ ALTER COLUMN
138
+ foo
139
+ DROP NOT NULL;
140
+
141
+ ALTER TABLE
142
+ t
143
+ ALTER COLUMN
144
+ foo
145
+ COMMENT
146
+ 'blah';
147
+
148
+ ALTER TABLE
149
+ t
150
+ ALTER COLUMN
151
+ foo
152
+ UNSET COMMENT;
153
+
154
+ ALTER TABLE
155
+ t
156
+ ALTER COLUMN
157
+ foo
158
+ SET MASKING POLICY
159
+ polis;
160
+
161
+ ALTER TABLE
162
+ t
163
+ ALTER COLUMN
164
+ foo
165
+ UNSET MASKING POLICY;
166
+
167
+ ALTER TABLE
168
+ t
169
+ ALTER COLUMN
170
+ foo
171
+ SET TAG
172
+ tname = 10;
173
+
174
+ ALTER TABLE
175
+ t
176
+ ALTER COLUMN
177
+ foo
178
+ UNSET TAG
179
+ tname;
180
+ ` ) ;
181
+ } ) ;
83
182
} ) ;
0 commit comments