o
    9fD
                     @   s   d dl mZmZmZmZ d dlm	Z	 d dl
mZ G dd deZG dd deZG dd	 d	eZG d
d deZG dd deZdd Zdd Zdd ZdS )    )SchemaDropper	DropTableSchemaGenerator_CreateDropBase)UnaryExpression)	custom_opc                          e Zd Zd fdd	Z  ZS )r   NFc                    s(   |j d d | _tt| j||d d S )N
clickhousecluster	if_exists)dialect_options
on_clustersuperr   __init__selfelementbindr   	__class__ V/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/sql/ddl.pyr   
   s   
zDropTable.__init__NF__name__
__module____qualname__r   __classcell__r   r   r   r   r   	       r   c                       r   )DropViewNFc                    s    |j | _tt| j||d d S Nr   )r
   r   r   r    r   r   r   r   r   r      s   zDropView.__init__r   r   r   r   r   r   r       r   r    c                       s.   e Zd Zd fdd	Zdd Zdd Z  ZS )	r   Fc                    $   || _ tt| j||fi | d S N)r   r   r   r   )r   dialect
connectionr   kwargsr   r   r   r         zSchemaDropper.__init__c                 K   sJ   |j j|| j| j| d | jt|| jd |j j|| j| j| d d S )N)
checkfirst_ddl_runnerr   )dispatchbefore_dropr%   r(   executer   r   
after_dropr   tabler&   r   r   r   visit_table   s   
zSchemaDropper.visit_tablec                 K      | j t|| jd d S r!   )r%   r,   r    r   r.   r   r   r   visit_materialized_view,   s   z%SchemaDropper.visit_materialized_viewF)r   r   r   r   r0   r2   r   r   r   r   r   r      s    r   c                       s&   e Zd ZdZdZd fdd	Z  ZS )CreateMaterializedViewz/Represent a CREATE MATERIALIZED VIEW statement.create_materialized_viewFc                    s   || _ tt| | d S r#   )if_not_existsr   r4   r   )r   r   r6   r   r   r   r   5   s   zCreateMaterializedView.__init__r3   )r   r   r   __doc____visit_name__r   r   r   r   r   r   r4   0   s    r4   c                       s&   e Zd Zd fdd	Zdd Z  ZS )r   Fc                    r"   r#   )r6   r   r   r   )r   r$   r%   r6   r&   r   r   r   r   ;   r'   zSchemaGenerator.__init__c                 K   r1   )N)r6   )r%   r,   r4   r6   r.   r   r   r   r2   ?   s   z'SchemaGenerator.visit_materialized_viewr3   )r   r   r   r   r2   r   r   r   r   r   r   :   s    r   c                 C   s   t | tddS )NDELETE)modifier)r   r   )exprr   r   r   
ttl_deleteE   s   r<   c                 C       t |ts	J d| d|S )NzDisk must be strzTO DISK
isinstancestrop)r;   diskr   r   r   ttl_to_diskI      rC   c                 C   r=   )NzVolume must be strz	TO VOLUMEr>   )r;   volumer   r   r   ttl_to_volumeN   rD   rF   N)sqlalchemy.sql.ddlr   SchemaDropperBaser   DropTableBaser   SchemaGeneratorBaser   sqlalchemy.sql.expressionr   sqlalchemy.sql.operatorsr   r    r4   r<   rC   rF   r   r   r   r   <module>   s    
