File: //var/opt/nydus/ops/mysql/connector/__pycache__/cursor_cext.cpython-39.pyc
a
�,�h=� � @ s� d Z ddlmZ ddlZddlZddlZddlmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZ dd l m!Z!m"Z"m#Z#m$Z$ dd
l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7 e �r"dd
l8m9Z9 dZ:G dd� d�Z;G dd� de$�Z<G dd� de<�Z=G dd� de<�Z>G dd� de=�Z?G dd� de<�Z@G dd� de=�ZAG dd� de<�ZBG dd � d e=�ZCG d!d"� d"e<�ZDG d#d$� d$e@eD�ZEG d%d&� d&eBeD�ZFG d'd(� d(eD�ZGdS ))z%Cursor classes using the C Extension.� )�annotationsN)�
namedtuple)�
TYPE_CHECKING�Any�Dict� Generator�Iterator�List�NoReturn�Optional�Sequence�Tuple�Union)�MySQLInterfaceError� ) �CextEofPacketType�CextResultType�DescriptionType�ParamsSequenceOrDictType�ParamsSequenceType�RowItemType�RowType�
StrOrBytes�WarningType)�NAMED_TUPLE_CACHE�CMySQLPrepStmt�MySQLConnectionAbstract�MySQLCursorAbstract)
�RE_PY_PARAM�RE_SQL_COMMENT�RE_SQL_FIND_PARAM�RE_SQL_INSERT_STMT�RE_SQL_INSERT_VALUES�RE_SQL_ON_DUPLICATE� RE_SQL_PYTHON_CAPTURE_PARAM_NAME�RE_SQL_PYTHON_REPLACE_PARAM�is_eol_comment�parse_multi_statement_query)�CR_NO_RESULT_SET)�Error�InterfaceError�NotSupportedError�ProgrammingError�get_mysql_exception)�CMySQLConnectionzNo result set to fetch fromc @ sB e Zd ZdZddd�dd�Zddd �d
d�Zedd
�dd��ZdS )�_ParamSubstitutorz4
Substitutes parameters into SQL statement.
zSequence[bytes]�None)�params�returnc C s || _ d| _d S )Nr )r1 �index)�selfr1 � r5 �N/opt/nydus/tmp/pip-target-wkfpz8uv/lib64/python/mysql/connector/cursor_cext.py�__init__m s z_ParamSubstitutor.__init__�object�bytes)�matchobjr2 c C sB | j }| j d7 _ z| j| W S ty< td�d �Y n0 d S )Nr z+Not enough parameters for the SQL statement)r3 r1 �
IndexErrorr, )r4 r: r3 r5 r5 r6 �__call__q s ��z_ParamSubstitutor.__call__�int�r2 c C s t | j�| j S )z8Returns number of parameters remaining to be substituted)�lenr1 r3 �r4 r5 r5 r6 � remaining{ s z_ParamSubstitutor.remainingN)�__name__�
__module__�__qualname__�__doc__r7 r<