https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/django/db/backends/oracle/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/django/db/backends/oracle/__pycache__/introspection.cpython-310.pyc
o

3�a@7�@sdddlmZddlZddlmZddlmZmZm	Z	ddl
mZedejd�ZGdd	�d	e�Z
dS)
�)�
namedtupleN)�models)�BaseDatabaseIntrospection�	FieldInfo�	TableInfo)�cached_propertyr)�is_autofield�is_jsoncsneZdZdZedd��Z�fdd�Zdd�Zdd	�Zd
d�Z	dd
d�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�DatabaseIntrospection�cCs�|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��self�r2�I/usr/lib/python3/dist-packages/django/db/backends/oracle/introspection.py�data_types_reverses6��z(DatabaseIntrospection.data_types_reversecs�|tjkrA|dd�\}}|dkr:|dkr|jrdSdSd|kr&dkr-nn|jr-dS|dkr3d	S|jr8d
SdS|dkr@d
Sn
|tjkrK|jrKdSt��||�S)N��r��BigAutoField�BigIntegerFieldr�SmallAutoField�BooleanField�	AutoField�IntegerFieldi����r�	JSONField)rr!rr r	�super�get_field_type)r1�	data_type�description�	precision�scale��	__class__r2r3r@3s$
�z$DatabaseIntrospection.get_field_typecs |�d��fdd�|��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
        cs$g|]}t��|d�|d��qS)rr)r�identifier_converter��.0�rowr0r2r3�
<listcomp>Xs$z8DatabaseIntrospection.get_table_list.<locals>.<listcomp>)�execute�fetchall)r1�cursorr2r0r3�get_table_listHs
z$DatabaseIntrospection.get_table_listcCs�|�d|g�dd�|��D�}|jd7_|�d�|jj�|�|j��g}|jD]A}|d}||\}}}	}
}|i}|�t	|�
|�g|dd��|�|dpSd�|d	pYd�|d
d��|�|	�|
�|�R��q+|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)
        cSs4i|]\}}}}}}|||dkr|nd|||f�qS)�NULLNr2)rI�column�default�	collation�
internal_sizerr	r2r2r3�
<dictcomp>�s��z?DatabaseIntrospection.get_table_description.<locals>.<dictcomp>rz,SELECT * FROM {} WHERE ROWNUM < 2 AND {} > 0r�r5�r6N)rLrM�cache_bust_counter�formatr�ops�
quote_namerB�appendrrG)r1rN�
table_name�	field_maprB�desc�namerTrRrSrr	r2r2r3�get_table_descriptionZsL!�"��
�
��
�
�
�����z+DatabaseIntrospection.get_table_descriptioncCs|��S)z7Identifier comparison is case insensitive under Oracle.)�lower)r1r`r2r2r3rG�sz*DatabaseIntrospection.identifier_converterr2cCsn|�d|g�|��}|r!|�|d�|�|�|�|d�d�gS|D]}t|tj�r4||jd�gSq#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)r`�tablerQ)rcrQ)rL�fetchonerG�
isinstancerr<rQ)r1rNr]�table_fieldsrJ�fr2r2r3�
get_sequences�s���z#DatabaseIntrospection.get_sequencescs,|��}|�d|g��fdd�|��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.positioncs.i|]\}}}��|���|���|�f�qSr2�rG)rI�
field_name�rel_table_name�rel_field_namer0r2r3rU�s���z7DatabaseIntrospection.get_relations.<locals>.<dictcomp>)�upperrLrM�r1rNr]r2r0r3�
get_relations�s�
�z#DatabaseIntrospection.get_relationscs(|�d|��g��fdd�|��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'cs"g|]
}t�fdd�|D���qS)c3s�|]}��|�VqdS)Nri)rI�cellr0r2r3�	<genexpr>�s�zCDatabaseIntrospection.get_key_columns.<locals>.<listcomp>.<genexpr>)�tuplerHr0r2r3rK�s��z9DatabaseIntrospection.get_key_columns.<locals>.<listcomp>)rLrmrMrnr2r0r3�get_key_columns�s�
�z%DatabaseIntrospection.get_key_columnscCs,|�d|g�|��}|r|�|d�SdS)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)rLrdrG)r1rNr]rJr2r2r3�get_primary_key_column�s
�z,DatabaseIntrospection.get_primary_key_columnc
Csi}|�d|g�|��D]\}}}}}|�|�}|�d�||d||d�||<q
|�d|g�|��D]\}}}	}
|�|�}dd|	|
fdd|�d�d�||<q3|�d|g�|��D]$\}}}}|�|�}ddddd	|d
krpdn||�d�|�d�d�||<qZ|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)rwrxryrzr{rva�
            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)rwrxryrzr{�typerv�orders)rLrMrG�split)
r1rNr]�constraints�
constraintrv�pkrxrz�other_table�other_column�type_rr2r2r3�get_constraints�sP�
�	�
�	�
�
z%DatabaseIntrospection.get_constraints)r2)�__name__�
__module__�__qualname__rXrr4r@rOrarGrhrorsrtr��
__classcell__r2r2rEr3r
s
 ;
r
)�collectionsrr�	django.dbr�%django.db.backends.base.introspectionrr�
BaseFieldInfor�django.utils.functionalr�_fieldsr
r2r2r2r3�<module>s

https://t.me/RX1948 - 2025