| 1 | module transform |
| 2 | |
| 3 | import v3.flat |
| 4 | |
| 5 | // transform_sql_expr transforms SQL/ORM expressions before C generation. |
| 6 | // Full ORM lowering will build driver calls here; until then, keep the existing |
| 7 | // v3 fallback behavior by replacing SQL expressions with a successful typed |
| 8 | // default value. |
| 9 | fn (mut t Transformer) transform_sql_expr(_id flat.NodeId, node flat.Node) flat.NodeId { |
| 10 | typ := if node.typ.len > 0 { node.typ } else { '!void' } |
| 11 | if t.is_optional_type_name(typ) { |
| 12 | opt_type := t.qualify_optional_type(typ) |
| 13 | value_type := t.optional_base_type(opt_type) |
| 14 | value := if value_type.len > 0 && value_type != 'void' { |
| 15 | t.zero_value_for_type(value_type) |
| 16 | } else { |
| 17 | flat.empty_node |
| 18 | } |
| 19 | return t.make_optional_some(value, opt_type) |
| 20 | } |
| 21 | return t.zero_value_for_type(typ) |
| 22 | } |
| 23 | |