
    (phy
                       S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSK
Jr  SS	K
Jr  SS
KJrJrJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  \(       a  SSKJr  SSKJr  SSK J!r!  \RD                  RF                  r#\RD                  RH                  r$ " S S\\\4   5      r% " S S\%S\4   \\   5      r& " S S\%S\4   \\   5      r'g)z%
psycopg client-side binding cursors
    )annotations)TYPE_CHECKING)partial   )PostgresQueryPostgresClientQuery)pq)adapt)errors)ConnectionTypeQueryParams)Row)Cursor)Prepare)
BaseCursor)AsyncCursor)Any)
Connection)AsyncConnectionc                  b    \ rS rSr\rS	S
S jjrSSS.       SS jjr S	     SS jjrSr	g)ClientCursorMixin!   Nc                    [         R                  " U 5      U l        U R                  X5      nUR                  R                  U R                  R                  5      $ )z
Return the query and parameters merged.

Parameters are adapted and merged to the query the same way that
`!execute()` would do.

)r
   Transformer_tx_convert_queryquerydecodeencoding)selfr   paramspgqs       H/var/www/html/venv/lib/python3.13/site-packages/psycopg/client_cursor.pymogrifyClientCursorMixin.mogrify$   sE     $$T*!!%0yy 1 122    F)force_extendedbinaryc               $   Uc  U R                   nOU(       a  [        O[        nU[        :X  a  [        R                  " S5      eXl        U R                  R                  (       aY  U R                  R                  R                  R                  [        U R                  R                  UR                  S 5      5        g U(       a'  U R                  R                  UR                  S 5        g U R                  R                  UR                  5        g )Nz0client-side cursors don't support binary results)formatBINARYTEXTeNotSupportedError_query_conn	_pipelinecommand_queueappendr   _pgconnsend_query_paramsr   
send_query)r!   r   r(   r)   fmts        r$   _execute_sendClientCursorMixin._execute_send0   s     >++C"&C&=%%B  :: JJ  ..5566TJ LL**5;;= LL##EKK0r'   c                &    [         R                  S4$ )Nr'   )r   NO)r!   r#   prepares      r$   _get_preparedClientCursorMixin._get_preparedP   s     

C  r'   )r0   r   )N)r   r   r"   zParams | Nonereturnstr)r   r   r(   boolr)   bool | Noner@   None)r#   r   r=   rC   r@   ztuple[Prepare, bytes])
__name__
__module____qualname____firstlineno__r   
_query_clsr%   r9   r>   __static_attributes__ r'   r$   r   r   !   sg    $J
3   %"11 	1
 1 
1B :>! !+6!	! !r'   r   c                      \ rS rSrSrSrg)ClientCursorV   psycopgrK   NrE   rF   rG   rH   rJ   rK   r'   r$   rM   rM   V   s    Jr'   rM   zConnection[Any]c                      \ rS rSrSrSrg)AsyncClientCursorZ   rO   rK   NrP   rK   r'   r$   rR   rR   Z   s	     Jr'   rR   zAsyncConnection[Any]N)(__doc__
__future__r   typingr   	functoolsr   _queriesr   r    r	   r
   r   r.   abcr   r   r   rowsr   cursorr   
_preparingr   _cursor_baser   cursor_asyncr   r   
connectionr   connection_asyncr   Formatr-   r,   r   rM   rR   rK   r'   r$   <module>rc      s    #    8    . .    $ %&1	yy~~			2!
>3#67 2!j$%6%;<fSk ,c12K4Dr'   