File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -257,3 +257,22 @@ def get_label(self, flag):
257257    Database .extensions .register_adapter (BitHandler , lambda  x : Database .extensions .AsIs (int (x )))
258258except  ImproperlyConfigured :
259259    pass 
260+ 
261+ # psycopg3 adapter registration: register a dumper that 
262+ # encodes Bit/BitHandler as BIGINT so parameters are typed correctly. 
263+ try :
264+     from  psycopg  import  adapters 
265+     from  psycopg .adapt  import  Dumper 
266+ except  Exception :
267+     pass 
268+ else :
269+ 
270+     class  _BitLikeDumper (Dumper ):
271+         # OID 20 is int8 (BIGINT) in PostgreSQL, matching Django's BigIntegerField 
272+         oid  =  20 
273+ 
274+         def  dump (self , obj ):
275+             return  str (int (obj )).encode ()
276+ 
277+     adapters .register_dumper (Bit , _BitLikeDumper )
278+     adapters .register_dumper (BitHandler , _BitLikeDumper )
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments