@@ -132,7 +132,7 @@ pub enum DateTimeField {
132132 YearOfWeekIso ,
133133 Quarter ,
134134 Month ,
135- Week ,
135+ Week ( Option < String > ) ,
136136 WeekIso ,
137137 Day ,
138138 DayOfWeek ,
@@ -142,6 +142,8 @@ pub enum DateTimeField {
142142 Minute ,
143143 Second ,
144144 Epoch ,
145+ // https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#extract_2
146+ Other ( & ' static str ) ,
145147 Literal ( String ) ,
146148}
147149
@@ -153,7 +155,8 @@ impl fmt::Display for DateTimeField {
153155 DateTimeField :: YearOfWeekIso => "YEAROFWEEKISO" ,
154156 DateTimeField :: Quarter => "QUARTER" ,
155157 DateTimeField :: Month => "MONTH" ,
156- DateTimeField :: Week => "WEEK" ,
158+ DateTimeField :: Week ( None ) => "WEEK" ,
159+ DateTimeField :: Week ( Some ( ref weekday) ) => return write ! ( f, "WEEK({})" , weekday) ,
157160 DateTimeField :: WeekIso => "WEEKISO" ,
158161 DateTimeField :: Day => "DAY" ,
159162 DateTimeField :: DayOfWeek => "DAYOFWEEK" ,
@@ -163,6 +166,7 @@ impl fmt::Display for DateTimeField {
163166 DateTimeField :: Minute => "MINUTE" ,
164167 DateTimeField :: Second => "SECOND" ,
165168 DateTimeField :: Epoch => "EPOCH" ,
169+ DateTimeField :: Other ( s) => return write ! ( f, "{}" , s) ,
166170 DateTimeField :: Literal ( ref s) => return write ! ( f, "'{}'" , s) ,
167171 } )
168172 }
0 commit comments