
    dh2
                     N    S SK JrJrJrJrJr  S SKJr  S SKJ	r	   " S S\	5      r
g)    )AnyDictIteratorListOptional)Document)
BaseLoaderc                       \ rS rSrSr   SS\S\S\\\      S\\\      S\\\\	4      S	S4S
 jjr
S	\\   4S jrSrg)
TiDBLoader   zLoad documents from TiDB.Nconnection_stringquerypage_content_columnsmetadata_columnsengine_argsreturnc                 L    Xl         X l        X0l        Ub  UO/ U l        XPl        g)a  Initialize TiDB document loader.

Args:
    connection_string (str): The connection string for the TiDB database,
        format: "mysql+pymysql://root@127.0.0.1:4000/test".
    query: The query to run in TiDB.
    page_content_columns: Optional. Columns written to Document `page_content`,
        default(None) to all columns.
    metadata_columns: Optional. Columns written to Document `metadata`,
        default(None) to no columns.
    engine_args: Optional. Additional arguments to pass to sqlalchemy engine.
N)r   r   r   r   r   )selfr   r   r   r   r   s         a/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/tidb.py__init__TiDBLoader.__init__   s,    ( "3
$8!4D4P 0VX&    c              #   R  ^ #    SSK Jn  SSKJn  SSKJn  U" T R                  40 T R                  =(       d    0 D6nUR                  5        nUR                  U" T R                  5      5      n[        UR                  5       5      nU Hu  n[        U5       V	V
s0 sH
  u  pXy   U
_M     nn	n
SR                  U 4S jUR                  5        5       5      nT R                    Vs0 sH  oX   _M	     nn[#        XS9v   Mw     SSS5        gs  sn
n	f s  snf ! , (       d  f       g= f7f)	z*Lazy load TiDB data into document objects.r   )create_engine)Engine)text
c              3   r   >#    U H-  u  pTR                   b  UTR                   ;   d  M$  U SU 3v   M/     g 7f)Nz: )r   ).0kvr   s      r   	<genexpr>'TiDBLoader.lazy_load.<locals>.<genexpr><   s@      ) 0008D555  qcA3K 0s   "77)page_contentmetadataN)
sqlalchemyr   sqlalchemy.enginer   sqlalchemy.sqlr   r   r   connectexecuter   listkeys	enumeratejoinitemsr   r   )r   r   r   r   engineconnresultcolumn_namesrowindexvaluerow_datar$   colr%   s   `              r   	lazy_loadTiDBLoader.lazy_load%   s     	-,' '""
'+'7'7'=2

 ^^\\$tzz"23F  .L DMS>CQ<5L'.>    $yy ) ( 0)   ;?:O:OP:O3.:OPLLL   Q! s=   A	D'ADD
*:D$D1D	D'D
D$ D')r   r   r   r   r   )NNN)__name__
__module____qualname____firstlineno____doc__strr   r   r   r   r   r   r   r9   __static_attributes__ r   r   r   r      s    # 590404'' ' 'tCy1	'
 #49-' d38n-' 
'4M8H- Mr   r   N)typingr   r   r   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser	   r   rB   r   r   <module>rF      s    6 6 - @;M ;Mr   