403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/django/db/backends/oracle/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/django/db/backends/oracle/__pycache__/schema.cpython-311.pyc
�

�|�e�#��R�ddlZddlZddlZddlmZddlmZGd�de��ZdS)�N)�
DatabaseError)�BaseDatabaseSchemaEditorc���eZdZdZdZdZdZdZdZeZ	dZ
dZd	Zd
Z
dZd�Z�fd
�Z�fd�Zd�fd�	Z�fd�Z�fd�Zd�Zd�Zd�Z�fd�Z�fd�Zd�Zd�Zd�Z�fd�Z�xZS)�DatabaseSchemaEditorz3ALTER TABLE %(table)s ADD %(column)s %(definition)szMODIFY %(column)s %(type)szMODIFY %(column)s NULLzMODIFY %(column)s NOT NULLz%MODIFY %(column)s DEFAULT %(default)szMODIFY %(column)s DEFAULT NULLz'MODIFY %(column)s %(type)s%(collation)sz,ALTER TABLE %(table)s DROP COLUMN %(column)szHCONSTRAINT %(name)s REFERENCES %(to_table)s(%(to_column)s)%(deferrable)sz(DROP TABLE %(table)s CASCADE CONSTRAINTSz9CREATE INDEX %(name)s ON %(table)s (%(columns)s)%(extra)sc��t|tjtjtjf��rd|zSt|t��r-d|�dd���dd��zSt|tttf��rd|�	��zSt|t��r|rdndSt	|��S)Nz'%s'�'z''�%z%%�1�0)�
isinstance�datetime�date�time�str�replace�bytes�	bytearray�
memoryview�hex�bool��self�values  �B/usr/lib/python3/dist-packages/django/db/backends/oracle/schema.py�quote_valuez DatabaseSchemaEditor.quote_values����e�h�m�X�]�H�<M�N�O�O�		��E�>�!�
��s�
#�
#�	��E�M�M�$��7�7�?�?��T�J�J�J�J�
���y�*�=�
>�
>�	��E�I�I�K�K�'�'�
��t�
$�
$�	��(�3�3�S�(��u�:�:��c����|�|jj|j��r%|�|jj|j��t���||��dS�N)�_is_identity_column�_meta�db_table�column�_drop_identity�super�remove_field)r�model�field�	__class__s   �rr%z!DatabaseSchemaEditor.remove_field%sb����#�#�E�K�$8�%�,�G�G�	D������ 4�e�l�C�C�C�
�����U�E�*�*�*�*�*rc����t���|��|�dd|jj�|jj��iz��dS)NaK
            DECLARE
                i INTEGER;
            BEGIN
                SELECT COUNT(1) INTO i FROM USER_SEQUENCES
                    WHERE SEQUENCE_NAME = '%(sq_name)s';
                IF i = 1 THEN
                    EXECUTE IMMEDIATE 'DROP SEQUENCE "%(sq_name)s"';
                END IF;
            END;
        /�sq_name)r$�delete_model�execute�
