+
    TjF<                         ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t
 ]! R. ]P                  ORNR	NR
N4      t]! R. ]
P                  OR
N4      t	 ! R R]4      tR# )    )
namedtupleN)models)BaseDatabaseIntrospection)	FieldInfo)	TableInfor   is_autofieldis_jsoncommentr   c                     a a ] tR t^t o^t]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                   R]P"                  R/tV 3R	 ltR
 tR tR tRR ltR tR tR tRtVtV ;t# )DatabaseIntrospection	DateField
FloatFieldBinaryField	CharField	TextFieldDurationFieldDecimalFieldDateTimeFieldc                  < V\         P                  8X  d   VR ,          w  r4V^ 8X  dc   V^8  d   VP                  '       d   R# R# ^Tu;8  d   ^8  d   M MVP                  '       d   R# V^8X  d   R# VP                  '       d   R# R# VR	8X  d   R# M)V\         P                  8X  d   VP                  '       d   R# \
        SV `  W4      # )
:      NBigAutoFieldBigIntegerFieldSmallAutoFieldBooleanField	AutoFieldIntegerFieldr   	JSONFieldi)oracledbNUMBERr   NCLOBr	   superget_field_type)self	data_typedescription	precisionscale	__class__s   &&&  \/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/backends/oracle/introspection.pyr#   $DatabaseIntrospection.get_field_type#   s    '*3/Izr> '333 ' /
 &Q&;+C+C+C+!^) ---&)$# (..([-@-@-@w%i==    c           	         VP                  R4       VP                  4        Uu. uF4  p\        V P                  V^ ,          4      V^,          V^,          4      NK6  	  up# u upi )z>Return a list of table and view names in the current database.a  
            SELECT
                user_tables.table_name,
                't',
                user_tab_comments.comments
            FROM user_tables
            LEFT OUTER JOIN
                user_tab_comments
                ON user_tab_comments.table_name = user_tables.table_name
            WHERE
                NOT EXISTS (
                    SELECT 1
                    FROM user_mviews
                    WHERE user_mviews.mview_name = user_tables.table_name
                )
            UNION ALL
            SELECT view_name, 'v', NULL FROM user_views
            UNION ALL
            SELECT mview_name, 'v', NULL FROM user_mviews
        )executefetchallr   identifier_converter)r$   cursorrows   && r*   get_table_list$DatabaseIntrospection.get_table_list<   sa    	
0 (
( d//A7QQH(
 	
 
s   :A!c                ~   VP                  RW"V.4       VP                  4       pV'       d
   V^ ,          MRpVP                  RWB.4       VP                  4        UUUUU	U
Uu/ uF3  w  ppppp	p
pTTV'       d   VR8w  d   VP                  4       MRVV	V
V3bK5  	  pp
p	pppppV ;P                  ^,          un        VP                  RP                  V P                  P                  P                  V4      V P                  4      4       . pVP                   F  pV^ ,          pW,          w  pppp	p
pV/ ,          pTP                  \        V P                  V4      V^,          TV^,          V^,          ;'       g    ^ V^,          ;'       g    ^ .VR,          OVNVNV	NV
NVN5!  4       K  	  V# u upp
p	ppppi )zQ
Return a description of the table with the DB-API cursor.description
interface.
a  
            SELECT user_tables.default_collation
            FROM user_tables
            WHERE
                user_tables.table_name = UPPER(%s) AND
                NOT EXISTS (
                    SELECT 1
                    FROM user_mviews
                    WHERE user_mviews.mview_name = user_tables.table_name
                )
            UNION ALL
            SELECT user_views.default_collation
            FROM user_views
            WHERE user_views.view_name = UPPER(%s)
            UNION ALL
            SELECT user_mviews.default_collation
            FROM user_mviews
            WHERE user_mviews.mview_name = UPPER(%s)
             a  
            SELECT
                user_tab_cols.column_name,
                user_tab_cols.data_default,
                CASE
                    WHEN user_tab_cols.collation = %s
                    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 display_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,
                user_col_comments.comments as col_comment
            FROM user_tab_cols
            LEFT OUTER JOIN
                user_col_comments ON
                user_col_comments.column_name = user_tab_cols.column_name AND
                user_col_comments.table_name = user_tab_cols.table_name
            WHERE user_tab_cols.table_name = UPPER(%s)
            NULLNz,SELECT * FROM {} WHERE ROWNUM < 2 AND {} > 0:r   NN)r.   fetchoner/   rstripcache_bust_counterformat
connectionops
quote_namer&   appendr   r0   )r$   r1   
table_namer2   default_table_collationcolumndefault	collationdisplay_sizer   r	   r
   	field_mapr&   descnames   &&&             r*   get_table_description+DatabaseIntrospection.get_table_descriptionY   s    	& Z0)	
, oo,/#a&R$J %1M'	
r "#
 
" # $+60A t   ## 	 
& 	1$:AA##..z:D<S<S	

 &&D7D BJD--d3G GGLLqGLLq "X   !   '6 k
 
s   #F4:"F4c                "    VP                  4       # )z7Identifier comparison is case insensitive under Oracle.)lower)r$   rH   s   &&r*   r0   *DatabaseIntrospection.identifier_converter   s    zz|r,   c           	     \   VP                  R V.4       VP                  4       pV'       dE   RV P                  V^ ,          4      RV P                  V4      RV P                  V^,          4      /.# V F6  p\        V\        P
                  4      '       g   K%  RVRVP                  /.u # 	  . # )a  
            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)
            rH   tablerB   )r.   r8   r0   
isinstancer   r   rB   )r$   r1   r@   table_fieldsr2   fs   &&&&  r*   get_sequences#DatabaseIntrospection.get_sequences   s     L!	
& oo D55c!f=T66zBd77A?  A!V--.. *hABB  	r,   c           
        VP                  4       pVP                  RV.4       VP                  4        UUUu/ uF8  w  r4pV P                  V4      V P                  V4      V P                  V4      3bK:  	  uppp# u upppi )z~
Return a dictionary of {field_name: (field_name_other_table,
other_table)} representing all foreign keys in 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.position)upperr.   r/   r0   )r$   r1   r@   
field_namerel_table_namerel_field_names   &&&   r*   get_relations#DatabaseIntrospection.get_relations   s    
  %%'
( L		
  ?Eoo>O

 ?P:
N	 %%j1)).9)).94  ?P
 	
 
s   >A;c                    VP                  R V.4       VP                  4        Uu. uF  q0P                  V^ ,          4      NK  	  up# u upi )a  
            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)
            ORDER BY
                cols.position
            )r.   r/   r0   )r$   r1   r@   r2   s   &&& r*   get_primary_key_columns-DatabaseIntrospection.get_primary_key_columns  sK     L	
  >D__=NO=Nc))#a&1=NOOOs    A	c                |   / pVP                  RV.4       VP                  4        F7  w  rErgpV P                  V4      pRVP                  R4      RVRVRRRVR	V/W4&   K9  	  VP                  R
V.4       VP                  4        F7  w  rErV P                  V4      pRRRRRW3RRR	RRVP                  R4      /W4&   K9  	  VP                  RV.4       VP                  4        FV  w  rKrupV P                  V4      pRRRVR8H  RRRRR	RRVR8X  d   RMTRVP                  R4      RVP                  R4      /W4&   KX  	  V# )z]
Retrieve any constraints or keys (unique, pk, fk, check, index) across
one or more columns.
aL  
            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
            columns,primary_keyuniqueforeign_keyN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
            Fa  
            SELECT
                ind.index_name,
                LOWER(ind.index_type),
                LOWER(ind.uniqueness),
                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, ind.uniqueness
            Ttypenormalidxorders)r.   r/   r0   split)r$   r1   r@   constraints
constraintr`   pkrc   re   other_tableother_columntype_rj   s   &&&          r*   get_constraints%DatabaseIntrospection.get_constraints+  s   
 6 L9	
< 7=oo6G2JU22:>J7==-r&t'K# 7H 	( L+	
. ?Eoo>O:J22:>Ju%:7==-'K# ?P 	& L)	
, ;A//:K6Jv22:>Ju&H,t(!27==-&,,s+	'K# ;L r,    )rt   )__name__
__module____qualname____firstlineno__r:   r   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data_types_reverser#   r3   rI   r0   rS   rZ   r]   rr   __static_attributes____classdictcell____classcell__)r)   __classdict__s   @@r*   r   r      s      	{&&}{{$$o!!;""O  +>2
:||"H
2P&t tr,   r   )collectionsr   r   	django.dbr   %django.db.backends.base.introspectionr   r   BaseFieldInfor   BaseTableInfo_fieldsr   rt   r,   r*   <module>r      so    "   K L LO=((O.O)OYO	 {$Gm&;&;$GY$GH	O5 Or,   