1- import substrait .gen .proto .type_pb2 as stt
2- import substrait .gen .proto .plan_pb2 as stp
31import substrait .gen .proto .algebra_pb2 as stalg
2+ import substrait .gen .proto .plan_pb2 as stp
3+ import substrait .gen .proto .type_pb2 as stt
4+ from substrait .builders .plan import read_named_table , write_table
45from substrait .builders .type import boolean , i64
5- from substrait .builders .plan import read_named_table
66
77struct = stt .Type .Struct (types = [i64 (nullable = False ), boolean ()])
88
99named_struct = stt .NamedStruct (names = ["id" , "is_applicable" ], struct = struct )
1010
1111
1212def test_write_rel ():
13- actual = read_named_table ("example_table" , named_struct )(None )
13+ actual = write_table (
14+ "example_table_write_test" ,
15+ read_named_table ("example_table" , named_struct ),
16+ )(None )
1417
15- # write example table test
16- stp .Plan (
18+ expected = stp .Plan (
1719 relations = [
1820 stp .PlanRel (
1921 root = stalg .RelRoot (
2022 input = stalg .Rel (
2123 write = stalg .WriteRel (
2224 input = stalg .Rel (
2325 read = stalg .ReadRel (
24- common = stalg .RelCommon (direct = stalg .RelCommon .Direct ()),
26+ common = stalg .RelCommon (
27+ direct = stalg .RelCommon .Direct ()
28+ ),
2529 base_schema = named_struct ,
2630 named_table = stalg .ReadRel .NamedTable (
2731 names = ["example_table" ]
2832 ),
2933 )
3034 ),
31- common = stalg .RelCommon ( direct = stalg . RelCommon . Direct ()) ,
35+ op = stalg .WriteRel . WRITE_OP_CTAS ,
3236 table_schema = named_struct ,
33- create_mode = stalg .WriteRel .CreateMode .CREATE_MODE_REPLACE_IF_EXISTS ,
34- named_table = stalg .NamedTable (
35- names = ["example_table_write_test" ]
36- ),
37- )
38- ),
39- names = ["id" , "is_applicable" ],
40- )
41- )
42- ]
43- )
44-
45- # read back the table
46- expected = stp .Plan (
47- relations = [
48- stp .PlanRel (
49- root = stalg .RelRoot (
50- input = stalg .Rel (
51- read = stalg .ReadRel (
52- common = stalg .RelCommon (direct = stalg .RelCommon .Direct ()),
53- base_schema = named_struct ,
54- named_table = stalg .ReadRel .NamedTable (
37+ create_mode = stalg .WriteRel .CREATE_MODE_ERROR_IF_EXISTS ,
38+ named_table = stalg .NamedObjectWrite (
5539 names = ["example_table_write_test" ]
5640 ),
5741 )
@@ -61,30 +45,4 @@ def test_write_rel():
6145 )
6246 ]
6347 )
64-
65- assert actual == expected
66-
67-
68- def test_write_rel_db ():
69- actual = read_named_table (["example_db" , "example_table" ], named_struct )(None )
70-
71- expected = stp .Plan (
72- relations = [
73- stp .PlanRel (
74- root = stalg .RelRoot (
75- input = stalg .Rel (
76- read = stalg .ReadRel (
77- common = stalg .RelCommon (direct = stalg .RelCommon .Direct ()),
78- base_schema = named_struct ,
79- named_table = stalg .ReadRel .NamedTable (
80- names = ["example_db" , "example_table" ]
81- ),
82- )
83- ),
84- names = ["id" , "is_applicable" ],
85- )
86- )
87- ]
88- )
89-
9048 assert actual == expected
0 commit comments