
v^"
                 @   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 d d   Z   S)DatabaseValidationc                s,   t    j |   } | j |  j |    | S)N)supercheckextend_check_sql_mode)selfkwargsZissues)	__class__ E/tmp/pip-build-8lau8j11/django/django/db/backends/mysql/validation.pyr      s    zDatabaseValidation.checkc             K   s   |  j  j     } | j d  | j   } Wd  QRXt | rN | 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'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          	   C   s   g  } | j  d  rd | j rd | j d k sB t | j  d k rd | j t j d d | d d  | j r | j   |  j	 j
 k r | j t j d |  j	 j | f d	 d
 d | d d  | S)a  
        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.
        MySQL doesn't support a database index on some data types.
        ZvarcharN   zBMySQL does not allow unique CharFields to have a max_length > 255.objr   z
mysql.E001z3%s does not support a database index on %s columns.r   zKAn index won't be created. Silence this warning if you don't care about it.zfields.W162)
startswithunique
max_lengthintappendr   ErrorZdb_indexlowerr   Z_limited_data_typesr   Zdisplay_name)r
   fieldZ
field_typeerrorsr   r   r   check_field_type   s"    $
!
z#DatabaseValidation.check_field_type)__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   