@@ -146,6 +146,7 @@ class Generator(metaclass=_Generator):
146146 exp .Except : lambda self , e : self .set_operations (e ),
147147 exp .ExternalProperty : lambda * _ : "EXTERNAL" ,
148148 exp .Floor : lambda self , e : self .ceil_floor (e ),
149+ exp .Get : lambda self , e : self .get_put_sql (e ),
149150 exp .GlobalProperty : lambda * _ : "GLOBAL" ,
150151 exp .HeapProperty : lambda * _ : "HEAP" ,
151152 exp .IcebergProperty : lambda * _ : "ICEBERG" ,
@@ -175,6 +176,7 @@ class Generator(metaclass=_Generator):
175176 exp .PivotAny : lambda self , e : f"ANY{ self .sql (e , 'this' )} " ,
176177 exp .ProjectionPolicyColumnConstraint : lambda self ,
177178 e : f"PROJECTION POLICY { self .sql (e , 'this' )} " ,
179+ exp .Put : lambda self , e : self .get_put_sql (e ),
178180 exp .RemoteWithConnectionModelProperty : lambda self ,
179181 e : f"REMOTE WITH CONNECTION { self .sql (e , 'this' )} " ,
180182 exp .ReturnsProperty : lambda self , e : (
@@ -4903,9 +4905,16 @@ def show_sql(self, expression: exp.Show) -> str:
49034905 self .unsupported ("Unsupported SHOW statement" )
49044906 return ""
49054907
4906- def put_sql (self , expression : exp .Put ) -> str :
4908+ def get_put_sql (self , expression : exp .Put | exp .Get ) -> str :
4909+ # Snowflake GET/PUT statements:
4910+ # PUT <file> <internalStage> <properties>
4911+ # GET <internalStage> <file> <properties>
49074912 props = expression .args .get ("properties" )
49084913 props_sql = self .properties (props , prefix = " " , sep = " " , wrapped = False ) if props else ""
49094914 this = self .sql (expression , "this" )
49104915 target = self .sql (expression , "target" )
4911- return f"PUT { this } { target } { props_sql } "
4916+
4917+ if isinstance (expression , exp .Put ):
4918+ return f"PUT { this } { target } { props_sql } "
4919+ else :
4920+ return f"GET { target } { this } { props_sql } "
0 commit comments