o
    F„f!  ã                   @   s¼   d dl mZmZ d dlmZ e d¡G dd„ deƒƒZe d¡G dd„ deƒƒZe d	¡G d
d„ deƒƒZe d¡G dd„ deƒƒZ	e d¡G dd„ deƒƒZ
e d¡G dd„ deƒƒZdS )é    )Ú
OperationsÚMigrateOperation)ÚExecuteSQLOpÚcreate_mat_viewc                   @   ó(   e Zd Zdd„ Zedd„ ƒZdd„ ZdS )ÚCreateMatViewOpc                 O   ó"   || _ || _|| _|| _|| _d S ©N©ÚnameÚ
selectableÚengineÚcolumnsÚkwargs©Úselfr   r   r   r   r   © r   úa/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_sqlalchemy/alembic/operations.pyÚ__init__   ó
   
zCreateMatViewOp.__init__c                 O   ó$   t |||g|¢R i |¤Ž}| |¡S )z/Issue a "CREATE MATERIALIZED VIEW" instruction.)r   Úinvoke©ÚclsÚ
operationsr   r   r   r   r   Úopr   r   r   r      ó   
zCreateMatViewOp.create_mat_viewc                 C   ó$   t | j| j| jg| j¢R i | j¤ŽS r	   )ÚDropMatViewOpr   r   r   r   r   ©r   r   r   r   Úreverse   ó   ÿÿþzCreateMatViewOp.reverseN)Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   r    r   r   r   r   r      ó
    
r   Úcreate_mat_view_to_tablec                   @   r   )ÚCreateMatViewToTableOpc                 K   ó   || _ || _|| _|| _d S r	   )r   r   Ú
inner_namer   )r   r   r   r*   r   r   r   r   r      ó   
zCreateMatViewToTableOp.__init__c                 K   s   t |||fi |¤Ž}| |¡S )z?Issue a "CREATE MATERIALIZED VIEW" instruction wit "TO" clause.)r(   r   )r   r   r   r   r*   r   r   r   r   r   r'   %   s   
z/CreateMatViewToTableOp.create_mat_view_to_tablec                 C   ó   t | j| j| jfi | j¤ŽS r	   )ÚDropMatViewToTableOpr   r   r*   r   r   r   r   r   r    -   ó
   ÿÿzCreateMatViewToTableOp.reverseN)r"   r#   r$   r   r%   r'   r    r   r   r   r   r(      s
    
r(   Údrop_mat_view_to_tablec                   @   r   )r-   c                 K   r)   r	   )r   Úold_selectabler*   r   )r   r   r0   r*   r   r   r   r   r   5   r+   zDropMatViewToTableOp.__init__c                 K   óJ   d}|  d¡r|d7 }||7 }|  d¡r|d|d  7 }t|ƒ}| |¡S ©z Issue a "DROP VIEW" instruction.z
DROP VIEW Ú	if_existsú
IF EXISTS Ú
on_clusterú ON CLUSTER ©Úgetr   r   ©r   r   r   r   Úsqlr   r   r   r   r/   ;   ó   


z+DropMatViewToTableOp.drop_mat_view_to_tablec                 C   r,   r	   )r(   r   r0   r*   r   r   r   r   r   r    K   r.   zDropMatViewToTableOp.reverseN)r"   r#   r$   r   r%   r/   r    r   r   r   r   r-   3   s
    
r-   Údrop_mat_viewc                   @   r   )r   c                 O   r   r	   r
   r   r   r   r   r   S   r   zDropMatViewOp.__init__c                 K   r1   r2   r7   r9   r   r   r   r<   Z   r;   zDropMatViewOp.drop_mat_viewc                 C   r   r	   )r   r   r   r   r   r   r   r   r   r   r    j   r!   zDropMatViewOp.reverseN)r"   r#   r$   r   r%   r<   r    r   r   r   r   r   Q   s
    
r   Úattach_mat_viewc                   @   r   )ÚAttachMatViewOpc                 O   r   r	   r
   r   r   r   r   r   s   r   zAttachMatViewOp.__init__c                 O   r   )z/Issue a "ATTACH MATERIALIZED VIEW" instruction.)r>   r   r   r   r   r   r=   z   r   zAttachMatViewOp.attach_mat_viewc                 C   r   r	   )ÚDetachMatViewOpr   r   r   r   r   r   r   r   r   r    ‚   r!   zAttachMatViewOp.reverseN)r"   r#   r$   r   r%   r=   r    r   r   r   r   r>   q   r&   r>   Údetach_mat_viewc                   @   r   )r?   c                 O   r   r	   )r   r0   r   r   r   )r   r   r0   r   r   r   r   r   r   r   ‹   r   zDetachMatViewOp.__init__c                 K   s\   d}|  d¡r|d7 }||7 }|  d¡r|d|d  7 }|  d¡r%|d7 }t|ƒ}| |¡S )z"Issue a "DETACH VIEW" instruction.zDETACH VIEW r3   r4   r5   r6   Úpermanentlyz PERMANENTLYr7   r9   r   r   r   r@   ’   s   



zDetachMatViewOp.detach_mat_viewc                 C   r   r	   )r>   r   r0   r   r   r   r   r   r   r   r    ¦   r!   zDetachMatViewOp.reverseN)r"   r#   r$   r   r%   r@   r    r   r   r   r   r?   ‰   s
    
r?   N)Úalembic.operationsr   r   Úalembic.operations.opsr   Úregister_operationr   r(   r-   r   r>   r?   r   r   r   r   Ú<module>   s    