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/trac/db/__pycache__/ |
Upload File : |
o �k�`E � @ sN d dl Z d dlmZ e �de j�Zdd� ZG dd� de�ZG dd � d e�Z dS ) � N)�closingzA '(?:[^']+|'')*' | `(?:[^`]+|``)*` | "(?:[^"]+|"")*" c C s dd� }t �|| �S )Nc S s | � d��dd�S )Nr �%z%%)�group�replace)�match� r �./usr/lib/python3/dist-packages/trac/db/util.py�repl s z sql_escape_percent.<locals>.repl)�_sql_escape_percent_re�sub)�sqlr r r r �sql_escape_percent s r c @ sD e Zd ZdZddgZddd�Zdd� Zd d � Zddd�Zd d� Z dS )�IterableCursorz�Wrapper for DB-API cursor objects that makes the cursor iterable and escapes all "%"s used inside literal strings with parameterized queries. Iteration will generate the rows of a SELECT query one by one. �cursor�logNc C s || _ || _d S �N)r r )�selfr r r r r �__init__* s zIterableCursor.__init__c C s t | j|�S r )�getattrr �r �namer r r �__getattr__. s zIterableCursor.__getattr__c c s � | j �� }|sd S |V qr )r �fetchone)r �rowr r r �__iter__1 s � �zIterableCursor.__iter__c C s� | j rO| j �d|� z0|r| j �d|� | j�t|�|�}n| j�|�}t| jdd �}|d ur8| j �dt|�� |W S tyN } z| j �d|� � d }~ww |rZ| j�t|�|�S | j�|�S )NzSQL: %s�args: %r�rowszprefetch: %d rowszexecute exception: %r)r �debugr �executer r �len� Exception)r r �args�rr �er r r r 8 s&