+
    i#                        ^ RI Ht ^ RIHt ^RIHt ^RIHt ^RIHt ^RIH	t	 ^RIH
t
 ^RIHt ^R	IHt ^R
IHt ^RIHt  ! R R]]	P"                  ],          4      tR# )    )annotations)Any)exc)util)	coercions)elements)	operators)roles)_generative)
Generative)Selfc                     a  ] tR t^t$ RtRtRtR]R&   R V 3R llt]	R R	 l4       t
]	R
 R l4       t]	R R l4       tRtV ;t# )matcha  Produce a ``MATCH (X, Y) AGAINST ('TEXT')`` clause.

E.g.::

    from sqlalchemy import desc
    from sqlalchemy.dialects.mysql import match

    match_expr = match(
        users_table.c.firstname,
        users_table.c.lastname,
        against="Firstname Lastname",
    )

    stmt = (
        select(users_table)
        .where(match_expr.in_boolean_mode())
        .order_by(desc(match_expr))
    )

Would produce SQL resembling:

.. sourcecode:: sql

    SELECT id, firstname, lastname
    FROM user
    WHERE MATCH(firstname, lastname) AGAINST (:param_1 IN BOOLEAN MODE)
    ORDER BY MATCH(firstname, lastname) AGAINST (:param_2) DESC

The :func:`_mysql.match` function is a standalone version of the
:meth:`_sql.ColumnElement.match` method available on all
SQL expressions, as when :meth:`_expression.ColumnElement.match` is
used, but allows to pass multiple columns

:param cols: column expressions to match against

:param against: expression to be compared towards

:param in_boolean_mode: boolean, set "boolean mode" to true

:param in_natural_language_mode: boolean , set "natural language" to true

:param with_query_expansion: boolean, set "query expansion" to true

.. versionadded:: 1.4.19

.. seealso::

    :meth:`_expression.ColumnElement.match`

mysql_matchTzutil.immutabledict[str, Any]	modifiersc                    V ^8  d   QhRRRR/# )   colszelements.ColumnElement[Any]kwr    )formats   "~C:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy/dialects/mysql/expression.py__annotate__match.__annotate__P   s      M  M9  M  M    c                	  < V'       g   \         P                  ! R 4      hVP                  RR4      pVf   \         P                  ! R4      h\        P                  ! \
        P                  V4      p\        P                  P                  \        P                  VR7      pRVn        \        P                  ! RVP                  RR4      RVP                  R	R4      R
VP                  RR4      /4      pV'       d-   \         P                  ! RRP                  V4      ,          4      h\         SV `E  WC\        P$                  VR7       R# )zcolumns are requiredagainstNzagainst is required)clausesFmysql_boolean_modein_boolean_modemysql_natural_languagein_natural_language_modemysql_query_expansionwith_query_expansionzunknown arguments: %sz, r   )r   ArgumentErrorpopr   expectr
   ExpressionElementRoler   BooleanClauseList_construct_rawr	   comma_opgroupr   immutabledictjoinsuper__init__match_op)selfr   r   r   leftflags	__class__s   &*,   r   r1   match.__init__P   s   ##$:;;&&D)?##$9::""''

 ))88 9 
 
""$bff->&F("&&.+ (0F)N
 ##$;tyy}$MNN	(:(:eLr   c                   V ^8  d   QhRR/# r   returnr   r   )r   s   "r   r   r   s   s       r   c                J    V P                   P                  RR/4      V n         V # )zApply the "IN BOOLEAN MODE" modifier to the MATCH expression.

:return: a new :class:`_mysql.match` instance with modifications
 applied.
r   Tr   unionr3   s   &r   r    match.in_boolean_moder   s%     --/CT.JKr   c                   V ^8  d   QhRR/# r9   r   )r   s   "r   r   r   ~   s     	 	$ 	r   c                J    V P                   P                  RR/4      V n         V # )zApply the "IN NATURAL LANGUAGE MODE" modifier to the MATCH
expression.

:return: a new :class:`_mysql.match` instance with modifications
 applied.
r!   Tr<   r>   s   &r   r"   match.in_natural_language_mode}   s%     --/G.NOr   c                   V ^8  d   QhRR/# r9   r   )r   s   "r   r   r      s      d r   c                J    V P                   P                  RR/4      V n         V # )zApply the "WITH QUERY EXPANSION" modifier to the MATCH expression.

:return: a new :class:`_mysql.match` instance with modifications
 applied.
r#   Tr<   r>   s   &r   r$   match.with_query_expansion   s%     --/F.MNr   r%   )__name__
__module____qualname____firstlineno____doc____visit_name__inherit_cache__annotations__r1   r   r    r"   r$   __static_attributes____classcell__)r6   s   @r   r   r      sd    1f #NM++ M  MD   	 	  r   r   N)
__future__r   typingr    r   r   sqlr   r   r	   r
   sql.baser   r   util.typingr   BinaryExpressionr   r   r   r   <module>rW      sC    #        # " {J11#6 {r   