Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/sqlalchemy/dialects/postgresql/__pycache__/dml.cpython-39.pyc
Ðазад
a _�hn � @ s� d dl mZ ddl mZ ddlmZ ddlmZ ddlmZ ddl mZ ddlm Z dd lmZ d ZG dd� de �Zeed d�ZG dd� de�ZG dd� de�ZG dd� de�ZdS )� )�ext� )�util)�schema)�_generative)�Insert)� ClauseElement)�alias)�public_factory)r �insertc @ s: e Zd ZdZejdd� �Zed dd��Zed dd��Z dS )r a PostgreSQL-specific implementation of INSERT. Adds methods for PG-specific syntaxes such as ON CONFLICT. The :class:`_postgresql.Insert` object is created using the :func:`sqlalchemy.dialects.postgresql.insert` function. .. versionadded:: 1.1 c C s t | jdd�jS )a� Provide the ``excluded`` namespace for an ON CONFLICT statement PG's ON CONFLICT clause allows reference to the row that would be inserted, known as ``excluded``. This attribute provides all columns in this row to be referenceable. .. seealso:: :ref:`postgresql_insert_on_conflict` - example of how to use :attr:`_expression.Insert.excluded` �excluded)�name)r �table�columns)�self� r ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/sqlalchemy/dialects/postgresql/dml.pyr ! s zInsert.excludedNc C s t |||||�| _| S )a� Specifies a DO UPDATE SET action for ON CONFLICT clause. Either the ``constraint`` or ``index_elements`` argument is required, but only one of these can be specified. :param constraint: The name of a unique or exclusion constraint on the table, or the constraint object itself if it has a .name attribute. :param index_elements: A sequence consisting of string column names, :class:`_schema.Column` objects, or other column expression objects that will be used to infer a target index. :param index_where: Additional WHERE criterion that can be used to infer a conditional target index. :param set\_: Required argument. A dictionary or other mapping object with column names as keys and expressions or literals as values, specifying the ``SET`` actions to take. If the target :class:`_schema.Column` specifies a ". key" attribute distinct from the column name, that key should be used. .. warning:: This dictionary does **not** take into account Python-specified default UPDATE values or generation functions, e.g. those specified using :paramref:`_schema.Column.onupdate`. These values will not be exercised for an ON CONFLICT style of UPDATE, unless they are manually specified in the :paramref:`.Insert.on_conflict_do_update.set_` dictionary. :param where: Optional argument. If present, can be a literal SQL string or an acceptable expression for a ``WHERE`` clause that restricts the rows affected by ``DO UPDATE SET``. Rows not meeting the ``WHERE`` condition will not be updated (effectively a ``DO NOTHING`` for those rows). .. versionadded:: 1.1 .. seealso:: :ref:`postgresql_insert_on_conflict` )�OnConflictDoUpdate�_post_values_clause�r � constraint�index_elements�index_where�set_�wherer r r �on_conflict_do_update1 s : �zInsert.on_conflict_do_updatec C s t |||�| _| S )a) Specifies a DO NOTHING action for ON CONFLICT clause. The ``constraint`` and ``index_elements`` arguments are optional, but only one of these can be specified. :param constraint: The name of a unique or exclusion constraint on the table, or the constraint object itself if it has a .name attribute. :param index_elements: A sequence consisting of string column names, :class:`_schema.Column` objects, or other column expression objects that will be used to infer a target index. :param index_where: Additional WHERE criterion that can be used to infer a conditional target index. .. versionadded:: 1.1 .. seealso:: :ref:`postgresql_insert_on_conflict` )�OnConflictDoNothingr �r r r r r r r �on_conflict_do_nothingp s �zInsert.on_conflict_do_nothing)NNNNN)NNN) �__name__� __module__�__qualname__�__doc__r Zmemoized_propertyr r r r r r r r r s �> �r z.dialects.postgresql.insertz.dialects.postgresql.Insertc @ s e Zd Zddd�ZdS )�OnConflictClauseNc C s� |d ur8t |tj�s8t |tjtjtjf�r8t|d�p6|}|d ur�|d urPt d��t |tj�rp|| _ d | _d | _nTt |tj�r�|j }|jd �d�}n0t |tj�r�|j}|j}n|j}|jd �d�}|d ur�d | _ || _|| _n|d u r�d | _ | _| _d S )Nr z8'constraint' and 'index_elements' are mutually exclusive� postgresqlr )� isinstancer �string_typesr �Index� Constraintr ZExcludeConstraint�getattr� ValueError�constraint_target�inferred_target_elementsZinferred_target_whereclauseZexpressionsZdialect_options�getr r r r r r �__init__� sJ �� � ���zOnConflictClause.__init__)NNN)r r r! r. r r r r r# � s r# c @ s e Zd ZdZdS )r r N)r r r! �__visit_name__r r r r r � s r c s"