diff --git a/tpl/macro.twig b/tpl/macro.twig index c46cfa6..79e63b4 100644 --- a/tpl/macro.twig +++ b/tpl/macro.twig @@ -19,8 +19,10 @@ {% macro decl_struct(o, extra = '') %} -{% set pkey_fields = token(o, 'table_pkey')|split(',') %} -{% set pkey = o.fields|filter(f => f.name in pkey_fields ) %} + {% if has_token(o, 'table') %} + {% set pkey_fields = token(o, 'table_pkey')|split(',') %} + {% set pkey = pkey_fields|map(f => o.fields[f]) %} + {% endif %} {%- if o.parent and has_token(o, 'POD') -%} {{Error("@POD structs can't have a parent: " ~ o.name)}}