@@ -55,7 +55,7 @@ def cast_to(self, to):
55
55
@dataclass
56
56
class Code (ExprNode , Root ):
57
57
code : str
58
- args : Dict [str , Expr ] = None
58
+ args : Optional [ Dict [str , Expr ] ] = None
59
59
60
60
61
61
def _expr_type (e : Expr ) -> type :
@@ -216,7 +216,7 @@ def intersect(self, other: "ITable"):
216
216
@dataclass
217
217
class Concat (ExprNode ):
218
218
exprs : list
219
- sep : str = None
219
+ sep : Optional [ str ] = None
220
220
221
221
222
222
@dataclass
@@ -293,7 +293,7 @@ class WhenThen(ExprNode):
293
293
@dataclass
294
294
class CaseWhen (ExprNode ):
295
295
cases : Sequence [WhenThen ]
296
- else_expr : Expr = None
296
+ else_expr : Optional [ Expr ] = None
297
297
298
298
@property
299
299
def type (self ):
@@ -491,9 +491,9 @@ def schema(self) -> Schema:
491
491
@dataclass
492
492
class Join (ExprNode , ITable , Root ):
493
493
source_tables : Sequence [ITable ]
494
- op : str = None
495
- on_exprs : Sequence [Expr ] = None
496
- columns : Sequence [Expr ] = None
494
+ op : Optional [ str ] = None
495
+ on_exprs : Optional [ Sequence [Expr ] ] = None
496
+ columns : Optional [ Sequence [Expr ] ] = None
497
497
498
498
@property
499
499
def schema (self ) -> Schema :
@@ -534,9 +534,9 @@ def select(self, *exprs, **named_exprs) -> Union[Self, ITable]:
534
534
@dataclass
535
535
class GroupBy (ExprNode , ITable , Root ):
536
536
table : ITable
537
- keys : Sequence [Expr ] = None # IKey?
538
- values : Sequence [Expr ] = None
539
- having_exprs : Sequence [Expr ] = None
537
+ keys : Optional [ Sequence [Expr ] ] = None # IKey?
538
+ values : Optional [ Sequence [Expr ] ] = None
539
+ having_exprs : Optional [ Sequence [Expr ] ] = None
540
540
541
541
def __post_init__ (self ):
542
542
assert self .keys or self .values
@@ -580,15 +580,15 @@ def schema(self) -> Schema:
580
580
581
581
@dataclass
582
582
class Select (ExprNode , ITable , Root ):
583
- table : Expr = None
584
- columns : Sequence [Expr ] = None
585
- where_exprs : Sequence [Expr ] = None
586
- order_by_exprs : Sequence [Expr ] = None
587
- group_by_exprs : Sequence [Expr ] = None
588
- having_exprs : Sequence [Expr ] = None
589
- limit_expr : int = None
583
+ table : Optional [ Expr ] = None
584
+ columns : Optional [ Sequence [Expr ] ] = None
585
+ where_exprs : Optional [ Sequence [Expr ] ] = None
586
+ order_by_exprs : Optional [ Sequence [Expr ] ] = None
587
+ group_by_exprs : Optional [ Sequence [Expr ] ] = None
588
+ having_exprs : Optional [ Sequence [Expr ] ] = None
589
+ limit_expr : Optional [ int ] = None
590
590
distinct : bool = False
591
- optimizer_hints : Sequence [Expr ] = None
591
+ optimizer_hints : Optional [ Sequence [Expr ] ] = None
592
592
593
593
@property
594
594
def schema (self ) -> Schema :
@@ -636,8 +636,8 @@ def make(cls, table: ITable, distinct: bool = SKIP, optimizer_hints: str = SKIP,
636
636
@dataclass
637
637
class Cte (ExprNode , ITable ):
638
638
table : Expr
639
- name : str = None
640
- params : Sequence [str ] = None
639
+ name : Optional [ str ] = None
640
+ params : Optional [ Sequence [str ] ] = None
641
641
642
642
@property
643
643
def source_table (self ) -> "ITable" :
@@ -667,7 +667,7 @@ def resolve_names(source_table, exprs):
667
667
@dataclass (frozen = False , eq = False , order = False )
668
668
class _ResolveColumn (ExprNode , LazyOps ):
669
669
resolve_name : str
670
- resolved : Expr = None
670
+ resolved : Optional [ Expr ] = None
671
671
672
672
def resolve (self , expr : Expr ):
673
673
if self .resolved is not None :
@@ -750,9 +750,9 @@ def type(self) -> Optional[type]:
750
750
class TimeTravel (ITable ):
751
751
table : TablePath
752
752
before : bool = False
753
- timestamp : datetime = None
754
- offset : int = None
755
- statement : str = None
753
+ timestamp : Optional [ datetime ] = None
754
+ offset : Optional [ int ] = None
755
+ statement : Optional [ str ] = None
756
756
757
757
758
758
# DDL
@@ -767,9 +767,9 @@ def type(self) -> Optional[type]:
767
767
@dataclass
768
768
class CreateTable (Statement ):
769
769
path : TablePath
770
- source_table : Expr = None
770
+ source_table : Optional [ Expr ] = None
771
771
if_not_exists : bool = False
772
- primary_keys : List [str ] = None
772
+ primary_keys : Optional [ List [str ] ] = None
773
773
774
774
775
775
@dataclass
@@ -787,8 +787,8 @@ class TruncateTable(Statement):
787
787
class InsertToTable (Statement ):
788
788
path : TablePath
789
789
expr : Expr
790
- columns : List [str ] = None
791
- returning_exprs : List [str ] = None
790
+ columns : Optional [ List [str ] ] = None
791
+ returning_exprs : Optional [ List [str ] ] = None
792
792
793
793
def returning (self , * exprs ) -> Self :
794
794
"""Add a 'RETURNING' clause to the insert expression.
0 commit comments