@@ -63,17 +63,19 @@ async def select_custom_fields(
6363 cls ,
6464 fields : List [str ],
6565 wheres : Union [str , Q , Dict [str , Any ], List [Q ]],
66+ index : Optional [str ] = None ,
6667 groups : Optional [List [str ]] = None ,
6768 having : Optional [str ] = None ,
6869 orders : Optional [List [str ]] = None ,
6970 offset : Optional [int ] = None ,
70- limit : int = 0 ,
71+ limit : Optional [ int ] = None ,
7172 conn : Optional [BaseDBAsyncClient ] = None ,
7273 ):
7374 sql = SQLizer .select_custom_fields (
7475 cls .table ,
7576 fields ,
7677 wheres ,
78+ index ,
7779 groups ,
7880 having ,
7981 orders ,
@@ -84,6 +86,32 @@ async def select_custom_fields(
8486 conn = conn or cls .ro_conn
8587 return await CursorHandler .fetch_dicts (sql , conn , logger )
8688
89+ @classmethod
90+ async def select_one_record (
91+ cls ,
92+ fields : List [str ],
93+ wheres : Union [str , Q , Dict [str , Any ], List [Q ]],
94+ index : Optional [str ] = None ,
95+ groups : Optional [List [str ]] = None ,
96+ having : Optional [str ] = None ,
97+ orders : Optional [List [str ]] = None ,
98+ conn : Optional [BaseDBAsyncClient ] = None ,
99+ ):
100+ sql = SQLizer .select_custom_fields (
101+ cls .table ,
102+ fields ,
103+ wheres ,
104+ index ,
105+ groups ,
106+ having ,
107+ orders ,
108+ 0 ,
109+ 1 ,
110+ cls .model ,
111+ )
112+ conn = conn or cls .ro_conn
113+ return await CursorHandler .fetch_one (sql , conn , logger )
114+
87115 @classmethod
88116 async def update_json_field (
89117 cls ,
0 commit comments