@@ -521,10 +521,13 @@ impl TableFunctionImpl for GenerateSeriesFuncImpl {
521521}
522522
523523impl GenerateSeriesFuncImpl {
524- fn call_int64 ( & self , exprs : & [ Expr ] ) -> Result < Arc < dyn TableProvider > > {
524+ fn call_int64 (
525+ & self ,
526+ exprs : & [ ( Expr , Option < String > ) ] ,
527+ ) -> Result < Arc < dyn TableProvider > > {
525528 let mut normalize_args = Vec :: new ( ) ;
526- for ( expr_index, expr, _ ) in exprs. iter ( ) . enumerate ( ) {
527- match expr {
529+ for ( expr_index, expr) in exprs. iter ( ) . enumerate ( ) {
530+ match & expr. 0 {
528531 Expr :: Literal ( ScalarValue :: Null , _) => { }
529532 Expr :: Literal ( ScalarValue :: Int64 ( Some ( n) ) , _) => normalize_args. push ( * n) ,
530533 other => {
@@ -584,7 +587,10 @@ impl GenerateSeriesFuncImpl {
584587 } ) )
585588 }
586589
587- fn call_timestamp ( & self , exprs : & [ Expr ] ) -> Result < Arc < dyn TableProvider > > {
590+ fn call_timestamp (
591+ & self ,
592+ exprs : & [ ( Expr , Option < String > ) ] ,
593+ ) -> Result < Arc < dyn TableProvider > > {
588594 if exprs. len ( ) != 3 {
589595 return plan_err ! (
590596 "{} function with timestamps requires exactly 3 arguments" ,
@@ -593,7 +599,7 @@ impl GenerateSeriesFuncImpl {
593599 }
594600
595601 // Parse start timestamp
596- let ( start_ts, tz) = match & exprs[ 0 ] {
602+ let ( start_ts, tz) = match & exprs[ 0 ] . 0 {
597603 Expr :: Literal ( ScalarValue :: TimestampNanosecond ( ts, tz) , _) => {
598604 ( * ts, tz. clone ( ) )
599605 }
@@ -606,7 +612,7 @@ impl GenerateSeriesFuncImpl {
606612 } ;
607613
608614 // Parse end timestamp
609- let end_ts = match & exprs[ 1 ] {
615+ let end_ts = match & exprs[ 1 ] . 0 {
610616 Expr :: Literal ( ScalarValue :: Null , _) => None ,
611617 Expr :: Literal ( ScalarValue :: TimestampNanosecond ( ts, _) , _) => * ts,
612618 other => {
@@ -618,7 +624,7 @@ impl GenerateSeriesFuncImpl {
618624 } ;
619625
620626 // Parse step interval
621- let step_interval = match & exprs[ 2 ] {
627+ let step_interval = match & exprs[ 2 ] . 0 {
622628 Expr :: Literal ( ScalarValue :: Null , _) => None ,
623629 Expr :: Literal ( ScalarValue :: IntervalMonthDayNano ( interval) , _) => * interval,
624630 other => {
@@ -660,7 +666,10 @@ impl GenerateSeriesFuncImpl {
660666 } ) )
661667 }
662668
663- fn call_date ( & self , exprs : & [ Expr ] ) -> Result < Arc < dyn TableProvider > > {
669+ fn call_date (
670+ & self ,
671+ exprs : & [ ( Expr , Option < String > ) ] ,
672+ ) -> Result < Arc < dyn TableProvider > > {
664673 if exprs. len ( ) != 3 {
665674 return plan_err ! (
666675 "{} function with dates requires exactly 3 arguments" ,
@@ -675,7 +684,7 @@ impl GenerateSeriesFuncImpl {
675684 ) ] ) ) ;
676685
677686 // Parse start date
678- let start_date = match & exprs[ 0 ] {
687+ let start_date = match & exprs[ 0 ] . 0 {
679688 Expr :: Literal ( ScalarValue :: Date32 ( Some ( date) ) , _) => * date,
680689 Expr :: Literal ( ScalarValue :: Date32 ( None ) , _)
681690 | Expr :: Literal ( ScalarValue :: Null , _) => {
@@ -693,7 +702,7 @@ impl GenerateSeriesFuncImpl {
693702 } ;
694703
695704 // Parse end date
696- let end_date = match & exprs[ 1 ] {
705+ let end_date = match & exprs[ 1 ] . 0 {
697706 Expr :: Literal ( ScalarValue :: Date32 ( Some ( date) ) , _) => * date,
698707 Expr :: Literal ( ScalarValue :: Date32 ( None ) , _)
699708 | Expr :: Literal ( ScalarValue :: Null , _) => {
@@ -711,7 +720,7 @@ impl GenerateSeriesFuncImpl {
711720 } ;
712721
713722 // Parse step interval
714- let step_interval = match & exprs[ 2 ] {
723+ let step_interval = match & exprs[ 2 ] . 0 {
715724 Expr :: Literal ( ScalarValue :: IntervalMonthDayNano ( Some ( interval) ) , _) => {
716725 * interval
717726 }
0 commit comments