
    i                        d Z ddlmZ ddlmZmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ erddlmZ  G d dedef   ee         Zy)z$
psycopg server-side cursor (sync).
    )annotations)TYPE_CHECKINGAnyoverload)IterableIterator   )errors)ParamsQuery)Row
RowFactory)Cursor)Self)ServerCursorMixin)
Connectionc                      e Zd ZdZdZeddd	 	 	 	 	 	 	 dd       Zeddd	 	 	 	 	 	 	 	 	 dd       Zdddd	 	 	 	 	 	 	 	 	 dd	Zd fd
Z	 ddd	 	 	 	 	 	 	 	 	 ddZdd	 	 	 	 	 	 	 ddZddZ	dddZ
ddZd dZd!d"dZ xZS )#ServerCursorpsycopg NF)
scrollablewithholdc                    y Nr   )self
connectionnamer   r   s        v/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/venv/lib/python3.12/site-packages/psycopg/_server_cursor.py__init__zServerCursor.__init__   s         c                    y r   r   r   r   r   row_factoryr   r   s         r   r   zServerCursor.__init__(   s     r    )r#   r   r   c                   t        j                  | ||xs |j                         t        j                  | |||       y )N)r#   )r   r   r#   r   r"   s         r   r   zServerCursor.__init__3   s8     	*+*O9O9O	
 	""4z8Dr    c                "   | j                   j                  5  | j                  r
	 ddd       y| j                   j                  s)| j                   j                  | j	                                t
        |           ddd       y# 1 sw Y   yxY w)zI
        Close the current cursor and free associated resources.
        N)_connlockclosedwait
_close_gensuperclose)r   	__class__s    r   r,   zServerCursor.closeA   sh     ZZ__ 	{{	 	 ::$$

 12GMO	 	 	s   BABB)binaryc                  |rt        dt        |      d          | j                  j                  rt	        j
                  d      	 | j                  j                  5  | j                  j                  | j                  |||             ddd       | S # 1 sw Y   | S xY w# t        j                  $ r}|j                  d      d}~ww xY w)zC
        Open a cursor to execute a query to the database.
        zkeyword not supported: r   z2server-side cursors not supported in pipeline modeN)	TypeErrorlist_pgconnpipeline_statuseNotSupportedErrorr&   r'   r)   _declare_gen_NO_TRACEBACKwith_traceback)r   queryparamsr.   kwargsexs         r   executezServerCursor.executeL   s     5d6l1o5FGHH<<''%%D 	* J

 1 1% HIJ
 J
   	*##D))	*s6   	B# -BB# B B#  B# #C6CCT)	returningc               ,    t        j                  d      )z/Method not implemented for server-side cursors.z0executemany not supported on server-side cursors)r4   r5   )r   r9   
params_seqr>   s       r   executemanyzServerCursor.executemanyf   s     !!"TUUr    c                    | j                   j                  5  | j                   j                  | j                  d            }d d d        r| xj                  dz  c_        |d   S y # 1 sw Y   &xY w)Nr	   r   )r&   r'   r)   
_fetch_gen_posr   recss     r   fetchonezServerCursor.fetchonel   sY    ZZ__ 	7::??4??1#56D	7IINI7N	7 	7s   +A''A0c                   |s| j                   }| j                  j                  5  | j                  j                  | j	                  |            }d d d        | xj
                  t              z  c_        |S # 1 sw Y   )xY wr   )	arraysizer&   r'   r)   rC   rD   len)r   sizerF   s      r   	fetchmanyzServerCursor.fetchmanyu   s`    >>DZZ__ 	:::??4??4#89D	:		SY		: 	:s   +A88Bc                    | j                   j                  5  | j                   j                  | j                  d             }d d d        | xj                  t              z  c_        |S # 1 sw Y   )xY wr   )r&   r'   r)   rC   rD   rJ   rE   s     r   fetchallzServerCursor.fetchall}   sT    ZZ__ 	:::??4??4#89D	:		SY		: 	:s   +A**A3c              #  >  K   	 | j                   j                  5  | j                   j                  | j                  | j                              }d d d        D ]  }| xj
                  dz  c_        |  t        |      | j                  k  ry # 1 sw Y   CxY ww)Nr	   )r&   r'   r)   rC   itersizerD   rJ   )r   rF   recs      r   __iter__zServerCursor.__iter__   s      Gzztt}}'EFG 		Q		 4y4==( G Gs   B5BABBBc                    | j                   j                  5  | j                   j                  | j                  ||             d d d        |dk(  r| xj                  |z  c_        y || _        y # 1 sw Y   ,xY w)Nrelative)r&   r'   r)   _scroll_genrD   )r   valuemodes      r   scrollzServerCursor.scroll   s^    ZZ__ 	;JJOOD,,UD9:	; :IIIDI	; 	;s   ,A..A7)r   zConnection[Row]r   strr   bool | Noner   bool)
r   Connection[Any]r   rY   r#   zRowFactory[Row]r   rZ   r   r[   )
r   r\   r   rY   r#   zRowFactory[Row] | Noner   rZ   r   r[   )returnNoner   )
r9   r   r:   zParams | Noner.   rZ   r;   r   r]   r   )r9   r   r@   zIterable[Params]r>   r[   r]   r^   )r]   z
Row | None)r   )rK   intr]   	list[Row])r]   r`   )r]   zIterator[Row])rT   )rV   r_   rW   rY   r]   r^   )__name__
__module____qualname__	__slots__r   r   r,   r=   rA   rG   rL   rN   rR   rX   __classcell__)r-   s   @r   r   r      sw   JI #'# 
      #'# 
 %     /3"&E#E E
 ,E  E E	 !%
 # 
   
6 PTVV(8VHLV	V r    r   r\   N)__doc__
__future__r   typingr   r   r   collections.abcr   r    r
   r4   abcr   r   rowsr   r   cursorr   _compatr   _server_cursor_baser   r   r   r   r   r    r   <module>rp      sP    # / / .   !   2&z$%6%;<fSk zr    