o
    9f                     @   sL   d dl mZ d dlmZ ddlmZmZmZm	Z	 dZ
G dd deZeZdS )	    )_generative)Select   )	ArrayJoinLeftArrayJoinLimitByClausesample_clause)r   selectc                       s   e Zd ZdZdZdZdZdZdZdZ	e
dd Ze
dd Ze
dd Ze
d	d
 Ze
dd Ze
dddZdd Ze
dd Ze
dd Z		d fdd	Z  ZS )r   FNc                 C   
   d| _ | S NT)
_with_cubeself r   ]/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/sql/selectable.py	with_cube      zSelect.with_cubec                 C   r
   r   )_with_rollupr   r   r   r   with_rollup   r   zSelect.with_rollupc                 C   r
   r   )_with_totalsr   r   r   r   with_totals$   r   zSelect.with_totalsc                 C   r
   r   )_final_clauser   r   r   r   final)   r   zSelect.finalc                 C   s   t || _| S N)r   _sample_clause)r   sampler   r   r   r   .   s   
zSelect.samplec                 C   s   t |||| _| S r   )r   _limit_by_clause)r   
by_clauseslimitoffsetr   r   r   limit_by3      zSelect.limit_byc                 C   s   |st nt}|| | _d S r   )r   r   _array_join)r   columnsleft	join_typer   r   r   _add_array_join8   s   zSelect._add_array_joinc                 O   s   | dd}| j||d | S )Nr$   Fr$   )getr&   )r   r#   kwargsr$   r   r   r   
array_join<   s   zSelect.array_joinc                 G   s   | j |dd | S )NTr'   )r&   )r   r#   r   r   r   left_array_joinB   r!   zSelect.left_array_joinc           	         s"   ||||d}t  j||||dS )N)fulltype
strictnessdistribution)onclauseisouterr,   )superjoin)	r   rightr0   r1   r,   r-   r.   r/   flags	__class__r   r   r3   G   s   zSelect.joinr   )NFFNNN)__name__
__module____qualname__r   r   r   r   r   r   r"   r   r   r   r   r   r   r    r&   r*   r+   r3   __classcell__r   r   r6   r   r      s8    






r   N)sqlalchemy.sql.baser   sqlalchemy.sql.selectabler   StandardSelectext.clausesr   r   r   r   __all__r	   r   r   r   r   <module>   s    B