connection�ops�_get_no_autofield_sequence_namer r!)rr&r(s  �rr+z!DatabaseSchemaEditor.delete_model,sm���
�����U�#�#�#����

��4�?�.�N�N�u�{�Oc�d�d�e�
f�
	g�
	g�
	g�
	g�
	grFc����	t���||||��dS#t$r�}t|��}d|vsd|vr|�|||��n}d|vr>|�|jj|j��|�||||��nAd|vr6|j	r/|�
|d���|�|||��n
�Yd}~dSYd}~dSYd}~dSd}~wwxYw)Nz	ORA-22858z	ORA-22859z	ORA-30675z	ORA-30673T)�strict)r$�alter_fieldrr�_alter_field_type_workaroundr#r r!r"�primary_key�_delete_primary_key)rr&�	old_field�	new_fieldr1�e�descriptionr(s       �rr2z DatabaseSchemaEditor.alter_field<s[���	��G�G����y�)�V�D�D�D�D�D���	�	�	��a�&�&�K��k�)�)�[�K�-G�-G��1�1�%��I�N�N�N�N���+�+��#�#�E�K�$8�)�:J�K�K�K�� � ��	�9�f�E�E�E�E���+�+�	�0E�+��(�(��t�(�<�<�<��1�1�%��I�N�N�N�N��O�N�N�N�N�N�
F�E�E�E�E�E�
O�N�N�N�N�N�����	���s�$)�
C6�B,C1�1C6c� ��tj|��}|���dv|_|�|j��|_|�||��|�|j��}|�|j	��}tjd|��rd|z}d}tjd|��r7|���}|dkrd|z}n|dkrd	|z}n|d
krd|z}|�d|�|j
j���d
|�|j���d|����|�||��t!���|||��dS)a�
        Oracle refuses to change from some type to other type.
        What we need to do instead is:
        - Add a nullable version of the desired field with a temporary name. If
          the new column is an auto field, then the temporary column can't be
          nullable.
        - Update the table to transfer values from old to new
        - Drop old column
        - Rename the new column and possibly drop the nullable property
        )�	AutoField�BigAutoField�SmallAutoFieldz^N?CLOBzTO_CHAR(%s)�VARCHAR2z^N?VARCHAR2�	DateFieldzTO_DATE(%s, 'YYYY-MM-DD')�
