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 : |
o 3�a@7 � @ sd d dl mZ d dlZd dlmZ d dlmZmZm Z d dl mZ edejd �ZG dd � d e�Z dS ) � )� namedtupleN)�models)�BaseDatabaseIntrospection� FieldInfo� TableInfo)�cached_propertyr )�is_autofield�is_jsonc sn e Zd ZdZedd� �Z� fdd�Zdd� Zdd � Zd d� Z dd d�Z dd� Zdd� Zdd� Z dd� Z� ZS )�DatabaseIntrospection� c C s� | j jdk r,tjdtjdtjdtjdtjdtjdtj dtj dtjdtjdtj dtjd iS tjdtjdtjdtjdtjdtjdtjdtjdtjdtjdtjd tjdiS ) 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_reverse s6 ��z(DatabaseIntrospection.data_types_reversec s� |t jkrA|dd� \}}|dkr:|dkr|jrdS dS d| k r&dk r-n n|jr-dS |dkr3d S |jr8d S dS |dkr@d S n |t jkrK|jrKdS t� �||�S )N� � r � �BigAutoField�BigIntegerFieldr �SmallAutoField�BooleanField� AutoField�IntegerFieldi����r � JSONField)r r! r r r �super�get_field_type)r1 � data_type�description� precision�scale�� __class__r2 r3 r@ 3 s$ �z$DatabaseIntrospection.get_field_typec s |� 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 c s$ g | ]}t � �|d �|d ��qS )r r )r �identifier_converter��.0�rowr0 r2 r3 � <listcomp>X s $ z8DatabaseIntrospection.get_table_list.<locals>.<listcomp>)�execute�fetchall)r1 �cursorr2 r0 r3 �get_table_listH s z$DatabaseIntrospection.get_table_listc C s� |� d|g� dd� |�� D �}| jd7 _|� d�| jj�|�| j�� g }|jD ]A}|d }|| \}}} } }|i }|�t | � |�g|dd� �|�|d pSd�|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) c S s4 i | ]\}}}}}}|||d kr|nd|||f�qS )�NULLNr2 )rI �column�default� collation� internal_sizer r r2 r2 r3 � <dictcomp>� s ��z?DatabaseIntrospection.get_table_description.<locals>.<dictcomp>r z,SELECT * FROM {} WHERE ROWNUM < 2 AND {} > 0r � r5 � r6 N)rL rM �cache_bust_counter�formatr �ops� quote_namerB �appendr rG )r1 rN � table_name� field_maprB �desc�namerT rR rS r r r2 r2 r3 �get_table_descriptionZ sL !�"�� � �� � � �����z+DatabaseIntrospection.get_table_descriptionc C s |� � S )z7Identifier comparison is case insensitive under Oracle.)�lower)r1 r` r2 r2 r3 rG � s z*DatabaseIntrospection.identifier_converterr2 c C sn |� d|g� |�� }|r!| �|d �| �|�| �|d �d�gS |D ]}t|tj�r4||jd�g S q#g S )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) r r )r` �tablerQ )rc rQ )rL �fetchonerG � isinstancer r<