
    >ȋh                       &   d dl mZmZ d dlmZ g dZ G d de          Z G d de          Z G d d	e          Z G d
 de          Z	 G d de          Z
 G d de          Z G d de          Z G d de          Z G d de          ZdS )    )FuncIndex)cached_property)
BloomIndex	BrinIndex
BTreeIndexGinIndex	GistIndex	HashIndexSpGistIndexc                   B     e Zd Zed             Zd fd	Zd Zd Z xZS )PostgresIndexc                 x    t           j        t          t           j                  z
  t          | j                  z   S N)r   max_name_lengthlensuffixselfs    \/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/postgres/indexes.pyr   zPostgresIndex.max_name_length   s+     $s5<'8'883t{;K;KKK     c                    |                      |            t                      j        ||fdd|p| j        z  i|}|                                 }|r.dd                    |          d|j        d         |j        d<   |S )Nusingz	 USING %sz WITH (z, )extra)check_supportedsuper
create_sqlr   get_with_paramsjoinparts)r   modelschema_editorr   kwargs	statementwith_params	__class__s          r   r   zPostgresIndex.create_sql   s    ]+++&EGG&=
 
(3u7K(L
PV
 
	 **,, 	 			+&&&&(((IOG$ r   c                     d S r    )r   r$   s     r   r   zPostgresIndex.check_supported%   s    r   c                     g S r   r*   r   s    r   r    zPostgresIndex.get_with_params(   s    	r   )r   )	__name__
__module____qualname__r   r   r   r   r    __classcell__r(   s   @r   r   r      sw        L L _L             r   r   c                   :     e Zd ZdZddd fd
Z fdZd Z xZS )r   bloomNr*   )lengthcolumnsc                    t                      j        |i | t          | j                  dk    rt	          d          t          |t          t          f          st	          d          t          |          t          | j                  k    rt	          d          t          d |D                       st	          d          |d|cxk     rdk    sn t	          d	          || _	        || _
        d S )
N    z-Bloom indexes support a maximum of 32 fields.z+BloomIndex.columns must be a list or tuple.z7BloomIndex.columns cannot have more values than fields.c              3   6   K   | ]}d |cxk     odk    nc V  dS )r   i  Nr*   ).0cols     r   	<genexpr>z&BloomIndex.__init__.<locals>.<genexpr>7   s6      66s1s????d????666666r   z8BloomIndex.columns must contain integers from 1 to 4095.r   i   z<BloomIndex.length must be None or an integer from 1 to 4096.)r   __init__r   fields
ValueError
isinstancelisttupleallr3   r4   )r   r3   r4   expressionsr%   r(   s        r   r;   zBloomIndex.__init__/   s   +0000t{b  LMMM'D%=11 	LJKKKw<<#dk****VWWW66g66666 	J   a&&8&8&8&8D&8&8&8&8N   r   c                     t                                                      \  }}}| j        
| j        |d<   | j        r
| j        |d<   |||fS )Nr3   r4   )r   deconstructr3   r4   r   pathargsr%   r(   s       r   rD   zBloomIndex.deconstructB   sV    "WW0022dF;"#{F8< 	- $F9T6!!r   c                     g }| j         |                    d| j         z             | j        r3|                    d t	          | j        d          D                        |S )Nzlength = %dc              3   *   K   | ]\  }}d ||fz  V  dS )z
col%d = %dNr*   )r8   ivs      r   r:   z-BloomIndex.get_with_params.<locals>.<genexpr>O   s@        *.!Q1v%     r      )start)r3   appendr4   extend	enumerater   r'   s     r   r    zBloomIndex.get_with_paramsJ   s    ;"}t{:;;;< 	  2;DLPQ2R2R2R      r   r,   r-   r.   r   r;   rD   r    r/   r0   s   @r   r   r   ,   st        F,0"       &" " " " "      r   r   c                   :     e Zd ZdZddd fd
Z fdZd Z xZS )r   brinN)autosummarizepages_per_rangec                    ||dk    rt          d          || _        || _         t                      j        |i | d S )Nr   z2pages_per_range must be None or a positive integer)r=   rU   rV   r   r;   )r   rU   rV   rB   r%   r(   s        r   r;   zBrinIndex.__init__X   sV     &?a+?+?QRRR*.+000000r   c                     t                                                      \  }}}| j        
| j        |d<   | j        
| j        |d<   |||fS )NrU   rV   )r   rD   rU   rV   rE   s       r   rD   zBrinIndex.deconstructa   sY    "WW0022dF)&*&8F?#+(,(<F$%T6!!r   c                     g }| j         !|                    d| j         rdndz             | j        |                    d| j        z             |S )Nzautosummarize = %sonoffzpages_per_range = %d)rU   rN   rV   rQ   s     r   r    zBrinIndex.get_with_paramsi   sj    )$0B(MN   +58LLMMMr   rR   r0   s   @r   r   r   U   sv        F +/1 1 1 1 1 1 1" " " " "      r   r   c                   :     e Zd ZdZddd fd
Z fdZd Z xZS )r   btreeN)
fillfactordeduplicate_itemsc                V    || _         || _         t                      j        |i | d S r   )r^   r_   r   r;   )r   r^   r_   rB   r%   r(   s        r   r;   zBTreeIndex.__init__w   s4    $!2+000000r   c                     t                                                      \  }}}| j        
| j        |d<   | j        
| j        |d<   |||fS )Nr^   r_   )r   rD   r^   r_   rE   s       r   rD   zBTreeIndex.deconstruct|   sW    "WW0022dF?&#'?F< !-*.*@F&'T6!!r   c                     g }| j         |                    d| j         z             | j        !|                    d| j        rdndz             |S )Nfillfactor = %dzdeduplicate_items = %srZ   r[   )r^   rN   r_   rQ   s     r   r    zBTreeIndex.get_with_params   si    ?&04?BCCC!-(D4J,UDDPUV   r   rR   r0   s   @r   r   r   t   st        F04 1 1 1 1 1 1 1
" " " " "      r   r   c                   :     e Zd ZdZddd fd
Z fdZd Z xZS )r	   ginN)
fastupdategin_pending_list_limitc                V    || _         || _         t                      j        |i | d S r   )rf   rg   r   r;   )r   rf   rg   rB   r%   r(   s        r   r;   zGinIndex.__init__   s6     %&<#+000000r   c                     t                                                      \  }}}| j        
| j        |d<   | j        
| j        |d<   |||fS )Nrf   rg   )r   rD   rf   rg   rE   s       r   rD   zGinIndex.deconstruct   sW    "WW0022dF?&#'?F< &2/3/JF+,T6!!r   c                     g }| j         |                    d| j         z             | j        !|                    d| j        rdndz             |S )Nzgin_pending_list_limit = %dzfastupdate = %srZ   r[   )rg   rN   rf   rQ   s     r   r    zGinIndex.get_with_params   si    &2-0KK   ?&0DO4VDDQVWXXXr   rR   r0   s   @r   r	   r	      sv        F (,D1 1 1 1 1 1 1" " " " "      r   r	   c                   :     e Zd ZdZddd fd
Z fdZd Z xZS )r
   gistN)	bufferingr^   c                V    || _         || _         t                      j        |i | d S r   )rm   r^   r   r;   )r   rm   r^   rB   r%   r(   s        r   r;   zGistIndex.__init__   s3    "$+000000r   c                     t                                                      \  }}}| j        
| j        |d<   | j        
| j        |d<   |||fS )Nrm   r^   )r   rD   rm   r^   rE   s       r   rD   zGistIndex.deconstruct   sT    "WW0022dF>%"&.F;?&#'?F< T6!!r   c                     g }| j         !|                    d| j         rdndz             | j        |                    d| j        z             |S )Nzbuffering = %srZ   r[   rc   )rm   rN   r^   rQ   s     r   r    zGistIndex.get_with_params   s^    >%/4>3T44uUVVV?&04?BCCCr   rR   r0   s   @r   r
   r
      st        F/3 1 1 1 1 1 1 1
" " " " "      r   r
   c                   8     e Zd ZdZdd fd
Z fdZd Z xZS )r   hashNr^   c                H    || _          t                      j        |i | d S r   r^   r   r;   r   r^   rB   r%   r(   s       r   r;   zHashIndex.__init__   ,    $+000000r   c                 x    t                                                      \  }}}| j        
| j        |d<   |||fS Nr^   r   rD   r^   rE   s       r   rD   zHashIndex.deconstruct   @    "WW0022dF?&#'?F< T6!!r   c                 R    g }| j         |                    d| j         z             |S Nrc   r^   rN   rQ   s     r   r    zHashIndex.get_with_params   1    ?&04?BCCCr   rR   r0   s   @r   r   r      sr        F04 1 1 1 1 1 1 1" " " " "      r   r   c                   8     e Zd ZdZdd fd
Z fdZd Z xZS )r   spgistNrs   c                H    || _          t                      j        |i | d S r   ru   rv   s       r   r;   zSpGistIndex.__init__   rw   r   c                 x    t                                                      \  }}}| j        
| j        |d<   |||fS ry   rz   rE   s       r   rD   zSpGistIndex.deconstruct   r{   r   c                 R    g }| j         |                    d| j         z             |S r}   r~   rQ   s     r   r    zSpGistIndex.get_with_params   r   r   rR   r0   s   @r   r   r      sr        F04 1 1 1 1 1 1 1" " " " "      r   r   c                   &     e Zd ZdZdZ fdZ xZS )OpClassz%(expressions)s %(name)sFc                 N    t                                          ||           d S )N)name)r   r;   )r   
expressionr   r(   s      r   r;   zOpClass.__init__   s&    $/////r   )r,   r-   r.   template constraint_validation_compatibler;   r/   r0   s   @r   r   r      sC        )H',$0 0 0 0 0 0 0 0 0r   r   N)django.db.modelsr   r   django.utils.functionalr   __all__r   r   r   r   r	   r
   r   r   r   r*   r   r   <module>r      s   ( ( ( ( ( ( ( ( 3 3 3 3 3 3      E   :& & & & & & & &R       >       6    }   :       2       (    -   (0 0 0 0 0d 0 0 0 0 0r   