o
    EQdA                     @   sd   d dl mZ d dlmZ ddlmZ eejdd Zeej	dd Z
eejd	d
 ZdS )    )
Operations)CreateColumn   )
operationsc                    s   | j }|j|jd  d}|jdr|d7 }||j7 }|jdr+|d|jd  7 }|dd fdd	|jD  d
 7 }|d|j 7 }|jdrO|d7 }|d|j	 7 }| 
| d S )NCREATE MATERIALIZED VIEW if_not_existsIF NOT EXISTS 
on_cluster ON CLUSTER  (, c                 3       | ]
}  t|V  qd S Nprocessr   .0cddl_compiler ]/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/alembic/toimpl.py	<genexpr>       
z"create_mat_view.<locals>.<genexpr>) 	ENGINE = populate	 POPULATE AS impldialectr   kwargsgetnamejoincolumnsengine
selectableexecuter   	operationr    textr   r   r   create_mat_view   s$   
r-   c                 C   s~   d}|j dr|d7 }||j7 }|j dr |d|j d  7 }|d|j 7 }|j dr1|d7 }|d	|j 7 }| | d S )
Nr   r   r   r	   r
   z TO r   r   r   )r"   r#   r$   
inner_namer(   r)   )r   r+   r,   r   r   r   create_mat_view_to_table$   s   
r/   c                    s   | j }|j|jd  d}|jdr|d7 }||jd 7 }|jdr-|d|jd  7 }|dd fd	d
|jD  d 7 }|d|j d |j	 7 }| 
| d S )NzATTACH MATERIALIZED VIEW r   r    r	   r
   r   r   c                 3   r   r   r   r   r   r   r   r   I   r   z"attach_mat_view.<locals>.<genexpr>r   r   r   r   r*   r   r   r   attach_mat_view:   s   r1   N)alembic.operationsr   sqlalchemy.sql.ddlr    r   implementation_forCreateMatViewOpr-   CreateMatViewToTableOpr/   AttachMatViewOpr1   r   r   r   r   <module>   s    




