Skip to content

Commit 9639d6c

Browse files
author
Paolo Tranquilli
committed
Codegen: implement db_table_name in rustgen
1 parent f48aa79 commit 9639d6c

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

misc/codegen/generators/rustgen.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,28 @@ def _get_type(t: str) -> str:
2727
return t
2828

2929

30+
def _get_table_name(cls: schema.Class, p: schema.Property) -> str:
31+
if p.is_single:
32+
return inflection.tableize(cls.name)
33+
overridden_table_name = p.pragmas.get("ql_db_table_name")
34+
if overridden_table_name:
35+
return overridden_table_name
36+
table_name = f"{cls.name}_{p.name}"
37+
if p.is_predicate:
38+
return inflection.underscore(table_name)
39+
else:
40+
return inflection.tableize(table_name)
41+
42+
3043
def _get_field(cls: schema.Class, p: schema.Property) -> rust.Field:
31-
table_name = inflection.tableize(cls.name)
32-
if not p.is_single:
33-
table_name = f"{cls.name}_{p.name}"
34-
if p.is_predicate:
35-
table_name = inflection.underscore(table_name)
36-
else:
37-
table_name = inflection.tableize(table_name)
3844
args = dict(
3945
field_name=rust.avoid_keywords(p.name),
4046
base_type=_get_type(p.type),
4147
is_optional=p.is_optional,
4248
is_repeated=p.is_repeated,
4349
is_predicate=p.is_predicate,
4450
is_unordered=p.is_unordered,
45-
table_name=table_name,
51+
table_name=_get_table_name(cls, p),
4652
)
4753
args.update(rust.get_field_override(p.name))
4854
return rust.Field(**args)

0 commit comments

Comments
 (0)