
    (ph
                        S r SSKJr  SSK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  SS
KJr  SSKJr  SSKJr  \(       a  SSKJr   " S S5      r " S S\\\   5      r " S S\\\   5      r " S S\5      rg)z#
CockroachDB-specific connections.
    )annotationsN)AnyTYPE_CHECKING   )errors)Row)
Connection)AdaptersMap)ConnectionInfo)AsyncConnection   )adapters)PGconnc                  p    \ rS rSr% S\S'   S\S'   \SS j5       r\SS j5       r\SS j5       r	SS	 jr
S
rg)_CrdbConnectionMixin   zAdaptersMap | None	_adaptersr   pgconnc                    [        U[        [        45      (       a  UR                  n[	        UR                  S5      5      $ )zC
Return `!True` if the server connected to `!conn` is CockroachDB.
s   crdb_version)
isinstancer	   r   r   boolparameter_status)clsconns     J/var/www/html/venv/lib/python3.13/site-packages/psycopg/crdb/connection.pyis_crdb_CrdbConnectionMixin.is_crdb   s5    
 dZ9::;;DD))/:;;    c                d    U R                   (       d  [        [        5      U l         U R                   $ N)r   r
   r   selfs    r   r   _CrdbConnectionMixin.adapters&   s    ~~(2DN~~r   c                ,    [        U R                  5      $ r    )CrdbConnectionInfor   r!   s    r   info_CrdbConnectionMixin.info.   s    !$++..r   c                p    U R                  U R                  5      (       a  [        R                  " S5      eg )Nz/CockroachDB doesn't support prepared statements)r   r   eNotSupportedErrorr!   s    r   
_check_tpc_CrdbConnectionMixin._check_tpc2   s,    <<$$%%&WXX %r   )r   N)r   z/Connection[Any] | AsyncConnection[Any] | PGconnreturnr   )r-   r
   )r-   r%   )r-   None)__name__
__module____qualname____firstlineno____annotations__classmethodr   propertyr   r&   r+   __static_attributes__ r   r   r   r      sM    !!N< <   / /Yr   r   c                      \ rS rSrSrSrSrg)CrdbConnection7   z5
Wrapper for a connection to a CockroachDB database.
psycopg.crdbr7   Nr/   r0   r1   r2   __doc__r6   r7   r   r   r9   r9   7         Jr   r9   c                      \ rS rSrSrSrSrg)AsyncCrdbConnection?   z<
Wrapper for an async connection to a CockroachDB database.
r;   r7   Nr<   r7   r   r   r@   r@   ?   r>   r   r@   c                  X    \ rS rSrSrSr\S	S j5       r\S
S j5       r\SS j5       r	Sr
g)r%   G   zN
`~psycopg.ConnectionInfo` subclass to get info about a CockroachDB database.
r;   c                    g)NCockroachDBr7   r!   s    r   vendorCrdbConnectionInfo.vendorN   s    r   c                    U R                  S5      nU(       d  [        R                  " S5      eU R                  U5      nUc  [        R                  " SU< 35      eU$ )zv
Return the CockroachDB server version connected.

Return a number in the PostgreSQL format (e.g. 21.2.10 -> 210210).
crdb_versionz''crdb_version' parameter status not setz)couldn't parse CockroachDB version from: )r   r)   InternalErrorparse_crdb_versionInterfaceError)r"   sververs      r   server_version!CrdbConnectionInfo.server_versionR   sZ     $$^4//"KLL%%d+;""%Nth#WXX
r   c                    [         R                  " SU5      nU(       d  g [        UR                  S5      5      S-  [        UR                  S5      5      S-  -   [        UR                  S5      5      -   $ )Nz\bv(\d+)\.(\d+)\.(\d+)r   i'  r   d      )researchintgroup)r"   rM   ms      r   rK   %CrdbConnectionInfo.parse_crdb_versionc   sW    II/61771:&QWWQZ3)>>QWWQZPPr   r7   N)r-   str)r-   rV   )rM   rZ   r-   z
int | None)r/   r0   r1   r2   r=   r5   rF   rO   r4   rK   r6   r7   r   r   r%   r%   G   sJ      J     Q Qr   r%   )r=   
__future__r   rT   typingr   r    r   r)   rowsr   
connectionr	   _adapters_mapr
   _connection_infor   connection_asyncr   _typesr   pq.abcr   r   r9   r@   r%   r7   r   r   <module>re      sq    # 	 %   # ' - . Y Y> ):c?   .0D  "Q "Qr   