o
    vi%
                     @  s   d dl mZ 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 )    )annotationsN)Function)format_alias_sqlc                      s>   e Zd Zdd fddZeejdd	d
ZdddZ  Z	S )_AbstractSearchStringNpatternstralias
str | Nonec                       t  j|  ||d || _d S N)r   )super__init__clickhouse_function_pattern)selfnamer   r   	__class__ ^/home/air/biblejyuku/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   r   r   joinr   r   r   	r   r   with_namespace
quote_chardialectkwargsr#   psqlr   r   r   r      s   

$z_AbstractSearchString.get_sqlr   )r   r   r   r	   r   r   FFNN
__name__
__module____qualname__r   classmethodabcabstractmethodr   r   __classcell__r   r   r   r   r   	       r   )	metaclassc                   @     e Zd ZedddZdS )Matchr   r   c                 C     dS )Nmatchr   r   r   r   r   r   %      zMatch.clickhouse_functionNr/   r2   r3   r4   r5   r   r   r   r   r   r<   $       r<   c                   @  r;   )Liker   r   c                 C  r=   )Nliker   r   r   r   r   r   +   r?   zLike.clickhouse_functionNr/   r@   r   r   r   r   rB   *   rA   rB   c                   @  r;   )NotLiker   r   c                 C  r=   )NnotLiker   r   r   r   r   r   1   r?   zNotLike.clickhouse_functionNr/   r@   r   r   r   r   rD   0   rA   rD   c                      s>   e Zd Zdd fddZeejdd
dZdddZ  Z	S )_AbstractMultiSearchStringNpatternslistr   r	   c                   r
   r   )r   r   r   	_patterns)r   r   rG   r   r   r   r   r   7   r   z#_AbstractMultiSearchString.__init__r   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>L   s    z6_AbstractMultiSearchString.get_sql.<locals>.<listcomp>)r   r#   rG   r   )r#   r$   r%   r&   r   r   r   r'   rI   r   r   r(   r   r   r   r   A   s   

$z"_AbstractMultiSearchString.get_sqlr   )rG   rH   r   r	   r/   r0   r1   r   r   r   r   rF   6   r9   rF   c                   @  r;   )MultiSearchAnyr   r   c                 C  r=   )NmultiSearchAnyr   r   r   r   r   r   R   r?   z"MultiSearchAny.clickhouse_functionNr/   r@   r   r   r   r   rM   Q   rA   rM   c                   @  r;   )MultiMatchAnyr   r   c                 C  r=   )NmultiMatchAnyr   r   r   r   r   r   X   r?   z!MultiMatchAny.clickhouse_functionNr/   r@   r   r   r   r   rO   W   rA   rO   )
__future__r   r6   pypika.termsr   pypika.utilsr   ABCMetar   r<   rB   rD   rF   rM   rO   r   r   r   r   <module>   s    