o
    EDi,                     @   sH   d dl mZ d dlmZ d dlmZ G dd deZG dd deZdS )	    )DDL)ArgumentError)quote_identifierc                       s@   e Zd ZdZ		ddededed	ed
edef fddZ  ZS )CreateDatabasezl
    SqlAlchemy DDL statement that is essentially an alternative to the built in CreateSchema DDL class
    N{shard}	{replica}Fnameenginezoo_path
shard_namereplica_name	exists_okc                    s   |r|dvrt d| d|rdnd t| }|r;|d| 7 }|dkr;|s-t d|d	| d
| d
| d7 }t | dS )aN  
        :param name: Database name
        :param engine: Database ClickHouse engine type
        :param zoo_path: ClickHouse zookeeper path for Replicated database engine
        :param shard_name: Clickhouse shard name for Replicated database engine
        :param replica_name: Replica name for Replicated database engine
        )OrdinaryAtomicLazy
ReplicatedzUnrecognized engine type zCREATE DATABASE zIF NOT EXISTS  z Engine r   z3zoo_path is required for Replicated Database Enginez ('z', ''N)r   r   super__init__)selfr   r	   r
   r   r   r   stmt	__class__ d/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_connect/cc_sqlalchemy/ddl/custom.pyr      s   	zCreateDatabase.__init__)NNr   r   F__name__
__module____qualname____doc__strboolr   __classcell__r   r   r   r   r      s    r   c                       s,   e Zd ZdZddedef fddZ  ZS )DropDatabasezP
    Alternative DDL statement for built in SqlAlchemy DropSchema DDL class
    Fr   
missing_okc                    s&   t  d|rdnd t|  d S )NzDROP DATABASE z
IF EXISTS r   )r   r   r   )r   r   r%   r   r   r   r   '   s   &zDropDatabase.__init__)Fr   r   r   r   r   r$   #   s     r$   N)sqlalchemy.sql.ddlr   sqlalchemy.excr   !clickhouse_connect.driver.bindingr   r   r$   r   r   r   r   <module>   s
    