o
    Th.
                     @   s   d dl Z d dlmZ d dlmZ G dd dee jdZG dd deZG d	d
 d
eZG dd deZ	G dd dee jdZ
G dd de
ZG dd de
ZdS )    N)Function)format_alias_sqlc                       sJ   e Zd Zddedef fddZeejdefddZdd
dZ	  Z
S )_AbstractSearchStringNpatternaliasc                    $   t t| j|  ||d || _d S N)r   )superr   __init__clickhouse_function_pattern)selfnamer   r   	__class__ `/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/pypika/clickhouse/search_string.pyr
         
z_AbstractSearchString.__init__returnc                 C      d S Nr   clsr   r   r   r         z)_AbstractSearchString.clickhouse_functionFc           	      K   sz   g }| j D ] }t|dr|dj|jd	ddi|d q|t| qdj| jd|| jd}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sqlr   r   r   r      s   

$z_AbstractSearchString.get_sqlr   FFNN)__name__
__module____qualname__r$   r
   classmethodabcabstractmethodr   r   __classcell__r   r   r   r   r          r   )	metaclassc                   @      e Zd ZedefddZdS )Matchr   c                 C      dS )Nmatchr   r   r   r   r   r   #      zMatch.clickhouse_functionNr.   r/   r0   r1   r$   r   r   r   r   r   r8   "       r8   c                   @   r7   )Liker   c                 C   r9   )Nliker   r   r   r   r   r   )   r;   zLike.clickhouse_functionNr<   r   r   r   r   r>   (   r=   r>   c                   @   r7   )NotLiker   c                 C   r9   )NnotLiker   r   r   r   r   r   /   r;   zNotLike.clickhouse_functionNr<   r   r   r   r   r@   .   r=   r@   c                       sJ   e Zd Zddedef fddZeejdefddZ	dd
dZ
  ZS )_AbstractMultiSearchStringNpatternsr   c                    r   r   )r	   rB   r
   r   	_patterns)r   r   rC   r   r   r   r   r
   5   r   z#_AbstractMultiSearchString.__init__r   c                 C   r   r   r   r   r   r   r   r   :   r   z._AbstractMultiSearchString.clickhouse_functionFc           	      K   s   g }| j D ] }t|dr|dj|jdddi|d q|t| qdj| jd|ddd	 | jD d
}t	|| j
fi |S )Nr   r   r   Fr   z{name}({args},[{patterns}])r   c                 S   s   g | ]}d | qS )z'%s'r   ).0ir   r   r   
<listcomp>J   s    z6_AbstractMultiSearchString.get_sql.<locals>.<listcomp>)r   r    rC   r   )r    r!   r"   r#   r   r$   r   r%   rD   r   r   r&   r   r   r   r   ?   s   

$z"_AbstractMultiSearchString.get_sqlr   r-   )r.   r/   r0   listr$   r
   r1   r2   r3   r   r   r4   r   r   r   r   rB   4   r5   rB   c                   @   r7   )MultiSearchAnyr   c                 C   r9   )NmultiSearchAnyr   r   r   r   r   r   P   r;   z"MultiSearchAny.clickhouse_functionNr<   r   r   r   r   rI   O   r=   rI   c                   @   r7   )MultiMatchAnyr   c                 C   r9   )NmultiMatchAnyr   r   r   r   r   r   V   r;   z!MultiMatchAny.clickhouse_functionNr<   r   r   r   r   rK   U   r=   rK   )r2   pypika.termsr   pypika.utilsr   ABCMetar   r8   r>   r@   rB   rI   rK   r   r   r   r   <module>   s    