@@ -65,7 +65,9 @@ table_collection = builder.build_child_access("Nations", global_context_node)
65
65
66
66
# Build a reference node
67
67
# Equivalent PyDough code: `TPCH.Nations.name`
68
- reference_node = builder.build_reference(table_collection, " name" )
68
+ ref_name = " name"
69
+ pydough_type = table_collection.get_expr(ref_name).pydough_type
70
+ reference_node = builder.build_reference(ref_name, pydough_type)
69
71
70
72
# Build an expression function call node
71
73
# Equivalent PyDough code: `LOWER(TPCH.Nations.name)`
@@ -99,7 +101,10 @@ regions_collection = builder.build_child_access("Regions", global_context_node)
99
101
# Access nations sub-collection
100
102
nations_sub_collection = builder.build_child_access(" nations" , regions_collection)
101
103
# Create WHERE(key == 4) condition
102
- key_ref = builder.build_reference(nations_sub_collection, " key" )
104
+
105
+ ref_name = " key"
106
+ pydough_type = nations_sub_collection.get_expr(ref_name).pydough_type
107
+ key_ref = builder.build_reference(ref_name, pydough_type)
103
108
literal_4 = builder.build_literal(4 , NumericType())
104
109
condition = builder.build_expression_function_call(" EQU" , [key_ref, literal_4])
105
110
# Build WHERE node with condition
@@ -108,7 +113,9 @@ where_node = where_node.with_condition(condition)
108
113
# Create SINGULAR node from filtered result
109
114
singular_node = builder.build_singular(where_node)
110
115
# Build reference node for name
111
- reference_node = builder.build_reference(singular_node, " name" )
116
+ ref_name = " name"
117
+ pydough_type = singular_node.get_expr(ref_name).pydough_type
118
+ reference_node = builder.build_reference(ref_name, pydough_type)
112
119
# Build CALCULATE node with calculated term
113
120
calculate_node = builder.build_calc(regions_collection, [nations_sub_collection])
114
121
calculate_node = calculate_node.with_terms([(" n_4_nation" , reference_node)])
@@ -130,7 +137,9 @@ top_k_node = top_k_node.with_collation([collation_expression])
130
137
# Build a PARTITION BY node
131
138
# Equivalent PyDough code: `TPCH.PARTITION(Parts, name="p", by=part_type)`
132
139
part_collection = builder.build_child_access(" Parts" , global_context_node)
133
- partition_key = builder.build_reference(part_collection, " part_type" )
140
+ ref_name = " part_type"
141
+ pydough_type = part_collection.get_expr(ref_name).pydough_type
142
+ partition_key = builder.build_reference(ref_name, pydough_type)
134
143
partition_by_node = builder.build_partition(part_collection, child_collection, " p" )
135
144
partition_by_node = partition_by_node.with_keys([partition_key])
136
145
0 commit comments