@@ -126,6 +126,69 @@ describe('snowflake', () => {
126126 `SELECT SHA512(TRY_CAST(CONCAT("a", "b", "c") AS VARCHAR)) AS "Hashed" FROM v` ,
127127 ] ,
128128 } ,
129+ {
130+ title : 'cast to VARIANT type' ,
131+ sql : [
132+ `SELECT col::VARIANT AS variant_col FROM t` ,
133+ `SELECT "col"::VARIANT AS "variant_col" FROM t` ,
134+ ] ,
135+ } ,
136+ {
137+ title : 'cast to OBJECT type' ,
138+ sql : [
139+ `SELECT col::OBJECT AS object_col FROM t` ,
140+ `SELECT "col"::OBJECT AS "object_col" FROM t` ,
141+ ] ,
142+ } ,
143+ {
144+ title : 'cast to ARRAY type (untyped)' ,
145+ sql : [
146+ `SELECT col::ARRAY AS array_col FROM t` ,
147+ `SELECT "col"::ARRAY AS "array_col" FROM t` ,
148+ ] ,
149+ } ,
150+ {
151+ title : 'cast to ARRAY(TYPE) type (typed)' ,
152+ sql : [
153+ `SELECT col::ARRAY(VARCHAR) AS typed_array_col FROM t` ,
154+ `SELECT "col"::ARRAY(VARCHAR) AS "typed_array_col" FROM t` ,
155+ ] ,
156+ } ,
157+ {
158+ title : 'cast to ARRAY(NUMBER) type' ,
159+ sql : [
160+ `SELECT col::ARRAY(NUMBER) AS num_array FROM t` ,
161+ `SELECT "col"::ARRAY(NUMBER) AS "num_array" FROM t` ,
162+ ] ,
163+ } ,
164+ {
165+ title : 'cast to TIMESTAMP_LTZ type' ,
166+ sql : [
167+ `SELECT col::TIMESTAMP_LTZ AS ts_ltz FROM t` ,
168+ `SELECT "col"::TIMESTAMP_LTZ AS "ts_ltz" FROM t` ,
169+ ] ,
170+ } ,
171+ {
172+ title : 'CAST AS VARIANT' ,
173+ sql : [
174+ `SELECT CAST(col AS VARIANT) AS variant_col FROM t` ,
175+ `SELECT CAST("col" AS VARIANT) AS "variant_col" FROM t` ,
176+ ] ,
177+ } ,
178+ {
179+ title : 'CAST AS ARRAY' ,
180+ sql : [
181+ `SELECT CAST(col AS ARRAY) AS array_col FROM t` ,
182+ `SELECT CAST("col" AS ARRAY) AS "array_col" FROM t` ,
183+ ] ,
184+ } ,
185+ {
186+ title : 'CAST AS ARRAY(INTEGER)' ,
187+ sql : [
188+ `SELECT CAST(col AS ARRAY(INTEGER)) AS int_array_col FROM t` ,
189+ `SELECT CAST("col" AS ARRAY(INTEGER)) AS "int_array_col" FROM t` ,
190+ ] ,
191+ } ,
129192 {
130193 title : 'regexp operator' ,
131194 sql : [
0 commit comments