
 XA	                 @   sJ   d  d l  m Z d  d l m Z d  d l m Z Gd d   d e  Z d S)    )checks)BaseDatabaseValidation)get_docs_versionc                   s@   e  Z d  Z   f d d   Z d d   Z   f d d   Z   S)DatabaseValidationc                s2   t  t |   j |   } | j |  j |    | S)N)superr   checkextend_check_sql_mode)selfkwargsZissues)	__class__ Q/home/ubuntu/projects/ifolica/build/django/django/db/backends/mysql/validation.pyr      s    zDatabaseValidation.checkc             K   s   |  j  j     } | j d  | j   } Wd  QXt | rM | d j d  n f   } | d d h @s t j d |  j  j d d t	   f d	 d
 g Sg  S)NzSELECT @@sql_moder   ,ZSTRICT_TRANS_TABLESZSTRICT_ALL_TABLESz9MySQL Strict Mode is not set for database connection '%s'Zhinta   MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/%s/ref/databases/#mysql-sql-modeidz
mysql.W002)

connectioncursorexecuteZfetchonesetsplitr   Warningaliasr   )r
   r   r   Zsql_modemodesr   r   r   r	      s    %
z"DatabaseValidation._check_sql_modec                s   d d l  m } t t |   j | |  } t | d d  d k r | j |  } | d k rb | S| j d  r | j r | j	 d k s t
 | j	  d k r | j t j d d | d	 d
  q n  | S)z
        MySQL has the following field length restriction:
        No character (varchar) fields can have a length exceeding 255
        characters if they have a unique index on them.
        r   )r   Zremote_fieldNZvarchar   zBMySQL does not allow unique CharFields to have a max_length > 255.objr   z
mysql.E001)Z	django.dbr   r   r   check_fieldgetattrZdb_type
startswithunique
max_lengthintappendr   Error)r
   fieldr   r   errorsZ
field_type)r   r   r   r      s    $zDatabaseValidation.check_field)__name__
__module____qualname__r   r	   r   r   r   )r   r   r      s   r   N)Zdjango.corer   Z"django.db.backends.base.validationr   Zdjango.utils.versionr   r   r   r   r   r   <module>   s   