%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyc

�
��4]c@s�ddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
dZdefd
��YZe
ed�Zde	fd
��YZdS(i(texc(tutil(t_generative(tInsert(t
ClauseElement(talias(tpublic_factoryRtinsertcBs>eZdZed��Zejd��Zed��Z	RS(s�MySQL-specific implementation of INSERT.

    Adds methods for MySQL-specific syntaxes such as ON DUPLICATE KEY UPDATE.

    .. versionadded:: 1.2

    cCs
|jjS(s�Provide the "inserted" namespace for an ON DUPLICATE KEY UPDATE statement

        MySQL's ON DUPLICATE KEY UPDATE clause allows reference to the row
        that would be inserted, via a special function called ``VALUES()``.
        This attribute provides all columns in this row to be referenceable
        such that they will render within a ``VALUES()`` function inside the
        ON DUPLICATE KEY UPDATE clause.    The attribute is named ``.inserted``
        so as not to conflict with the existing :meth:`.Insert.values` method.

        .. seealso::

            :ref:`mysql_insert_on_duplicate_key_update` - example of how
            to use :attr:`.Insert.inserted`

        (tinserted_aliastcolumns(tself((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pytinsertedscCst|jdd�S(NtnameR(Rttable(R
((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyR)scOs�|r|rtjd��n|rUt|�dkrHtjd��n|d}n|}t|dd�}t||�|_|S(s*
        Specifies the ON DUPLICATE KEY UPDATE clause.

        :param \**kw:  Column keys linked to UPDATE values.  The
         values may be any SQL expression or supported literal Python
         values.

        .. warning:: This dictionary does **not** take into account
           Python-specified default UPDATE values or generation functions,
           e.g. those specified using :paramref:`.Column.onupdate`.
           These values will not be exercised for an ON DUPLICATE KEY UPDATE
           style of UPDATE, unless values are manually specified here.

        :param \*args: As an alternative to passing key/value parameters,
         a dictionary or list of 2-tuples can be passed as a single positional
         argument.

         Passing a single dictionary is equivalent to the keyword argument
         form::

            insert().on_duplicate_key_update({"name": "some name"})

         Passing a list of 2-tuples indicates that the parameter assignments
         in the UPDATE clause should be ordered as sent, in a manner similar
         to that described for the :class:`.Update` construct overall
         in :ref:`updates_order_parameters`::

            insert().on_duplicate_key_update(
                [("name", "some name"), ("value", "some value")])

         .. versionchanged:: 1.3 parameters can be specified as a dictionary
            or list of 2-tuples; the latter form provides for parameter
            ordering.


        .. versionadded:: 1.2

        .. seealso::

            :ref:`mysql_insert_on_duplicate_key_update`

        s9Can't pass kwargs and positional arguments simultaneouslyisDOnly a single dictionary or list of tuples is accepted positionally.iRN(Rt
ArgumentErrortlentgetattrtNonetOnDuplicateClauset_post_values_clause(R
targstkwtvaluesR((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyton_duplicate_key_update-s,
(
t__name__t
__module__t__doc__tpropertyRRtmemoized_propertyRRR(((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyR
ss.dialects.mysql.insertRcBseZdZdZd�ZRS(RcCs�||_t|t�rb|rbt|dt�rbg|D]\}}|^q8|_t|�}n|syt|t�r�td��n||_dS(Nis/update parameter must be a non-empty dictionary(Rt
isinstancetlistttuplet_parameter_orderingtdictt
ValueErrortupdate(R
RR#tkeytvalue((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyt__init__us	"N(RRt__visit_name__RR R&(((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyRpsN(RR(tRRtsql.baseRtsql.dmlRtStandardInserttsql.elementsRtsql.expressionRtutil.langhelpersRt__all__RR(((sP/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/dml.pyt<module>s`

Zerion Mini Shell 1.0