
    2i.
                         S SK r S SKJr  S SKJr   " S S\\ R
                  S9r " S S\5      r " S	 S
\5      r " S S\5      r	 " S S\\ R
                  S9r
 " S S\
5      r " S S\
5      rg)    N)Function)format_alias_sqlc                   x   ^  \ rS rSrS	S\S\4U 4S jjjr\\R                  S\4S j5       5       r	S
S jr
SrU =r$ )_AbstractSearchString   patternaliasc                 R   > [         [        U ]  U R                  5       XS9  X l        g N)r	   )superr   __init__clickhouse_function_pattern)selfnamer   r	   	__class__s       Y/home/james-whalen/.local/lib/python3.13/site-packages/pypika/clickhouse/search_string.pyr   _AbstractSearchString.__init__   s'    #T3D4L4L4NPT3b    returnc                     g N clss    r   r   )_AbstractSearchString.clickhouse_function        	r   c           
      z   / nU R                    H`  n[        US5      (       a2  UR                  SR                  UR                  " S	SS0UD6S95        MF  UR                  [        U5      5        Mb     SR                  U R                  SR                  U5      U R                  S9n[        XR                  40 UD6$ )
Nget_sqltoString("{arg}")
with_aliasFargz{name}({args},'{pattern}'),)r   argsr   r   )r%   hasattrappendformatr   strr   joinr   r   r	   )	r   r!   with_namespace
quote_chardialectkwargsr%   psqls	            r   r   _AbstractSearchString.get_sql   s    Aq)$$/66199;`PU;`Y_;`6abCF#	  +11$MM 2 

  ZZ:6::r   )r   r   FFNN)__name__
__module____qualname____firstlineno__r)   r   classmethodabcabstractmethodr   r   __static_attributes____classcell__r   s   @r   r   r      sN     c  #    
 C   ; ;r   r   )	metaclassc                   ,    \ rS rSr\S\4S j5       rSrg)Match"   r   c                     g)Nmatchr   r   s    r   r   Match.clickhouse_function#   s    r   r   Nr3   r4   r5   r6   r7   r)   r   r:   r   r   r   r?   r?   "   s    C  r   r?   c                   ,    \ rS rSr\S\4S j5       rSrg)Like(   r   c                     g)Nliker   r   s    r   r   Like.clickhouse_function)   s    r   r   NrD   r   r   r   rF   rF   (   s    C  r   rF   c                   ,    \ rS rSr\S\4S j5       rSrg)NotLike.   r   c                     g)NnotLiker   r   s    r   r   NotLike.clickhouse_function/   s    r   r   NrD   r   r   r   rL   rL   .   s    C  r   rL   c                   x   ^  \ rS rSrS	S\S\4U 4S jjjr\\R                  S\4S j5       5       r
S
S jrSrU =r$ )_AbstractMultiSearchString4   patternsr	   c                 R   > [         [        U ]  U R                  5       XS9  X l        g r   )r   rR   r   r   	_patterns)r   r   rT   r	   r   s       r   r   #_AbstractMultiSearchString.__init__5   s'    ($89Q9Q9SUY8g!r   r   c                     g r   r   r   s    r   r   ._AbstractMultiSearchString.clickhouse_function:   r   r   c                    / nU R                    H`  n[        US5      (       a2  UR                  SR                  UR                  " S
SS0UD6S95        MF  UR                  [        U5      5        Mb     SR                  U R                  SR                  U5      SR                  U R                   Vs/ s H  nSU-  PM
     sn5      S	9n	[        XR                  40 UD6$ s  snf )Nr   r    r!   Fr"   z{name}({args},[{patterns}])r$   z'%s')r   r%   rT   r   )r%   r&   r'   r(   r   r)   r   r*   rV   r   r	   )
r   r!   r+   r,   r-   r.   r%   r/   ir0   s
             r   r   "_AbstractMultiSearchString.get_sql?   s    Aq)$$/66199;`PU;`Y_;`6abCF#	  ,22$XX4>>B>avz>BC 3 

  ZZ:6:: Cs   2C )rV   r   r2   )r3   r4   r5   r6   listr)   r   r7   r8   r9   r   r   r:   r;   r<   s   @r   rR   rR   4   sN    "t "C " "
 C   ; ;r   rR   c                   ,    \ rS rSr\S\4S j5       rSrg)MultiSearchAnyO   r   c                     g)NmultiSearchAnyr   r   s    r   r   "MultiSearchAny.clickhouse_functionP   s    r   r   NrD   r   r   r   r_   r_   O   s     C    r   r_   c                   ,    \ rS rSr\S\4S j5       rSrg)MultiMatchAnyU   r   c                     g)NmultiMatchAnyr   r   s    r   r   !MultiMatchAny.clickhouse_functionV   s    r   r   NrD   r   r   r   re   re   U   s    C  r   re   )r8   pypika.termsr   pypika.utilsr   ABCMetar   r?   rF   rL   rR   r_   re   r   r   r   <module>rm      ss    
 ! );H ;6!   # ;S[[ ;6 /  . r   