@@ -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+
3043def _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