File: //opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyc
�
���ec @ s d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m
Z d d l m
Z
d d l m Z d d
l m Z d Z d e f d
� � YZ
e e
d d � Z d e
f d � � YZ d e f d � � YZ d e f d � � YZ d S( i ( t util( t coercions( t roles( t _exclusive_against( t _generative( t ColumnCollection( t Insert( t
ClauseElement( t alias( t public_factoryR t insertc B s� e Z d Z d Z e Z e j d � � Z e d d i d d 6�Z
e e
d d d d d � � � Z
e e
d d d � � � Z RS( 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`
t sqlitec C s t | j d d �j S( 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.
t namet excluded( R t tablet columns( t self( ( sO /opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR
* s t _post_values_clauset msgssC This Insert construct already has an ON CONFLICT clause establishedc C s t | | | | � | _ d S( 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( t OnConflictDoUpdateR ( R t index_elementst index_wheret set_t where( ( sO /opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyt on_conflict_do_updateH s 1c C s t | | � | _ d S( 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( t OnConflictDoNothingR ( R R R ( ( sO /opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyt on_conflict_do_nothing} s N( t __name__t
__module__t __doc__t stringify_dialectt Falset
inherit_cacheR t memoized_propertyR
R t _on_conflict_exclusiveR t NoneR R ( ( ( sO /opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/dml.pyR s"