
    g.
                         d dl Z d dlmZ d dlmZ  G d dee j
                        Z G d de      Z G d	 d
e      Z G d de      Z	 G d dee j
                        Z
 G d de
      Z G d de
      Zy)    N)Function)format_alias_sqlc                   f     e Zd Zddedef fdZeej                  defd              ZddZ	 xZ
S )	_AbstractSearchStringpatternaliasc                 \    t         t        |   | j                         ||       || _        y N)r   )superr   __init__clickhouse_function_pattern)selfnamer   r   	__class__s       T/var/www/openai/venv/lib/python3.12/site-packages/pypika/clickhouse/search_string.pyr   z_AbstractSearchString.__init__   s,    #T3D4L4L4NPT\a3b    returnc                      y N clss    r   r   z)_AbstractSearchString.clickhouse_function        	r   c           
      x   g }| j                   D ]\  }t        |d      r4|j                  dj                   |j                  d	ddi|             C|j                  t        |             ^ dj                  | j                  dj                  |      | j                        }t        || j                  fi |S )
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   z_AbstractSearchString.get_sql   s    Aq)$/669199;`PU;`Y_;`6abCF#	  +11$MM 2 

  TZZ:6::r   r   FFNN)__name__
__module____qualname__r&   r   classmethodabcabstractmethodr   r   __classcell__r   s   @r   r   r      sD     c  #  
 C   ;r   r   )	metaclassc                   "    e Zd Zedefd       Zy)Matchr   c                      y)Nmatchr   r   s    r   r   zMatch.clickhouse_function#   s    r   Nr/   r0   r1   r2   r&   r   r   r   r   r9   r9   "   s    C  r   r9   c                   "    e Zd Zedefd       Zy)Liker   c                      y)Nliker   r   s    r   r   zLike.clickhouse_function)   s    r   Nr<   r   r   r   r>   r>   (   s    C  r   r>   c                   "    e Zd Zedefd       Zy)NotLiker   c                      y)NnotLiker   r   s    r   r   zNotLike.clickhouse_function/   s    r   Nr<   r   r   r   rB   rB   .   s    C  r   rB   c                   f     e Zd Zddedef fdZeej                  defd              Z	ddZ
 xZS )	_AbstractMultiSearchStringpatternsr   c                 \    t         t        |   | j                         ||       || _        y r
   )r   rF   r   r   	_patterns)r   r   rG   r   r   s       r   r   z#_AbstractMultiSearchString.__init__5   s,    ($89Q9Q9SUYaf8g!r   r   c                      y r   r   r   s    r   r   z._AbstractMultiSearchString.clickhouse_function:   r   r   c                    g }| j                   D ]\  }t        |d      r4|j                  dj                   |j                  d
ddi|             C|j                  t        |             ^ dj                  | j                  dj                  |      dj                  | j                  D cg c]  }d|z  	 c}      	      }	t        |	| j                  fi |S c c}w )Nr   r   r   Fr   z{name}({args},[{patterns}])r!   z'%s')r   r"   rG   r   )r"   r#   r$   r%   r   r&   r   r'   rI   r   r   )
r   r   r(   r)   r*   r+   r"   r,   ir-   s
             r   r   z"_AbstractMultiSearchString.get_sql?   s    Aq)$/669199;`PU;`Y_;`6abCF#	  ,22$XX4>>B>avz>BC 3 

  TZZ:6:: Cs   -Cr   r.   )r/   r0   r1   listr&   r   r2   r3   r4   r   r   r5   r6   s   @r   rF   rF   4   sD    "t "C "
 C   ;r   rF   c                   "    e Zd Zedefd       Zy)MultiSearchAnyr   c                      y)NmultiSearchAnyr   r   s    r   r   z"MultiSearchAny.clickhouse_functionP   s    r   Nr<   r   r   r   rO   rO   O   s     C    r   rO   c                   "    e Zd Zedefd       Zy)MultiMatchAnyr   c                      y)NmultiMatchAnyr   r   s    r   r   z!MultiMatchAny.clickhouse_functionV   s    r   Nr<   r   r   r   rS   rS   U   s    C  r   rS   )r3   pypika.termsr   pypika.utilsr   ABCMetar   r9   r>   rB   rF   rO   rS   r   r   r   <module>rY      ss    
 ! );H ;6!   # ;S[[ ;6 /  . r   