HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyc
�
���ec@sddlmZddlmZddlmZddlmZddlmZddlmZddl	m
Zddlm
Z
dd	lmZdd
lmZdZdefd
��YZ
ee
dd�Zde
fd��YZdefd��YZdefd��YZdS(i(tutil(t	coercions(troles(t_exclusive_against(t_generative(tColumnCollection(tInsert(t
ClauseElement(talias(tpublic_factoryRtinsertcBs�eZdZdZeZejd��Ze	ddidd6�Z
ee
ddddd���Z
ee
ddd���ZRS(	s?SQLite-specific implementation of INSERT.

    Adds methods for SQLite-specific syntaxes such as ON CONFLICT.

    The :class:`_sqlite.Insert` object is created using the
    :func:`sqlalchemy.dialects.sqlite.insert` function.

    .. versionadded:: 1.4

    .. seealso::

        :ref:`sqlite_on_conflict_insert`

    tsqlitecCst|jdd�jS(s�Provide the ``excluded`` namespace for an ON CONFLICT statement

        SQLite'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.

        .. tip::  The :attr:`_sqlite.Insert.excluded` attribute is an instance
            of :class:`_expression.ColumnCollection`, which provides an
            interface the same as that of the :attr:`_schema.Table.c`
            collection described at :ref:`metadata_tables_and_columns`.
            With this collection, ordinary names are accessible like attributes
            (e.g. ``stmt.excluded.some_column``), but special names and
            dictionary method names should be accessed using indexed access,
            such as ``stmt.excluded["column name"]`` or
            ``stmt.excluded["values"]``.  See the docstring for
            :class:`_expression.ColumnCollection` for further examples.

        tnametexcluded(Rttabletcolumns(tself((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR
*st_post_values_clausetmsgssCThis Insert construct already has an ON CONFLICT clause establishedcCst||||�|_dS(s�
        Specifies a DO UPDATE SET action for ON CONFLICT clause.

        :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 or unique constraint.

        :param index_where:
         Additional WHERE criterion that can be used to infer a
         conditional target index.

        :param set\_:
         A dictionary or other mapping object
         where the keys are either names of columns in the target table,
         or :class:`_schema.Column` objects or other ORM-mapped columns
         matching that of the target table, and expressions or literals
         as values, specifying the ``SET`` actions to take.

         .. versionadded:: 1.4 The
            :paramref:`_sqlite.Insert.on_conflict_do_update.set_`
            parameter supports :class:`_schema.Column` objects from the target
            :class:`_schema.Table` as keys.

         .. 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).

        N(tOnConflictDoUpdateR(Rtindex_elementstindex_wheretset_twhere((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyton_conflict_do_updateHs1cCst||�|_dS(s�
        Specifies a DO NOTHING action for ON CONFLICT clause.

        :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 or unique constraint.

        :param index_where:
         Additional WHERE criterion that can be used to infer a
         conditional target index.

        N(tOnConflictDoNothingR(RRR((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyton_conflict_do_nothing}sN(t__name__t
__module__t__doc__tstringify_dialecttFalset
inherit_cacheRtmemoized_propertyR
Rt_on_conflict_exclusiveRtNoneRR(((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyRs"
.s.dialects.sqlite.inserts.dialects.sqlite.InserttOnConflictClausecBseZdZddd�ZRS(RcCsE|dk	r*d|_||_||_nd|_|_|_dS(N(R#tconstraint_targettinferred_target_elementstinferred_target_whereclause(RRR((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyt__init__�s
		N(RRRR#R((((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR$�sRcBseZdZRS(R(RRt__visit_name__(((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR�sRcBs#eZdZddddd�ZRS(RcCs�tt|�jd|d|�t|t�rF|sptd��qpn*t|t�rdt|�}ntd��g|j�D]'\}}tj	t
j|�|f^q}|_||_
dS(NRRs*set parameter dictionary must not be emptysqset parameter must be a non-empty dictionary or a ColumnCollection such as the `.c.` collection of a Table object(tsuperRR(t
isinstancetdictt
ValueErrorRtitemsRtexpectRt
DMLColumnRoletupdate_values_to_settupdate_whereclause(RRRRRtkeytvalue((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR(�s	:N(RRR)R#R((((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR�s
N(RR
(tRtsqlRRtsql.baseRRRtsql.dmlRtStandardInserttsql.elementsRtsql.expressionRtutil.langhelpersR	t__all__R
R$RR(((sO/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyt<module>s |