
    +h                     Z    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d de          Z	dS )    N)
errorcodes)ImproperlyConfigured)BaseDatabaseCreation)strip_quotesc                   B     e Zd Zd Zd	dZd Zd Zd
 fd	Zd
dZ xZ	S )DatabaseCreationc                 @    | j         j                            |          S )N)
connectionops
quote_name)selfnames     j/var/www/html/e360mart/e360mart_env/lib/python3.11/site-packages/django/db/backends/postgresql/creation.py_quote_namezDatabaseCreation._quote_name   s    "--d333    Nc                     d}|r|d                     |          z  }|r+|d                     |                     |                    z  }|od|z   S )N z ENCODING '{}'z TEMPLATE {}WITH)formatr   )r   encodingtemplatesuffixs       r   _get_database_create_suffixz,DatabaseCreation._get_database_create_suffix   sf     	8&--h777F 	Hn++D,<,<X,F,FGGGF)&6/)r   c                     | j         j        d         }|                    d          t          d          |                     |d         |                    d                    S )NTEST	COLLATIONzHPostgreSQL does not support collation setting at database creation time.CHARSETTEMPLATE)r   r   )r
   settings_dictgetr   r   )r   test_settingss     r   sql_table_creation_suffixz*DatabaseCreation.sql_table_creation_suffix   st    5f=[))5&!   //"9-"&&z22 0 
 
 	
r   c                 v    |                     dt          |          g           |                                d uS )Nz7SELECT 1 FROM pg_catalog.pg_database WHERE datname = %s)executer   fetchone)r   cursordatabase_names      r   _database_existsz!DatabaseCreation._database_exists#   s9    PS_`mSnSnRoppp  ,,r   Fc                 t   	 |r|                      ||d                   rd S t                                          |||           d S # t          $ re}t	          |j        dd          t          j        k    r-|                     d|z             t          j
        d           n	|s Y d }~d S Y d }~d S d }~ww xY w)Ndbnamepgcoder   z+Got an error creating the test database: %s   )r(   super_execute_create_test_db	Exceptiongetattr	__cause__r   DUPLICATE_DATABASElogsysexit)r   r&   
parameterskeepdbe	__class__s        r   r.   z(DatabaseCreation._execute_create_test_db'   s    	 $//
88LMM  GG++FJGGGGG 	 	 	q{Hb11Z5RRRFJKKK        		s   A #A 
B7AB22B7c           	         | j                                          | j         j        d         }|                     |          d         }|                     |          |                     |          d}|                                 5 }	 |                     |||           n# t          $ r 	 |dk    r-| 	                    d| 
                    ||          d           |                    d|z             |                     |||           nC# t          $ r6}| 	                    d|z             t          j        d	           Y d }~nd }~ww xY wY nw xY wd d d            d S # 1 swxY w Y   d S )
NNAME)r   )r*   r      z'Destroying old test database for alias z...zDROP DATABASE %(dbname)sz*Got an error cloning the test database: %sr,   )r
   closer   get_test_db_clone_settingsr   r   _nodb_cursorr.   r/   r3   _get_database_display_strr$   r4   r5   )	r   r   	verbosityr7   source_database_nametarget_database_nametest_db_paramsr&   r8   s	            r   _clone_test_dbzDatabaseCreation._clone_test_db8   s    	#<VD#>>vFFvN&&';<<66@T6UU
 
    	 F ,,V^VLLLL 
  
  
 	  A~~ ::9FZ[[[["    NN#=#NOOO00PPPP       HHIAMNNNHQKKKKKKKK 
 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 sa   E%	B! E%!
E,A"DE
E,E
E
EEE%EE%%E),E))NN)F)
__name__
__module____qualname__r   r   r"   r(   r.   rE   __classcell__)r9   s   @r   r   r   
   s        4 4 4* * * *

 

 

- - -     "               r   r   )
r4   psycopg2r   django.core.exceptionsr    django.db.backends.base.creationr   django.db.backends.utilsr   r    r   r   <module>rO      s    



       7 7 7 7 7 7 A A A A A A 1 1 1 1 1 1F  F  F  F  F + F  F  F  F  F r   