
    +h                     h    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de      Z G d	 d
e      Z	e	Z
y)a  

.. dialect:: mysql+cymysql
    :name: CyMySQL
    :dbapi: cymysql
    :connectstring: mysql+cymysql://<username>:<password>@<host>/<dbname>[?<options>]
    :url: https://github.com/nakagami/CyMySQL

.. note::

    The CyMySQL dialect is **not tested as part of SQLAlchemy's continuous
    integration** and may have unresolved issues.  The recommended MySQL
    dialects are mysqlclient and PyMySQL.

   )BIT)MySQLDialect)MySQLDialect_mysqldb   )utilc                       e Zd Zd Zy)_cymysqlBITc                     d }|S )z@Convert MySQL's 64 bit, variable length binary string to a long.c                 V    | &d}t        j                  |       D ]
  }|dz  |z  } |S | S )N       )r   	iterbytes)valuevis      T/var/www/html/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/cymysql.pyprocessz-_cymysqlBIT.result_processor.<locals>.process!   s<     . #AQ
A#L     )selfdialectcoltyper   s       r   result_processorz_cymysqlBIT.result_processor   s    	 r   N)__name__
__module____qualname__r   r   r   r   r	   r	      s    r   r	   c                       e Zd ZdZdZdZdZdZdZ e	j                  ej                  eei      Zed        Zd Zd Zd Zy)	MySQLDialect_cymysqlcymysqlTNFc                     t        d      S )Nr   )
__import__)clss    r   dbapizMySQLDialect_cymysql.dbapi7   s    )$$r   c                 .    |j                   j                  S N)
connectioncharset)r   r&   s     r   _detect_charsetz$MySQLDialect_cymysql._detect_charset;   s    $$,,,r   c                     |j                   S r%   )errno)r   	exceptions     r   _extract_error_codez(MySQLDialect_cymysql._extract_error_code>   s    r   c                     t        || j                  j                        r| j                  |      dv S t        || j                  j                        ryy)N)i  i  i  i  i  TF)
isinstancer#   OperationalErrorr,   InterfaceError)r   er&   cursors       r   is_disconnectz"MySQLDialect_cymysql.is_disconnectA   sQ    a445++A. 3   4::445 r   )r   r   r   driversupports_statement_cachedescription_encodingsupports_sane_rowcountsupports_sane_multi_rowcountsupports_unicode_statementsr   update_copyr   colspecsr   r	   classmethodr#   r(   r,   r3   r   r   r   r   r   ,   se    F#!#( "&t 5 5[7IJH% %-r   r   N)__doc__baser   r   mysqldbr    r   r	   r   r   r   r   r   <module>rA      s9       ) # #/ #L r   