@@ -27,22 +27,28 @@ def _get_type(t: str) -> str:
27
27
return t
28
28
29
29
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
+
30
43
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 )
38
44
args = dict (
39
45
field_name = rust .avoid_keywords (p .name ),
40
46
base_type = _get_type (p .type ),
41
47
is_optional = p .is_optional ,
42
48
is_repeated = p .is_repeated ,
43
49
is_predicate = p .is_predicate ,
44
50
is_unordered = p .is_unordered ,
45
- table_name = table_name ,
51
+ table_name = _get_table_name ( cls , p ) ,
46
52
)
47
53
args .update (rust .get_field_override (p .name ))
48
54
return rust .Field (** args )
0 commit comments