DateTimeFieldz,TO_TIMESTAMP(%s, 'YYYY-MM-DD HH24:MI:SS.FF')�	TimeFieldzCTO_TIMESTAMP(CONCAT('1900-01-01 ', %s), 'YYYY-MM-DD HH24:MI:SS.FF')zUPDATE z set �=N)�copy�deepcopy�get_internal_type�null�_generate_temp_namer"�	add_field�
quote_name�db_typer-�re�matchr,r r!r%r$r2)	rr&r6r7�new_temp_field�	new_value�old_type�new_internal_typer(s	        �rr3z1DatabaseSchemaEditor._alter_field_type_workaroundRs������y�1�1��(�:�:�<�<�Ds�s��� $� 8� 8��9I� J� J������u�n�-�-�-��O�O�I�$4�5�5�	��$�$�T�_�5�5��
�8�I�x�(�(�	"�%�	�1�I�!�H�
�8�M�8�,�,�	n� )� ;� ;� =� =�� �K�/�/�7�)�C�	�	�"�o�5�5�J�Y�V�	�	�"�k�1�1�a�dm�m�	������O�O�E�K�0�1�1�1�1��O�O�N�1�2�2�2�2��I�
�	�	�	�	
���%��+�+�+�
�����E�>�9�=�=�=�=�=rc�@��hd�}|���|vr`|���|vrJ|�|jj|j��r%|�|jj|j��t
���||||��S)N>r;r<r=)rErr r!r"r#r$�_alter_column_type_sql)rr&r6r7�new_type�auto_field_typesr(s      �rrRz+DatabaseSchemaEditor._alter_column_type_sql�s����J�J�J��
�'�'�)�)�-=�=�=��'�'�)�)�1A�A�A��$�$�U�[�%9�9�;K�L�L�
B�
����� 4�i�6F�G�G�G��w�w�-�-�e�Y�	�8�T�T�Trc�t�|�|��}|ddkr|ddkr
|dd�}|S)z�
        Get the properly shortened and uppercased identifier as returned by
        quote_name() but without the quotes.
        r�"����)rI)r�name�nns   r�normalize_namez#DatabaseSchemaEditor.normalize_name�s@��
�_�_�T�
"�
"��
�a�5�C�<�<�B�r�F�c�M�M��A�b�D��B��	rc��tt|�������dd�}|�|dz|z��S)z@Generate temporary names for workarounds that need temp columns.rXN�_)r�hash�upperr[)r�for_name�suffixs   rrGz(DatabaseSchemaEditor._generate_temp_name�sG���T�(�^�^�$�$�*�*�,�,�Q�R�R�0���"�"�8�c�>�F�#:�;�;�;rc�,�|�|��Sr)rrs  r�prepare_defaultz$DatabaseSchemaEditor.prepare_default�s������&�&�&rc����t���||��}|�|j��}|�"|���|jjvrdS|S)NF)r$�_field_should_be_indexedrJr-�lower�_limited_data_types)rr&r'�create_indexrJr(s     �rrez-DatabaseSchemaEditor._field_should_be_indexed�sW����w�w�7�7��u�E�E���-�-���0�0����7�=�=�?�?�d�o�6Y�#Y�#Y��5��rc�v��t���||��o|�||��Sr)r$�_unique_should_be_added�_field_became_primary_key)rr6r7r(s   �rrjz,DatabaseSchemaEditor._unique_should_be_added�s;����G�G�+�+�I�y�A�A�
E��.�.�y�)�D�D�D�	
rc�$�|j���5}|�d|�|��|�|��g��|���}|r|dndcddd��S#1swxYwYdS)Nz�
                SELECT
                    CASE WHEN identity_column = 'YES' THEN 1 ELSE 0 END
                FROM user_tab_cols
                WHERE table_name = %s AND
                      column_name = %s
            rF�r-�cursorr,r[�fetchone)r�
table_name�column_namern�rows     rrz(DatabaseSchemaEditor._is_identity_column�s���
�_�
#�
#�
%�
%�		,���N�N���%�%�j�1�1�4�3F�3F�{�3S�3S�T�

V�
V�
V��/�/�#�#�C� �+�3�q�6�6�e�		,�		,�		,�		,�		,�		,�		,�		,�		,�		,�		,�		,����		,�		,�		,�		,�		,�		,s�AB�B	�B	c��|�d|�|��|�|��d�z��dS)Nz5ALTER TABLE %(table)s MODIFY %(column)s DROP IDENTITY)�tabler")r,rI)rrprqs   rr#z#DatabaseSchemaEditor._drop_identity�sT�����L��_�_�Z�0�0��o�o�k�2�2�P
�P
�
�	�	�	�	�	rc���|j���5}|�d|�|��g��|���dcddd��S#1swxYwYdS)Nz]
                SELECT default_collation FROM user_tables WHERE table_name = %s
            rrm)rrprns   r�_get_default_collationz+DatabaseSchemaEditor._get_default_collation�s���
�_�
#�
#�
%�
%�	(���N�N���%�%�j�1�1�2�
4�
4�
4��?�?�$�$�Q�'�		(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�AA+�+A/�2A/c���|�|�|jj��}t���||||��Sr)rvr r!r$�_alter_column_collation_sql)rr&r7rS�
new_collationr(s     �rrxz0DatabaseSchemaEditor._alter_column_collation_sql�s?���� � �7�7���8L�M�M�M��w�w�2�2�5�)�X�}�]�]�]r)F)�__name__�
__module__�__qualname__�sql_create_column�sql_alter_column_type�sql_alter_column_null�sql_alter_column_not_null�sql_alter_column_default�sql_alter_column_no_default� sql_alter_column_no_default_null�sql_alter_column_collate�sql_delete_column�sql_create_column_inline_fk�sql_delete_table�sql_create_indexrr%r+r2r3rRr[rGrcrerjrr#rvrx�
__classcell__)r(s@rrr	s��������M��8��4�� <��F��"B��'B�$�H��F��"l��A��R��
�
�
�+�+�+�+�+�g�g�g�g�g� ������,,>�,>�,>�,>�,>�\	U�	U�	U�	U�	U����<�<�<�
'�'�'������
�
�
�
�
�
,�
,�
,����(�(�(�^�^�^�^�^�^�^�^�^rr)rCr
rK�	django.dbr�django.db.backends.base.schemarr�rr�<module>r�s�����������	�	�	�	�#�#�#�#�#�#�C�C�C�C�C�C�}^�}^�}^�}^�}^�3�}^�}^�}^�}^�}^r

Youez - 2016 - github.com/yon3zu
LinuXploit