§
    öÛg™  ã                   óh  — d dl Z d dlZd dlZddlmZ ddgdfddgdfddgdfddgdfd	d
gd	fddgdfdd	gdfddgdfddgdfdddgdfdddgdfdddgdfddgdfdddgdfdddgdfdddgdfdddgdfdd d!gdfd"d#dgd$fd%d#d&gd%fd'd(d)gd'fd*d#d&gd%fd+d#d&gd%fd,d-d&gd.fd/g d0¢d1fd2g d0¢d1fd3g d4¢d5fd6g d7¢d8fgZd9d9gfd:d:gfd;g d<¢fd=g d>¢fd?g d@¢fdAg dB¢fdCg dD¢fdEg dF¢fdGg dH¢fdIg dJ¢fdKg dL¢fdMg dN¢fdOg dP¢fdQg dR¢fdSg dT¢fdUg dV¢fdWg dX¢fdYg dZ¢fd[d\d]gfd^d^gfd_d_gfgZd`dagdbggfdcg dd¢dbggfdcg dd¢dbggfdeg df¢dgdhggfdig df¢g dj¢dhggfdkg df¢g dj¢dlg dm¢gfgZ G dn„ doej	        ¦  «        Z
edpk    rEd dqlmZ  edr¦  «        Zej                              e¦   «         ¦  «          ej        e¦  «         dS dS )sé    Né   )ÚstringÚbaseÚbASez"base"z"base "zbase z" base"z basez	" base"""z base"z""" base"""z".base"z.basez".base."z.base.zschema.baseÚschemaz"schema".basezschema."base"z"schema.base"u   schEmÃ…."base"u   schemÃ¥u   schemÃ¥.basezscheMa."base"zsche_ma.baseÚsche_maz_schema.baseÚ_schemaz	a000.b111Úa000Úb111z" schema"."base"z schemaz" schema".basez" schema"."ba se"úba sez" ""schema"."ba""se"z "schemazba"sez" schema" . "ba se"z " schema" . "ba se"	z ". schema." . "ba se"	ú	. schema.z". schema."."ba se"zCAT . ". schema." . "ba se"	)Úcatr   r   zcat.". schema."."ba se"z"cat" . ". schema." . "ba se"	z """cat" . ". schema." . "ba se"	)z"catr   r   z"""cat".". schema."."ba se"u!   """cÃ…t" . ". schema." . "ba se"	)u   "cÃ…tr   r   u   """cÃ…t".". schema."."ba se"Ú ú
one-to-onez"one-to-one")r   )ú"r   r   z$$one-to-one$$)r   )ú$$r   r   zE'one-to-one')r   )úE'r   r   zE'on''e-to-one')r   )r   zon''e-to-oner   zE'on''e-to-\'one')r   )r   zon''e-to-\'oner   z'one\'-to-one')r   )ú'zone\z-to-one©r   r   z"foo""")r   )r   zfoo""r   z"""foo")r   )r   z""foor   z'''foo')r   )r   z''foor   z'foo''')r   )r   zfoo''r   zE'foo\'')r   )r   zfoo\'r   z
E'foo\\' ')r   )r   zfoo\\ú r   zE'foo\\'' ')r   )r   zfoo\\'' r   zselect 'foo' as "one")úselect )r   Úfooú as ©r   Úoner   zselect $$foo$$ as "one")r   )r   r   r   r   r   zselect $b$foo$b$ as "one")r   )ú$b$r   r   r   r   z
select $b$r   )r   r   z	select $1z
select $1$zselect 1; select 1zselect 1ú	 select 1z select 'one' as "text"; select 1)r   )r   r   r   )r   Útextr   z(select 'one;' as ";text;"; select 1; foo)r   )r   zone;r   )r   z;text;r   )r   ú fooz,select 'one;' as ";text;"; select $$;$$; foo)z select )r   ú;r   z5select 'one;' as ";text;"; select $$;$$; foo;';b''ar')r   )r   )r   z;b''arr   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Útest_stringsc                 óÞ   — t           D ]d\  }}t          t          j        |¦  «        ¦  «        }|                      ||¦  «         |                      t          j        |¦  «        |¦  «         Œed S )N)Úsplit_samplesÚlistÚpg_strÚsplitÚassertEqualÚunsplit©Úselfr)   r'   Úxsplits       úQ/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_string.pyÚ
test_splitztest_strings.test_splitº   so   € Ý%ð 5ð 5�n€gˆuÝ•”˜gÑ&Ô&Ñ'Ô'€6Ø×Ò�F˜EÑ"Ô"Ð"Ø×Ò•F”N 6Ñ*Ô*¨GÑ4Ô4Ð4Ð4ð5ð 5ó    c                 óô   — t           D ]o\  }}t          t          j        |¦  «        ¦  «        }|                      ||¦  «         |                      d                     d„ |D ¦   «         ¦  «        |¦  «         Œpd S )Nr    c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS © )r&   r)   ©Ú.0Úxs     r-   ú
<listcomp>z/test_strings.test_split_sql.<locals>.<listcomp>Ä   s"   € Ð@Ð@Ð@°A�fœn¨QÑ/Ô/Ð@Ð@Ð@r/   )Úsplit_sql_samplesr%   r&   Ú	split_sqlr(   Újoinr*   s       r-   Útest_split_sqlztest_strings.test_split_sqlÀ   s…   € Ý)ð Lð L�n€gˆuÝ•Ô! 'Ñ*Ô*Ñ+Ô+€6Ø×Ò�F˜EÑ"Ô"Ð"Ø×Ò�C—H’HÐ@Ð@¸Ð@Ñ@Ô@ÑAÔAÀ7ÑKÔKÐKÐKðLð Lr/   c                 ó‚  — t           D ]R\  }}}t          j        |¦  «        }|                      ||¦  «         |                      t          j        |Ž |¦  «         ŒS|                      t          t          j        d¦  «         |                      t          t          j        d¦  «         |                      t          t          j        d¦  «         |                      t          t          j        d¦  «         |                      t          t          j        d¦  «         |                      t          t          j        d¦  «         dS )zindirectly tests split_usingz"foozfoo"zbar.foo"z	bar".foo"z0bar.foozbar.fo@N)Úsplit_qname_samplesr&   Úsplit_qnamer(   Úqname_if_neededÚassertRaisesÚ
ValueError)r+   r)   r'   Únormr,   s        r-   Ú
test_qnameztest_strings.test_qnameÆ   sE  € å1ð :ð :Ñ€gˆu�dÝÔ˜wÑ'Ô'€6Ø×Ò�F˜EÑ"Ô"Ð"Ø×Ò•FÔ*¨EÐ2°DÑ9Ô9Ð9Ð9à×ÒÝÝ	Ô�vñô ð ð ×ÒÝÝ	Ô�vñô ð ð ×ÒÝÝ	Ô�zñô ð ð ×ÒÝÝ	Ô�{ñô ð ð ×ÒÝÝ	Ô�zñô ð ð ×ÒÝÝ	Ô�yñô ð ð ð r/   c                 óÀ  — |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d	¦  «        d	¦  «         |                       t          j        d
¦  «        d
¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        dd¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         |                       t          j        d¦  «        d¦  «         d                     d„ t          d¦  «        D ¦   «         ¦  «        }|                       t          j        |¦  «        |¦  «         d                     d„ t          d¦  «        D ¦   «         ¦  «        }|                       t          j	        |¦  «        |¦  «         d                     d„ t          d¦  «        D ¦   «         ¦  «        }|                       t          j	        |¦  «        |¦  «         d S )Nzfoo'barz
'foo''bar'z	\foo'bar\z'\foo''bar\'r   Ú0fooz"0foo"Úfoo0Ú_Ú_9z"\foo'bar\"Úspamz"spam"Úhamz"spam"."ham"r   z""z""""r   c                 óR   — g | ]$}t          |¦  «        d k    ¯t          |¦  «        ‘Œ%S )r   ©Úchrr3   s     r-   r6   z,test_strings.test_quotes.<locals>.<listcomp>  ó5   € ð ð ð ØÝ	ˆ!�f„f�‚m€mõ €q�6„6Ø€m€mr/   i'  c                 óR   — g | ]$}t          |¦  «        d k    ¯t          |¦  «        ‘Œ%S )r   rK   r3   s     r-   r6   z,test_strings.test_quotes.<locals>.<listcomp>  rM   r/   c                 óN   — g | ]"}t          |¦  «        d v¯t          |¦  «        ‘Œ#S )z\'rK   r3   s     r-   r6   z,test_strings.test_quotes.<locals>.<listcomp>'  s9   € ð ð ð ØÝ	ˆ!�f„f�EÐÐõ €q�6„6ØÐÐr/   )
r(   r&   Úquote_literalÚquote_ident_if_neededÚquote_identÚqnameÚescape_identr9   ÚrangeÚescape_literal)r+   Úcharss     r-   Útest_quotesztest_strings.test_quotesæ   s7  € Ø×ÒÝ	Ô˜Ñ&Ô&Øñô ð ð ×ÒÝ	ÔÐ)Ñ*Ô*Øñô ð ð ×ÒÝ	Ô Ñ&Ô&Øñô ð ð ×ÒÝ	Ô Ñ'Ô'Øñô ð ð ×ÒÝ	Ô Ñ'Ô'Ø	ñô ð ð ×ÒÝ	Ô Ñ$Ô$Øñô ð ð ×ÒÝ	Ô Ñ%Ô%Øñô ð ð ×ÒÝ	ÔÐ 1Ñ2Ô2Øñô ð ð ×ÒÝ	Ô�fÑÔØñô ð ð ×ÒÝ	„<�˜ÑÔØñô ð ð ×ÒÝ	Ô�sÑÔØñô ð ð ×ÒÝ	Ô�tÑÔØ	ñô ð ð �'Š'ð ð Ý˜‘<”<ðñ ô ñ ô €%ð ×ÒÝ	Ô�uÑÔØñô ð ð �'Š'ð ð Ý˜‘<”<ðñ ô ñ ô €%ð ×ÒÝ	Ô˜ÑÔØñô ð ð �'Š'ð ð Ý˜‘<”<ðñ ô ñ ô €%ð ×ÒÝ	Ô˜ÑÔØñô ð ð ð r/   N)Ú__name__Ú
__module__Ú__qualname__r.   r:   rB   rX   r2   r/   r-   r"   r"   ¹   sY   € € € € € ð5ð 5ð 5ðLð Lð Lðð ð ð@Hð Hð Hð Hð Hr/   r"   Ú__main__)Ú
ModuleTypeÚthis)ÚsysÚosÚunittestr   r   r&   r<   r$   r7   ÚTestCaser"   rY   Útypesr]   r^   Ú__dict__ÚupdateÚglobalsÚmainr2   r/   r-   ú<module>rh      s5  ðð €
€
€
Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð ð 	ˆ6ˆ(�FÐØˆ6ˆ(�FÐØ
ˆVˆH�fÐØˆgˆY˜	Ð"ØˆgˆY˜	Ð"Ø�ˆz˜;Ð'Ø�)�˜mÐ,ØˆgˆY˜	Ð"Øˆxˆj˜*Ð%Ø�(˜FÐ# ]Ð3Ø�H˜fÐ% }Ð5Ø�H˜fÐ% }Ð5Ø�M�? OÐ4Ø�Y Ð'¨Ð8Ø�H˜fÐ% }Ð5Ø�9˜fÐ% ~Ð6Ø�9˜fÐ% ~Ð6Ø�˜Ð Ð-Ø�y &Ð)Ð+;Ð<Ø˜	 7Ð+Ð-@ÐAØ˜: wÐ/Ð1GÐHØ˜) WÐ-Ð/BÐCØ˜I wÐ/Ð1DÐEØ˜k¨7Ð3Ð5JÐKØ Ð"?Ð"?Ð"?Øðà"Ð$AÐ$AÐ$AØðà$Ð&DÐ&DÐ&DØð!à%Ð'FÐ'FÐ'FØ ð"ð?!Ð ðH €r€d€Ø��ÐØð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð
 ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  ð  ð  ð ð ØØðð ð
 Øðð ð Øðð ðQk€ð\ Ø€,Ø€-ðð ð 'Ø6Ð6Ð6Ø€-ð)ð ð 'Ø6Ð6Ð6Ø€-ð)ð ð /Ø9Ð9Ð9ØØ	€(ð1ð ð
 3Ø9Ð9Ð9ØÐÐØ	€(ð5ð ð
 @Ø9Ð9Ð9ØÐÐØØÐÐð	Bð ð/Ð ð>uð uð uð uð u�8Ô$ñ uô uð uðn ˆzÒÐØÐÐÐÐÐØˆ
�6ÑÔ€Ø„×Ò�g�g‘i”iÑ Ô Ð Ø€„ˆtÑÔÐÐÐð	 Ðr/   