§
    ˜Štj[�  ã                   óŒ  — d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZmZmZmZ d d
lm Z  d dl!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA  e jB        eC¦  «        ZD G d„ dee ¦  «        ZEdS )é    N)ÚOptionalÚSequenceÚAnyÚTupleÚcastÚDictÚUnionÚSet)ÚUUID)Úoverride)ÚTableÚColumn)Úgroupby)ÚSchema)ÚDEFAULT_DATABASEÚDEFAULT_TENANTÚSystem)ÚCursorÚSqlDBÚParameterValueÚget_sql)ÚSysDB)ÚNotFoundErrorÚUniqueConstraintError)Úadd_attributes_to_current_spanÚOpenTelemetryClientÚOpenTelemetryGranularityÚtrace_method)ÚProducer)
ÚCollectionAndSegmentsÚDatabaseÚOptionalArgumentÚSegmentÚMetadataÚ
CollectionÚSegmentScopeÚTenantÚUnspecifiedÚUpdateMetadata)ÚCreateCollectionConfigurationÚUpdateCollectionConfigurationÚ+create_collection_configuration_to_json_strÚ+load_collection_configuration_from_json_strÚCollectionConfigurationÚ'create_collection_configuration_to_jsonÚ collection_configuration_to_jsonÚ$collection_configuration_to_json_strÚ"overwrite_collection_configurationÚ;update_collection_configuration_from_legacy_update_metadataÚCollectionMetadatac                   óª  ‡ — e Zd ZU eed<   defˆ fd„Z edej	        ¦  «        e
dAˆ fd„¦   «         ¦   «         Ze
efded	ed
eddfd„¦   «         Ze
efd	ed
edefd„¦   «         Ze
efd	ed
eddfd„¦   «         Ze
ddefdee         dee         d
edee         fd„¦   «         Ze
d	eddfd„¦   «         Ze
d	edefd„¦   «         Zdededdfd„Z edej	        ¦  «        e
deddfd„¦   «         ¦   «         Z edej	        ¦  «        e
dddeefded	edee         de dee         dee!         dee         de"d
edede#e$e"f         fd „¦   «         ¦   «         Z% ed!ej	        ¦  «        e
	 	 	 dBd"edee         d#ee         d$ee&         dee         f
d%„¦   «         ¦   «         Z' ed&ej	        ¦  «        e
ddeeddfdee         d	ee         d
ededee         dee         dee$         fd'„¦   «         ¦   «         Z(e
d(ede)fd)„¦   «         Z* ed*ej	        ¦  «        e
d"ededdfd+„¦   «         ¦   «         Z+ded"eddfd,„Z, ed-ej	        ¦  «        e
eefded
ededdfd.„¦   «         ¦   «         Z- ed/ej	        ¦  «        e
 e.¦   «         fd"edede/ee0                  ddfd0„¦   «         ¦   «         Z1 ed1ej	        ¦  «        e
 e.¦   «          e.¦   «          e.¦   «          e.¦   «         fded	e/e         de/ee                  de/ee0                  de/ee2                  ddfd2„¦   «         ¦   «         Z3ded3e2deddfd4„Z4 ed5ej	        ¦  «        d6ee#e5d7f                  dee!         fd8„¦   «         Z6 ed9ej	        ¦  «        	 dCded:e7d;e8dede0d<ee9e                  ddfd=„¦   «         Z:d(e5dee!         de;fd>„Z<e
dedefd?„¦   «         Z=e
edfd
edee         defd@„¦   «         Z>ˆ xZ?S )DÚSqlSysDBÚ	_producerÚsystemc                 óˆ   •— t          ¦   «                              |¦  «         |                     t          ¦  «        | _        d S ©N)ÚsuperÚ__init__Úrequirer   Ú_opentelemetry_client)Úselfr8   Ú	__class__s     €úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/db/mixins/sysdb.pyr<   zSqlSysDB.__init__:   s6   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø%+§^¢^Õ4GÑ%HÔ%HˆÔ"Ð"Ð"ó    zSqlSysDB.create_segmentÚreturnNc                 ó�   •— t          ¦   «                              ¦   «          | j                             t          ¦  «        | _        d S r:   )r;   ÚstartÚ_systemÚinstancer   r7   )r?   r@   s    €rA   rE   zSqlSysDB.start>   s1   ø€ õ 	‰Œ�Š‰ŒˆØœ×.Ò.­xÑ8Ô8ˆŒˆˆrB   ÚidÚnameÚtenantc                 óh  — |                       ¦   «         5 }t          d¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        |j        |j        ¦  «                             t          |  
                    |¦  «        ¦  «        t          |¦  «        |                      ¦   «                              |j        ¦  «                             |¦  «                             |j        t          |¦  «        k    ¦  «        ¦  «        }t          ||                      ¦   «         ¦  «        \  }}		 |                     ||	¦  «         n5# |                      ¦   «         $ r}
t%          d|› d|› �¦  «        |
‚d }
~
ww xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚ	databasesÚtenantsú	Database z already exists for tenant )Útxr   ÚquerybuilderÚintoÚcolumnsrH   rI   Ú	tenant_idÚinsertr   Ú
uuid_to_dbÚselectÚfrom_Úwherer   Úparameter_formatÚexecuteÚunique_constraint_errorr   )r?   rH   rI   rJ   ÚcurrL   rM   Úinsert_databaseÚsqlÚparamsÚes              rA   Úcreate_databasezSqlSysDB.create_databaseD   sÏ  € ð �WŠW‰YŒYð 	˜#å˜kÑ*Ô*ˆIÝ˜IÑ&Ô&ˆGà×!Ò!Ñ#Ô#ß’�i‘”ß’˜œ y¤~°yÔ7JÑKÔKß’Ý" 4§?¢?°2Ñ#6Ô#6Ñ7Ô7Ý" 4Ñ(Ô(Ø×%Ò%Ñ'Ô'ß’V˜GœJÑ'Ô'ß’U˜7‘^”^ß’U˜7œ:­¸Ñ)?Ô)?Ò?Ñ@Ô@ñô ð	 õ " /°4×3HÒ3HÑ3JÔ3JÑKÔK‰KˆC�ðØ—’˜C Ñ(Ô(Ð(Ð(øØ×/Ò/Ñ1Ô1ð ð ð Ý+ØI ÐIÐIÀÐIÐIñô àðøøøøðøøøð )ð'	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   •D7F'ÅE$Å#F'Å$FÅ;FÆFÆF'Æ'F+Æ.F+c                 ó<  — |                       ¦   «         5 }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        |j        ¦  «                             |j        t          |¦  «        k    ¦  «                             |j	        t          |¦  «        k    ¦  «        }t          ||                      ¦   «         ¦  «        \  }}|                     ||¦  «                             ¦   «         }|st          d|› d|› d�¦  «        ‚|d         €t          d|› d|› d�¦  «        ‚t          t           |                      |d         ¦  «        ¦  «        }	t%          |	|d         |¬¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NrL   rN   ú not found for tenant z. Are you sure it exists?r   é   ©rH   rI   rJ   )rO   r   rP   rW   rV   rH   rI   rX   r   rS   r   rY   rZ   Úfetchoner   r   r   Úuuid_from_dbr!   )
r?   rI   rJ   r\   rL   Úqr^   r_   ÚrowrH   s
             rA   Úget_databasezSqlSysDB.get_databasea   sÐ  € à�WŠW‰YŒYð 	˜#Ý˜kÑ*Ô*ˆIà×!Ò!Ñ#Ô#ß’�yÑ!Ô!ß’˜	œ i¤nÑ5Ô5ß’�y”~­¸Ñ)=Ô)=Ò=Ñ>Ô>ß’�yÔ*­n¸VÑ.DÔ.DÒDÑEÔEð õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø—+’+˜c 6Ñ*Ô*×3Ò3Ñ5Ô5ˆCØð Ý#Ø] Ð]Ð]¸FÐ]Ð]Ð]ñô ð ð �1Œvˆ~Ý#Ø] Ð]Ð]¸FÐ]Ð]Ð]ñô ð õ �D $×"3Ò"3°C¸´FÑ";Ô";Ñ<Ô<ˆBÝØØ˜”VØðñ ô ð)	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   •E/FÆFÆFc                 óÊ  — |                       ¦   «         5 }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |¦  «        k    ¦  «                             |j        t          |¦  «        k    ¦  «                             ¦   «         }t          ||  
                    ¦   «         ¦  «        \  }}|dz   }|                     ||¦  «                             ¦   «         }|st          d|› d|› �¦  «        ‚t          d¦  «        }	|                      ¦   «                              |	¦  «                             |	j        t          |d         ¦  «        k    ¦  «                             ¦   «         }t          ||  
                    ¦   «         ¦  «        \  }}|                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrL   ú RETURNING idrN   rc   Úcollectionsr   )rO   r   rP   rW   rX   rI   r   rS   Údeleter   rY   rZ   rf   r   Údatabase_id)
r?   rI   rJ   r\   rL   rh   r^   r_   Úresultrm   s
             rA   Údelete_databasezSqlSysDB.delete_database}   sâ  € à�WŠW‰YŒYð 	%˜#Ý˜kÑ*Ô*ˆIà×!Ò!Ñ#Ô#ß’�yÑ!Ô!ß’�y”~­¸Ñ)=Ô)=Ò=Ñ>Ô>ß’�yÔ*­n¸VÑ.DÔ.DÒDÑEÔEß’‘”ð õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø˜Ñ'ˆCØ—[’[  fÑ-Ô-×6Ò6Ñ8Ô8ˆFØð VÝ#Ð$T°Ð$TÐ$TÈFÐ$TÐ$TÑUÔUÐUõ   Ñ.Ô.ˆKà×!Ò!Ñ#Ô#ß’�{Ñ#Ô#ß’�{Ô.µ.ÀÈÄÑ2KÔ2KÒKÑLÔLß’‘”ð	 õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø�KŠK˜˜VÑ$Ô$Ð$ð3	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   •F6GÇGÇGÚlimitÚoffsetc                 ó¬  ‡ ‡— ‰                       ¦   «         5 }t          d¦  «        }‰                      ¦   «                              |¦  «                             |j        |j        ¦  «                             |j        t          ‰¦  «        k    ¦  «         
                    |¦  «                             |€t          j        n|¦  «                             |j        ¦  «        }t!          |‰                      ¦   «         ¦  «        \  }}|                     ||¦  «                             ¦   «         }	ˆ ˆfd„|	D ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )NrL   c                 ó˜   •— g | ]F}t          t          t          ‰                     |d          ¦  «        ¦  «        |d         ‰¬¦  «        ‘ŒGS )r   rd   re   )r!   r   r   rg   )Ú.0ri   r?   rJ   s     €€rA   ú
<listcomp>z+SqlSysDB.list_databases.<locals>.<listcomp>°   sc   ø€ ð ð ð ð õ Ý�D $×"3Ò"3°C¸´FÑ";Ô";Ñ<Ô<Ø˜QœØ!ðñ ô ðð ð rB   )rO   r   rP   rW   rV   rH   rI   rX   rS   r   rs   rr   ÚsysÚmaxsizeÚorderbyÚ
created_atr   rY   rZ   Úfetchall)
r?   rr   rs   rJ   r\   rL   rh   r^   r_   Úrowss
   `  `      rA   Úlist_databaseszSqlSysDB.list_databasesš   sy  øø€ ð �WŠW‰YŒYð 	˜#Ý˜kÑ*Ô*ˆIà×!Ò!Ñ#Ô#ß’�yÑ!Ô!ß’˜	œ i¤nÑ5Ô5ß’�yÔ*­n¸VÑ.DÔ.DÒDÑEÔEß’˜‘”ß’Ø#( =•C”K�K°eñô ÷ ’˜Ô-Ñ.Ô.ð õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø—;’;˜s FÑ+Ô+×4Ò4Ñ6Ô6ˆDðð ð ð ð ð  ðñ ô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   —D%E	Å	EÅEc                 ó  — |                       ¦   «         5 }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        ¦  «                             t          |¦  «        ¦  «        }t          ||  	                    ¦   «         ¦  «        \  }}	 | 
                    ||¦  «         n3# |                      ¦   «         $ r}t          d|› d�¦  «        |‚d }~ww xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )NrM   úTenant ú already exists)rO   r   rP   rQ   rR   rH   rT   r   r   rY   rZ   r[   r   )r?   rI   r\   rM   Úinsert_tenantr^   r_   r`   s           rA   Úcreate_tenantzSqlSysDB.create_tenant¹   sc  € à�WŠW‰YŒYð 	T˜#Ý˜IÑ&Ô&ˆGà×!Ò!Ñ#Ô#ß’�g‘”ß’˜œÑ$Ô$ß’� tÑ,Ô,Ñ-Ô-ð	 õ " -°×1FÒ1FÑ1HÔ1HÑIÔI‰KˆC�ðTØ—’˜C Ñ(Ô(Ð(Ð(øØ×/Ò/Ñ1Ô1ð Tð Tð TÝ+Ð,K°dÐ,KÐ,KÐ,KÑLÔLÐRSÐSøøøøðTøøøð )ð	Tð 	Tð 	Tñ 	Tô 	Tð 	Tð 	Tð 	Tð 	Tð 	Tð 	Tð 	Tøøøð 	Tð 	Tð 	Tð 	Tð 	Tð 	Ts6   •BDÂ*CÃ DÃC1ÃC,Ã,C1Ã1DÄDÄ	Dc                 ó0  — |                       ¦   «         5 }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        ¦  «                             |j        t          |¦  «        k    ¦  «        }t          ||  	                    ¦   «         ¦  «        \  }}| 
                    ||¦  «                             ¦   «         }|st          d|› d�¦  «        ‚t          |¬¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NrM   r€   ú
 not found)rI   )rO   r   rP   rW   rV   rH   rX   r   r   rY   rZ   rf   r   r'   )r?   rI   r\   rM   rh   r^   r_   ri   s           rA   Ú
get_tenantzSqlSysDB.get_tenantÉ   s9  € à�WŠW‰YŒYð 	%˜#Ý˜IÑ&Ô&ˆGà×!Ò!Ñ#Ô#ß’�w‘”ß’˜œ
Ñ#Ô#ß’�w”z¥^°DÑ%9Ô%9Ò9Ñ:Ô:ð	 õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø—+’+˜c 6Ñ*Ô*×3Ò3Ñ5Ô5ˆCØð @Ý#Ð$>¨dÐ$>Ð$>Ð$>Ñ?Ô?Ð?Ý˜tÐ$Ñ$Ô$ð	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   •C)DÄDÄDr\   Úsegmentc                 óJ  — t          t          |d         ¦  «        |d         |d         j        t          |d         ¦  «        dœ¦  «         t          d¦  «        }|                      ¦   «                              |¦  «                             |j        |j        |j	        |j
        ¦  «                             t          |                      |d         ¦  «        ¦  «        t          |d         ¦  «        t          |d         j        ¦  «        t          |                      |d         ¦  «        ¦  «        ¦  «        }t          ||                      ¦   «         ¦  «        \  }}	 |                     ||¦  «         n9# |                      ¦   «         $ r}t%          d|d         › d�¦  «        |‚d }~ww xY wt          d	¦  «        }|d
         r]	 |                      |||j        |d         |d
         ¦  «         d S # t*          $ r#}t,                               d|› �¦  «         ‚ d }~ww xY wd S )NrH   ÚtypeÚscopeÚ
collection©Ú
segment_idÚsegment_typeÚsegment_scoper‹   ÚsegmentsúSegment r�   Úsegment_metadataÚmetadataz"Error inserting segment metadata: )r   ÚstrÚvaluer   rP   rQ   rR   rH   r‰   rŠ   r‹   rT   r   rU   r   rY   rZ   r[   r   Ú_insert_metadatar�   Ú	ExceptionÚloggerÚerror)	r?   r\   r‡   r�   Úinsert_segmentr^   r_   r`   Ú
metadata_ts	            rA   Úcreate_segment_with_txzSqlSysDB.create_segment_with_txÛ   sB  € Ý&å! '¨$¤-Ñ0Ô0Ø '¨¤Ø!(¨Ô!1Ô!7Ý! '¨,Ô"7Ñ8Ô8ð	ð ñ	
ô 	
ð 	
õ ˜Ñ$Ô$ˆà×ÒÑÔßŠT�(‰^Œ^ßŠWØ”Ø”Ø”ØÔ#ñ	ô ÷ ŠVÝ˜tŸš¨w°t¬}Ñ=Ô=Ñ>Ô>Ý˜w vœÑ/Ô/Ý˜w wÔ/Ô5Ñ6Ô6Ý˜tŸš¨w°|Ô/DÑEÔEÑFÔFñ	ô ð 	õ  ˜n¨d×.CÒ.CÑ.EÔ.EÑFÔF‰ˆˆVð	Ø�KŠK˜˜VÑ$Ô$Ð$Ð$øØ×+Ò+Ñ-Ô-ð 	ð 	ð 	Ý'Ø9˜7 4œ=Ð9Ð9Ð9ñô àðøøøøð	øøøõ Ð-Ñ.Ô.ˆ
Ø�:Ôð 	ð
Ø×%Ò%ØØØÔ)Ø˜D”MØ˜JÔ'ñô ð ð ð øõ ð ð ð Ý—’ÐEÀ!ÐEÐEÑFÔFÐFØøøøøðøøøð	ð 	s0   ÅE6 Å6F,ÆF'Æ'F,Ç*G3 Ç3
H Ç=HÈH c                 óŒ   — |                       ¦   «         5 }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r:   )rO   rœ   )r?   r‡   r\   s      rA   Úcreate_segmentzSqlSysDB.create_segment  s‰   € ð �WŠW‰YŒYð 	6˜#Ø×'Ò'¨¨WÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   •9¹=Á =zSqlSysDB.create_collectionFÚschemaÚconfigurationr�   r“   Ú	dimensionÚget_or_createÚdatabasec                 ó¾  — |€|st          d¦  «        ‚t          t          |¦  «        |dœ¦  «         |                      ||	|
¬¦  «        }|rB|r-|d         }|                      |j        |	|
¬¦  «        d         dfS t          d|› d�¦  «        ‚t          ||t          |t          t          |¦  «        ¦  «        d |||	|
d¬	¦	  «	        }|  
                    ¦   «         5 }t          d
¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        |j        |j        |j        |j        ¦  «                             t)          |                      |d         ¦  «        ¦  «        t)          |d         ¦  «        t)          t-          |t          t          |¦  «        ¦  «        ¦  «        t)          |d         ¦  «        |                      ¦   «                              |j        ¦  «                             |¦  «                             |j        t)          |
¦  «        k    ¦  «                             |j        t)          |	¦  «        k    ¦  «        ¦  «        }t7          ||                      ¦   «         ¦  «        \  }}	 |                     ||¦  «         n9# |                      ¦   «         $ r}t          d|d         › d�¦  «        |‚d }~ww xY wt          d¦  «        }|d         r)|                      |||j         |j        |d         ¦  «         |D ]}|  !                    ||¦  «         Œ	 d d d ¦  «         n# 1 swxY w Y   |dfS )Nz.id must be specified if get_or_create is False©Úcollection_idÚcollection_name)rI   rJ   r£   r   )rH   rJ   r£   FúCollection r�   ©	rH   rI   Úconfiguration_jsonÚserialized_schemar“   r¡   rJ   r£   Úversionrm   rL   rH   rI   r¡   Úcollection_metadatar“   T)"Ú
ValueErrorr   r”   Úget_collectionsrH   r   r%   r/   r   r4   rO   r   rP   rQ   rR   rI   Úconfig_json_strr¡   ro   rT   r   rU   r,   rV   rW   rX   rS   r   rY   rZ   r[   r–   r¦   rœ   )r?   rH   rI   rŸ   r    r�   r“   r¡   r¢   rJ   r£   Úexistingr‹   r\   rm   rL   Úinsert_collectionr^   r_   r`   r›   r‡   s                         rA   Úcreate_collectionzSqlSysDB.create_collection  sß  € ð ˆ:˜mˆ:ÝÐMÑNÔNÐNå&å!$ R¡¤Ø#'ðð ñ	
ô 	
ð 	
ð ×'Ò'¨T¸&È8Ð'ÑTÔTˆØð 
	QØð 	QØ% aœ[�
à×(Ò(Ø%œ=°À(ð )ñ ô àôð ð	ð õ ,Ð,O¸$Ð,OÐ,OÐ,OÑPÔPÐPåØØÝFØ�tÕ$6¸ÑAÔAñ ô  ð #ØØØØØð
ñ 
ô 
ˆ
ð �WŠW‰YŒYð 1	:˜#Ý Ñ.Ô.ˆKÝ˜kÑ*Ô*ˆIð ×!Ò!Ñ#Ô#ß’�kÑ"Ô"ß’Ø”NØÔ$ØÔ/ØÔ)ØÔ+ñô ÷ ’Ý" 4§?¢?°:¸dÔ3CÑ#DÔ#DÑEÔEÝ" :¨fÔ#5Ñ6Ô6Ý"ÝCØ)­4Õ0BÀHÑ+MÔ+Mñô ñô õ
 # :¨kÔ#:Ñ;Ô;à×%Ò%Ñ'Ô'ß’V˜IœLÑ)Ô)ß’U˜9Ñ%Ô%ß’U˜9œ>­^¸HÑ-EÔ-EÒEÑFÔFß’U˜9Ô.µ.ÀÑ2HÔ2HÒHÑIÔIñô ð õ6 "Ð"3°T×5JÒ5JÑ5LÔ5LÑMÔM‰KˆC�ðØ—’˜C Ñ(Ô(Ð(Ð(øØ×/Ò/Ñ1Ô1ð ð ð Ý+ØC *¨TÔ"2ÐCÐCÐCñô àðøøøøðøøøõ Ð4Ñ5Ô5ˆJØ˜*Ô%ð Ø×%Ò%ØØØÔ,Ø”MØ˜zÔ*ñô ð ð $ð :ð :�Ø×+Ò+¨C°Ñ9Ô9Ð9Ð9ð:ða1	:ð 1	:ð 1	:ñ 1	:ô 1	:ð 1	:ð 1	:ð 1	:ð 1	:ð 1	:ð 1	:øøøð 1	:ð 1	:ð 1	:ð 1	:ðf ˜4ÐÐs8   ÃF;MÊJ/Ê.MÊ/K%ËK Ë K%Ë%AMÍMÍMzSqlSysDB.get_segmentsr‹   r‰   rŠ   c                 óâ  — t          t          |¦  «        |r|nd|r|j        ndt          |¦  «        dœ¦  «         t          d¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        |j        |j	        |j
        |j        |j        |j        |j        |j        ¦	  «	                             |¦  «                             |j        |j        k    ¦  «                             |j        ¦  «        }|r>|                     |j        t+          |                      |¦  «        ¦  «        k    ¦  «        }|r+|                     |j        t+          |¦  «        k    ¦  «        }|r0|                     |j	        t+          |j        ¦  «        k    ¦  «        }|r>|                     |j
        t+          |                      |¦  «        ¦  «        k    ¦  «        }|                      ¦   «         5 }t1          ||                      ¦   «         ¦  «        \  }	}
|                     |	|
¦  «                             ¦   «         }t9          |d„ ¦  «        }g }|D ]ê\  }}|                      t          |¦  «        ¦  «        }t=          |¦  «        }t          |d         d         ¦  «        }t?          t          |d         d         ¦  «        ¦  «        }|                      |d         d	         ¦  «        }|                       |¦  «        }| !                    tE          tG          tH          |¦  «        ||||i ¬
¦  «        ¦  «         Œë|cd d d ¦  «         S # 1 swxY w Y   d S )NÚ rŒ   r�   r’   c                 ó8   — t          t          | d         ¦  «        S ©Nr   ©r   Úobject©Úrs    rA   ú<lambda>z'SqlSysDB.get_segments.<locals>.<lambda>°  s   € µµf¸aÀ¼dÑ1CÔ1C€ rB   r   rd   é   é   )rH   r‰   rŠ   r‹   r“   Ú
file_paths)%r   r”   r•   r   rP   rW   rV   rH   r‰   rŠ   r‹   ÚkeyÚ	str_valueÚ	int_valueÚfloat_valueÚ
bool_valueÚ	left_joinÚonr�   rz   rX   r   rU   rO   r   rY   rZ   r|   r   rg   Úlistr&   Ú_metadata_from_rowsÚappendr#   r   r   )r?   r‹   rH   r‰   rŠ   Ú
segments_tr›   rh   r\   r^   r_   r}   Ú
by_segmentr�   r�   Úsegment_rowsr“   s                    rA   Úget_segmentszSqlSysDB.get_segments}  sp  € õ 	'å! "™gœgØ(,Ð 4  °"Ø05Ð!= ¤ ¸2Ý! *™oœoð	ð ñ	
ô 	
ð 	
õ ˜:Ñ&Ô&ˆ
ÝÐ-Ñ.Ô.ˆ
à×ÒÑÔßŠU�:ÑÔßŠVØ”Ø”ØÔ ØÔ%Ø”ØÔ$ØÔ$ØÔ&ØÔ%ñ
ô 
÷ ŠY�zÑ"Ô"ßŠR�
” Ô!6Ò6Ñ7Ô7ßŠW�Z”]Ñ#Ô#ð! 	
ð$ ð 	NØ—’˜
œ­¸¿ºÈÑ8KÔ8KÑ)LÔ)LÒLÑMÔMˆAØð 	AØ—’˜
œ­>¸$Ñ+?Ô+?Ò?Ñ@Ô@ˆAØð 	IØ—’˜
Ô(­N¸5¼;Ñ,GÔ,GÒGÑHÔHˆAØð 	Ø—’ØÔ%­¸¿ºÈ
Ñ8SÔ8SÑ)TÔ)TÒTñô ˆAð �WŠW‰YŒYð 	˜#Ý! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø—;’;˜s FÑ+Ô+×4Ò4Ñ6Ô6ˆDÝ  Ð'CÐ'CÑDÔDˆJØˆHØ,6ð ð Ñ(�
˜LØ×&Ò&¥s¨:¡¤Ñ7Ô7�Ý˜LÑ)Ô)�Ý˜4 œ7 1œ:‘”�Ý$¥S¨¨a¬°¬¡_¤_Ñ5Ô5�Ø!×.Ò.¨t°A¬w°q¬zÑ:Ô:�
Ø×3Ò3°DÑ9Ô9�Ø—’ÝÝ¥ b™>œ>Ø!Ø#Ø#-Ø!)Ø#%ðñ ô ñ	ô 	ð 	ð 	ð ð/	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÈEM$Í$M(Í+M(zSqlSysDB.get_collectionsc                 ó"	  — |�|�|€t          d¦  «        ‚t          t          |¦  «        |r|nddœ¦  «         t          d¦  «        }t          d¦  «        }t          d¦  «        }	|                      ¦   «                              |¦  «                             |j        |j        |j	        |j
        |	j        |	j        |j        |j        |j        |j        |j        ¦  «                             |¦  «                             |j        |j        k    ¦  «                             |	¦  «                             |j        |	j        k    ¦  «                             |j        ¦  «        }
|r>|
                     |j        t/          |                      |¦  «        ¦  «        k    ¦  «        }
|r+|
                     |j        t/          |¦  «        k    ¦  «        }
|€À|r¾|r¼t          d¦  «        }	|
                     |j        |                      ¦   «                              |	j        ¦  «                             |	¦  «                             |	j        t/          |¦  «        k    ¦  «                             |	j        t/          |¦  «        k    ¦  «        k    ¦  «        }
|                      ¦   «         5 }t5          |
|                      ¦   «         ¦  «        \  }}|                     ||¦  «                             ¦   «         }t=          |d„ ¦  «        }g }|D �]O\  }}|                      t          |¦  «        ¦  «        }tA          |¦  «        }t          |d	         d
         ¦  «        }|  !                    |¦  «        }|d	         d         rtE          |d	         d         ¦  «        nd}|d	         d         �tG          |d	         d         ¦  «        }n|  $                    ||¦  «        }| %                    tM          tO          tP          |¦  «        |tS          |¦  «        d||t          |d	         d         ¦  «        t          |d	         d         ¦  «        d	¬¦	  «	        ¦  «         �ŒQ|�|€d	}||||z   …         }n
||d…         }|cddd¦  «         S # 1 swxY w Y   dS )z;Get collections by name, embedding function and/or metadataNzmIf name is specified, tenant and database must also be specified in order to uniquely identify the collectionrµ   r¥   rm   r­   rL   c                 ó8   — t          t          | d         ¦  «        S r·   r¸   rº   s    rA   r¼   z*SqlSysDB.get_collections.<locals>.<lambda>  s   € µD½ÀÀ1ÄÑ4FÔ4F€ rB   r   rd   r¾   r½   é   é   r©   )*r®   r   r”   r   rP   rW   rV   rH   rI   r°   r¡   rS   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   r¦   ro   rz   rX   r   rU   rO   r   rY   rZ   r|   r   rg   rÇ   rÈ   Úintr-   Ú!_insert_config_from_legacy_paramsrÉ   r%   r   r   r0   )r?   rH   rI   rJ   r£   rr   rs   Úcollections_tr›   Údatabases_trh   r\   r^   r_   r}   Úby_collectionrm   r¦   Úcollection_rowsr“   r¡   r    s                         rA   r¯   zSqlSysDB.get_collectionsÆ  sž  € ð Ð  °8Ð3CÝØñô ð õ 	'å!$ R¡¤Ø+/Ð#7 4 4°Rðð ñ	
ô 	
ð 	
õ ˜mÑ,Ô,ˆÝÐ0Ñ1Ô1ˆ
Ý˜KÑ(Ô(ˆà×ÒÑÔßŠU�=Ñ!Ô!ßŠVØÔ ØÔ"ØÔ-ØÔ'ØÔ ØÔ%Ø”ØÔ$ØÔ$ØÔ&ØÔ%ñô ÷ ŠY�zÑ"Ô"ßŠR�Ô  JÔ$<Ò<Ñ=Ô=ßŠY�{Ñ#Ô#ßŠR�Ô)¨[¬^Ò;Ñ<Ô<ßŠW�]Ô%Ñ&Ô&ð) 	
ð, ð 	QØ—’˜Ô(­N¸4¿?º?È2Ñ;NÔ;NÑ,OÔ,OÒOÑPÔPˆAØð 	DØ—’˜Ô*­n¸TÑ.BÔ.BÒBÑCÔCˆAð ˆ:˜&ˆ: Xˆ:Ý Ñ,Ô,ˆKØ—’ØÔ)Ø×$Ò$Ñ&Ô&ß’˜œÑ'Ô'ß’�{Ñ#Ô#ß’�{Ô'­>¸(Ñ+CÔ+CÒCÑDÔDß’�{Ô,µ¸vÑ0FÔ0FÒFÑGÔGòHñô ˆAð �WŠW‰YŒYð 0	˜#Ý! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø—;’;˜s FÑ+Ô+×4Ò4Ñ6Ô6ˆDÝ# DÐ*FÐ*FÑGÔGˆMØˆKØ2?ð !ñ !Ñ.�˜Ø×&Ò&¥s¨=Ñ'9Ô'9Ñ:Ô:�Ý˜OÑ,Ô,�Ý˜4 œ7 1œ:‘”�Ø×3Ò3°DÑ9Ô9�Ø/3°A¬w°q¬zÐC�C  Q¤¨¤
™OœO˜O¸t�	Ø˜”7˜1”:Ð)Ý$OØ˜Qœ œ
ñ%ô %�M�Mð %)×$JÒ$JØ% xñ%ô %�Mð ×"Ò"ÝÝ¥ b™>œ>Ø!Ý+KØ)ñ,ô ,ð +/Ø!)Ø"+Ý" 4¨¤7¨1¤:™œÝ!$ T¨!¤W¨Q¤Z¡¤Ø !ðñ ô ñô ð ñ ð" Ð Ø�>Ø�FØ)¨&°6¸E±>Ð*AÔB��à)¨&¨'¨'Ô2�àða0	ð 0	ð 0	ð 0	ñ 0	ô 0	ð 0	ð 0	ð 0	ð 0	ð 0	ð 0	øøøð 0	ð 0	ð 0	ð 0	ð 0	ð 0	s   Ê$GRÒRÒRr¦   c                 óÐ   — |                       |¬¦  «        }t          |¦  «        dk    rt          d|› d�¦  «        ‚t          |d         |                      |¬¦  «        ¬¦  «        S )N)rH   r   r¨   z does not exist.)r‹   )r‹   r�   )r¯   Úlenr   r    rÍ   )r?   r¦   rm   s      rA   Úget_collection_with_segmentsz%SqlSysDB.get_collection_with_segments=  sy   € ð ×*Ò*¨mÐ*Ñ<Ô<ˆÝˆ{ÑÔ˜qÒ Ð ÝÐ M¨mÐ MÐ MÐ MÑNÔNÐNÝ$Ø" 1”~Ø×&Ò&°-Ð&Ñ@Ô@ð
ñ 
ô 
ð 	
rB   zSqlSysDB.delete_segmentc                 ót  — t          dt          |¦  «        i¦  «         t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «         	                    ¦   «         }|  
                    ¦   «         5 }t          ||                      ¦   «         ¦  «        \  }}|dz   }|                     ||¦  «                             ¦   «         }|st          d|› d�¦  «        ‚	 ddd¦  «         dS # 1 swxY w Y   dS )zDelete a segment from the SysDBr�   r�   rl   r‘   r…   N)r   r”   r   rP   rW   rX   rH   r   rU   rn   rO   r   rY   rZ   rf   r   )	r?   r‹   rH   Útrh   r\   r^   r_   rp   s	            rA   Údelete_segmentzSqlSysDB.delete_segmentI  se  € õ 	'à�c "™gœgðñ	
ô 	
ð 	
õ
 �*ÑÔˆà×ÒÑÔßŠU�1‰XŒXßŠU�1”4�>¨$¯/ª/¸"Ñ*=Ô*=Ñ>Ô>Ò>Ñ?Ô?ßŠV‰XŒXð	 	
ð �WŠW‰YŒYð 	?˜#å! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø˜Ñ'ˆCØ—[’[  fÑ-Ô-×6Ò6Ñ8Ô8ˆFØð ?Ý#Ð$=¨rÐ$=Ð$=Ð$=Ñ>Ô>Ð>ð?ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   Â7A(D-Ä-D1Ä4D1c                 ó„  — t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «                             ¦   «         }t          ||  	                    ¦   «         ¦  «        \  }}| 
                    ||¦  «         d S )Nr�   )r   rP   rW   rX   r‹   r   rU   rn   r   rY   rZ   )r?   r\   r‹   rÊ   rh   r^   r_   s          rA   Údelete_segments_for_collectionz'SqlSysDB.delete_segments_for_collectionc  s�   € Ý˜:Ñ&Ô&ˆ
à×ÒÑÔßŠU�:ÑÔßŠU�:Ô(­N¸4¿?º?È:Ñ;VÔ;VÑ,WÔ,WÒWÑXÔXßŠV‰XŒXð	 	
õ ˜a ×!6Ò!6Ñ!8Ô!8Ñ9Ô9‰ˆˆVØ�Š�C˜Ñ Ô Ð Ð Ð rB   zSqlSysDB.delete_collectionc           	      óP  — t          dt          |¦  «        i¦  «         t          d¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «                             |j	        |                      ¦   «          
                    |j        ¦  «                             |¦  «                             |j        t          |¦  «        k    ¦  «                             |j        t          |¦  «        k    ¦  «        k    ¦  «                             ¦   «         }|                      ¦   «         5 }t          ||                      ¦   «         ¦  «        \  }}	|dz   }|                     ||	¦  «                             ¦   «         }
|
st'          d|› d�¦  «        ‚|                      ||¦  «         ddd¦  «         n# 1 swxY w Y   | j                             |
d         ¦  «         dS )	z{Delete a collection and all associated segments from the SysDB. Deletes
        the log stream for this collection as well.r¦   rm   rL   rl   r¨   r…   Nr   )r   r”   r   rP   rW   rX   rH   r   rU   ro   rV   rI   rS   rn   rO   r   rY   rZ   rf   r   rß   r7   Ú
delete_log)r?   rH   rJ   r£   rÜ   rÕ   rh   r\   r^   r_   rp   s              rA   Údelete_collectionzSqlSysDB.delete_collectionn  s  € õ 	'à¥ R¡¤ðñ	
ô 	
ð 	
õ
 �-Ñ Ô ˆÝ˜KÑ(Ô(ˆà×ÒÑÔßŠU�1‰XŒXßŠU�1”4�>¨$¯/ª/¸"Ñ*=Ô*=Ñ>Ô>Ò>Ñ?Ô?ßŠUØ”Ø×$Ò$Ñ&Ô&ß’˜œÑ'Ô'ß’�{Ñ#Ô#ß’�{Ô'­>¸(Ñ+CÔ+CÒCÑDÔDß’�{Ô,µ¸vÑ0FÔ0FÒFÑGÔGòHñô ÷ ŠV‰XŒXð 	
ð �WŠW‰YŒYð 	9˜#å! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø˜Ñ'ˆCØ—[’[  fÑ-Ô-×6Ò6Ñ8Ô8ˆFØð BÝ#Ð$@°"Ð$@Ð$@Ð$@ÑAÔAÐAà×/Ò/°°RÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	Œ×!Ò! &¨¤)Ñ,Ô,Ð,Ð,Ð,s   Å1A>G;Ç;G?ÈG?zSqlSysDB.update_segmentc                 ó   — t          t          |¦  «        t          |¦  «        dœ¦  «         t          d¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «         	                    |j
        t          |                      |¦  «        ¦  «        ¦  «        }|                      ¦   «         5 }t          ||                      ¦   «         ¦  «        \  }}	|r|                     ||	¦  «         |€±|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «                             ¦   «         }t          ||                      ¦   «         ¦  «        \  }}	|                     ||	¦  «         nz|t%          ¦   «         k    rht'          t(          |¦  «        }t'          t(          |¦  «        }|                      |||j        ||t          |                     ¦   «         ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r�   r‹   r�   r’   )r   r”   r   rP   ÚupdaterX   rH   r   rU   Úsetr‹   rO   r   rY   rZ   rW   r�   rn   r(   r   r)   r–   Úkeys)
r?   r‹   rH   r“   rÊ   r›   rh   r\   r^   r_   s
             rA   Úupdate_segmentzSqlSysDB.update_segment™  sh  € õ 	'å! "™gœgÝ! *™oœoðð ñ	
ô 	
ð 	
õ ˜:Ñ&Ô&ˆ
ÝÐ-Ñ.Ô.ˆ
ð ×ÒÑÔßŠV�JÑÔßŠU�:”=¥N°4·?²?À2Ñ3FÔ3FÑ$GÔ$GÒGÑHÔHßŠS�Ô&­°t·²ÀzÑ7RÔ7RÑ(SÔ(SÑTÔTð	 	
ð �WŠW‰YŒYð 	˜#Ý! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Øð )Ø—’˜C Ñ(Ô(Ð(àÐà×%Ò%Ñ'Ô'ß’U˜:Ñ&Ô&ß’U˜:Ô0µNÀ4Ç?Â?ÐSUÑCVÔCVÑ4WÔ4WÒWÑXÔXß’V‘X”Xð	 õ & a¨×)>Ò)>Ñ)@Ô)@ÑAÔA‘��VØ—’˜C Ñ(Ô(Ð(Ð(Ø�[™]œ]Ò*Ð*Ý¥°Ñ9Ô9�Ý¥°Ñ9Ô9�Ø×%Ò%ØØØÔ)ØØÝ˜Ÿš™œÑ(Ô(ñô ð ð#	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ã;E+I3É3I7É:I7zSqlSysDB.update_collectionc                 ó¤  — t          dt          |¦  «        i¦  «         t          d¦  «        }t          d¦  «        }|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «        }|t          ¦   «         k    s(| 
                    |j        t          |¦  «        ¦  «        }|t          ¦   «         k    s(| 
                    |j        t          |¦  «        ¦  «        }|                      ¦   «         5 }	t          ||                      ¦   «         ¦  «        \  }
}|
rB|
dz   }
|	                     |
|¦  «        }|                     ¦   «         st%          d|› d�¦  «        ‚|t          ¦   «         k    �r|                      ¦   «                              |¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «                             ¦   «         }t          ||                      ¦   «         ¦  «        \  }
}|	                     |
|¦  «         |�St-          t.          |¦  «        }|                      |	||j        ||t          |                     ¦   «         ¦  «        ¦  «         |t          ¦   «         k    r-t-          t4          |¦  «        }|                      |	||¦  «         nO|t          ¦   «         k    r=t-          t.          |¦  «        }|�&t9          |¦  «        }|                      |	||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¦   rm   r­   rl   r¨   r…   )r   r”   r   rP   rä   rX   rH   r   rU   r(   rå   rI   r¡   rO   r   rY   rZ   rf   r   rW   r¦   rn   r   r)   r–   ræ   r+   Ú_update_config_json_strr3   )r?   rH   rI   r¡   r“   r    rÔ   r›   rh   r\   r^   r_   rp   Úupdate_configurations                 rA   Úupdate_collectionzSqlSysDB.update_collectionË  sl  € õ 	'à¥ R¡¤ðñ	
ô 	
ð 	
õ
 ˜mÑ,Ô,ˆÝÐ0Ñ1Ô1ˆ
ð ×ÒÑÔßŠV�MÑ"Ô"ßŠU�=Ô#¥~°d·o²oÀbÑ6IÔ6IÑ'JÔ'JÒJÑKÔKð 	
ð •{‘}”}Ò$Ð$Ø—’�mÔ(­.¸Ñ*>Ô*>Ñ?Ô?ˆAà�K™MœMÒ)Ð)Ø—’�mÔ-­~¸iÑ/HÔ/HÑIÔIˆAà�WŠW‰YŒYð 0	T˜#Ý! ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Øð FØ˜OÑ+�ØŸš S¨&Ñ1Ô1�Ø—’Ñ(Ô(ð FÝ'Ð(D°bÐ(DÐ(DÐ(DÑEÔEÐEð �;™=œ=Ò(Ñ(à×%Ò%Ñ'Ô'ß’U˜:Ñ&Ô&ß’UØ"Ô0µNÀ4Ç?Â?ÐSUÑCVÔCVÑ4WÔ4WÒWñô ÷ ’V‘X”Xð õ & a¨×)>Ò)>Ñ)@Ô)@ÑAÔA‘��VØ—’˜C Ñ(Ô(Ð(ØÐ'Ý#¥N°HÑ=Ô=�HØ×)Ò)ØØ"Ø"Ô0ØØ Ý˜HŸMšM™OœOÑ,Ô,ñô ð ð ¥¡¤Ò-Ð-Ý'+Ý1°=ñ(ô (Ð$ð ×,Ò,¨SÐ2FÈÑKÔKÐKÐKà�{™}œ}Ò,Ð,Ý#¥N°HÑ=Ô=�HØÐ+åWØ (ñô ð -ð
 ×4Ò4°SÐ:NÐPRÑSÔSÐSða0	Tð 0	Tð 0	Tñ 0	Tô 0	Tð 0	Tð 0	Tð 0	Tð 0	Tð 0	Tð 0	Tð 0	Tøøøð 0	Tð 0	Tð 0	Tð 0	Tð 0	Tð 0	Ts   Ä(HMÍM	ÍM	rê   c                 óÎ  — t          d¦  «        }|                      ¦   «                              |¦  «                             |j        ¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «        }t          ||  
                    ¦   «         ¦  «        \  }}|                     ||¦  «                             ¦   «         }|st          d|› d�¦  «        ‚|d         }	t          |	¦  «        }
t          |
|¦  «        }|                      ¦   «                              |¦  «                             |j        t          t%          |¦  «        ¦  «        ¦  «                             |j        t          |                      |¦  «        ¦  «        k    ¦  «        }t          ||  
                    ¦   «         ¦  «        \  }}|                     ||¦  «         d S )Nrm   r¨   r…   r   )r   rP   rW   rV   r°   rX   rH   r   rU   r   rY   rZ   rf   r   r-   r2   rä   rå   r1   )r?   r\   rê   rH   rÔ   rh   r^   r_   ri   r°   Úexisting_configÚ
new_configs               rA   ré   z SqlSysDB._update_config_json_str  sª  € õ ˜mÑ,Ô,ˆà×ÒÑÔßŠU�=Ñ!Ô!ßŠV�MÔ1Ñ2Ô2ßŠU�=Ô#¥~°d·o²oÀbÑ6IÔ6IÑ'JÔ'JÒJÑKÔKð	 	
õ ˜a ×!6Ò!6Ñ!8Ô!8Ñ9Ô9‰ˆˆVØ�kŠk˜#˜vÑ&Ô&×/Ò/Ñ1Ô1ˆØð 	>ÝÐ <¨bÐ <Ð <Ð <Ñ=Ô=Ð=Ø˜aœ&ˆÝEÀoÑVÔVˆÝ7ØÐ1ñ
ô 
ˆ
ð ×ÒÑÔßŠV�MÑ"Ô"ßŠSØÔ-ÝÕCÀJÑOÔOÑPÔPñô ÷ ŠU�=Ô#¥~°d·o²oÀbÑ6IÔ6IÑ'JÔ'JÒJÑKÔKð 	
õ ˜a ×!6Ò!6Ñ!8Ô!8Ñ9Ô9‰ˆˆVØ�Š�C˜Ñ Ô Ð Ð Ð rB   zSqlSysDB._metadata_from_rowsr}   .c                 ó„  — t          dt          |¦  «        i¦  «         i }|D ]š}t          |d         ¦  «        }|d         �t          |d         ¦  «        ||<   Œ8|d         �t          |d         ¦  «        ||<   ŒY|d         �t	          |d         ¦  «        ||<   Œz|d         �t          |d         ¦  «        ||<   Œ›|pdS )zƒGiven SQL rows, return a metadata map (assuming that the last four columns
        are the key, str_value, int_value & float_value)Únum_rowséûÿÿÿéüÿÿÿNéýÿÿÿéþÿÿÿéÿÿÿÿ)r   rÙ   r”   rÒ   ÚfloatÚbool)r?   r}   r“   ri   rÀ   s        rA   rÈ   zSqlSysDB._metadata_from_rows<  sÑ   € õ 	'à�C ™IœIðñ	
ô 	
ð 	
ð
 =?ˆØð 		.ð 		.ˆCÝ�c˜"”g‘,”,ˆCØ�2ŒwÐ"Ý # C¨¤G¡¤�˜‘�Ø�R”Ð$Ý # C¨¤G¡¤�˜‘�Ø�R”Ð$Ý % c¨"¤g¡¤�˜‘�Ø�R”Ð$Ý $ S¨¤W¡¤�˜‘øØÐ˜4ÐrB   zSqlSysDB._insert_metadataÚtableÚid_colÚ
clear_keysc                 ót  — t          dt          |¦  «        i¦  «         |rà|                      ¦   «                              |¦  «                             |t          |                      |¦  «        ¦  «        k    ¦  «                             |j                             d„ |D ¦   «         ¦  «        ¦  «         	                    ¦   «         }t          ||                      ¦   «         ¦  «        \  }}	|                     ||	¦  «         |                      ¦   «                              |¦  «                             ||j        |j        |j        |j        |j        ¦  «        }|                      |¦  «        }
|                     ¦   «         D �]u\  }}t)          |t*          ¦  «        rO|                     t          |
¦  «        t          |¦  «        d d d t          t/          |¦  «        ¦  «        ¦  «        }Œjt)          |t0          ¦  «        rB|                     t          |
¦  «        t          |¦  «        t          |¦  «        d d d ¦  «        }ŒÁt)          |t.          ¦  «        rC|                     t          |
¦  «        t          |¦  «        d t          |¦  «        d d ¦  «        }�Œt)          |t2          ¦  «        rC|                     t          |
¦  «        t          |¦  «        d d t          |¦  «        d ¦  «        }�Œq|€�Œu�Œwt          ||                      ¦   «         ¦  «        \  }}	|r|                     ||	¦  «         d S d S )NÚnum_keysc                 ó,   — g | ]}t          |¦  «        ‘ŒS © )r   )rv   Úks     rA   rw   z-SqlSysDB._insert_metadata.<locals>.<listcomp>k  s    € Ð&MÐ&MÐ&M¸Q¥~°aÑ'8Ô'8Ð&MÐ&MÐ&MrB   )r   rÙ   rP   rW   rX   r   rU   rÀ   Úisinrn   r   rY   rZ   rQ   rR   rÁ   rÂ   rÃ   rÄ   ÚitemsÚ
isinstancer÷   rT   rÒ   r”   rö   )r?   r\   rø   rù   rH   r“   rú   rh   r^   r_   Úsql_idrÿ   Úvs                rA   r–   zSqlSysDB._insert_metadataT  s	  € õ 	'à�C ™MœMðñ	
ô 	
ð 	
ð
 ð 		%à×!Ò!Ñ#Ô#ß’�u‘”ß’�v¥°·²ÀÑ0CÔ0CÑ!DÔ!DÒDÑEÔEß’�u”y—~’~Ð&MÐ&MÀ*Ð&MÑ&MÔ&MÑNÔNÑOÔOß’‘”ð õ " ! T×%:Ò%:Ñ%<Ô%<Ñ=Ô=‰KˆC�Ø�KŠK˜˜VÑ$Ô$Ð$ð ×ÒÑÔßŠT�%‰[Œ[ßŠWØØ”	Ø”Ø”ØÔ!ØÔ ñô ð 	
ð —’ Ñ$Ô$ˆØ—N’NÑ$Ô$ð (	ñ (	‰DˆAˆqõ ˜!�TÑ"Ô"ð %Ø—H’HÝ" 6Ñ*Ô*Ý" 1Ñ%Ô%ØØØÝ"¥3 q¡6¤6Ñ*Ô*ñô ��õ ˜A�sÑ#Ô#ð Ø—H’HÝ" 6Ñ*Ô*Ý" 1Ñ%Ô%Ý" 1Ñ%Ô%ØØØñô ��õ ˜A�sÑ#Ô#ð Ø—H’HÝ" 6Ñ*Ô*Ý" 1Ñ%Ô%ØÝ" 1Ñ%Ô%ØØñô �‘õ ˜A�uÑ%Ô%ð 
Ø—H’HÝ" 6Ñ*Ô*Ý" 1Ñ%Ô%ØØÝ" 1Ñ%Ô%Øñô �‘ð �Ùñ õ ˜a ×!6Ò!6Ñ!8Ô!8Ñ9Ô9‰ˆˆVØð 	%Ø�KŠK˜˜VÑ$Ô$Ð$Ð$Ð$ð	%ð 	%rB   c                 óZ  — t          d¦  «        }t          ¦   «         }t          |t          t          |¦  «        ¦  «        }|                      ¦   «                              |¦  «                             |j        t          |¦  «        ¦  «         
                    |j        t          |¦  «        k    ¦  «        }t          ||                      ¦   «         ¦  «        \  }}|                      ¦   «         5 }	|	                     ||¦  «         ddd¦  «         n# 1 swxY w Y   t!          |¦  «        S )zuInsert the configuration from legacy metadata params into the collections table, and return the configuration object.rm   N)r   r*   r,   r   r4   rP   rä   rå   r°   r   rX   rH   r   rY   rO   rZ   r-   )
r?   r¦   r“   rÔ   Úcreate_collection_configÚconfiguration_json_strrh   r^   r_   r\   s
             rA   rÓ   z*SqlSysDB._insert_config_from_legacy_params¬  sD  € õ ˜mÑ,Ô,ˆå#@Ñ#BÔ#BÐ å!LØ$¥dÕ+=¸xÑ&HÔ&Hñ"
ô "
Ðð ×ÒÑÔßŠV�MÑ"Ô"ßŠSØÔ-ÝÐ5Ñ6Ô6ñô ÷ ŠU�=Ô#¥~°mÑ'DÔ'DÒDÑEÔEð 	
õ ˜a ×!6Ò!6Ñ!8Ô!8Ñ9Ô9‰ˆˆVØ�WŠW‰YŒYð 	%˜#Ø�KŠK˜˜VÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%å:Ð;QÑRÔRÐRs   Ã0DÄDÄDc                 ó   — t           ‚r:   )ÚNotImplementedError)r?   rH   s     rA   Úget_collection_sizezSqlSysDB.get_collection_sizeÉ  s   € å!Ð!rB   c                 ób   — |�|dk    rdn|}t          |                      ||¬¦  «        ¦  «        S )zFGets the number of collections for the (tenant, database) combination.Nrµ   )rJ   r£   )rÙ   r¯   )r?   rJ   r£   Úrequest_databases       rA   Úcount_collectionszSqlSysDB.count_collectionsÍ  s=   € ð '/Ð&6¸(Àbº.¸.  ÈhÐÝ�4×'Ò'¨vÐ@PÐ'ÑQÔQÑRÔRÐRrB   )rC   N)NNNr:   )@Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r<   r   r   ÚALLr   rE   r   r   r”   ra   r!   rj   rq   r   rÒ   r   r~   rƒ   r'   r†   r   r#   rœ   rž   r   r   r*   r$   r÷   r   r%   r³   r&   rÍ   r¯   r    rÚ   rÝ   rß   râ   r(   r"   r)   rç   r+   rë   ré   r   rÈ   r   r   r
   r–   r.   rÓ   r
  r  Ú__classcell__)r@   s   @rA   r6   r6   5   s=	  ø€ € € € € € ð ÐÐÑðI˜vð Ið Ið Ið Ið Ið Ið €\Ð+Ð-EÔ-IÑJÔJØð9ð 9ð 9ð 9ð 9ñ „Xñ KÔJð9ð à1?ðð ØðØ!ðØ+.ðà	ðð ð ñ „Xðð8 Ø4Bð ð  ð ¨cð Àxð ð ð ñ „Xðð6 Ø7Eð %ð % Cð %°ð %È$ð %ð %ð %ñ „Xð%ð8 ð  $Ø $Ø$ð	ð à˜Œ}ðð ˜”ðð ð	ð
 
�(Ô	ðð ð ñ „Xðð< ðT #ð T¨$ð Tð Tð Tñ „XðTð ð%˜sð % vð %ð %ð %ñ „Xð%ð"0¨&ð 0¸7ð 0Àtð 0ð 0ð 0ð 0ðf €\Ð+Ð-EÔ-IÑJÔJØð6 gð 6°$ð 6ð 6ð 6ñ „Xñ KÔJð6ð €\Ð.Ð0HÔ0LÑMÔMØð (,Ø#'Ø#Ø$Ø(ðe ð e àðe ð ðe ð ˜Ô ð	e ð
 5ðe ð ˜7Ô#ðe ð ˜8Ô$ðe ð ˜C”=ðe ð ðe ð ðe ð ðe ð 
ˆz˜4ÐÔ	 ðe ð e ð e ñ „Xñ NÔMðe ðN €\Ð)Ð+CÔ+GÑHÔHØð "Ø"Ø(,ðEð EàðEð �TŒNðEð �sŒmð	Eð
 ˜Ô%ðEð 
�'Ô	ðEð Eð Eñ „Xñ IÔHðEðN €\Ð,Ð.FÔ.JÑKÔKØð "Ø"Ø$Ø(Ø#Ø $ðsð sà�TŒNðsð �sŒmðsð ð	sð
 ðsð ˜Œ}ðsð ˜”ðsð 
�*Ô	ðsð sð sñ „Xñ LÔKðsðj ð	
Ø!ð	
à	ð	
ð 	
ð 	
ñ „Xð	
ð €\Ð+Ð-EÔ-IÑJÔJØð?¨ð ?°4ð ?¸Dð ?ð ?ð ?ñ „Xñ KÔJð?ð0	!°&ð 	!Àdð 	!Ètð 	!ð 	!ð 	!ð 	!ð €\Ð.Ð0HÔ0LÑMÔMØð %Ø(ð	'-ð '-àð'-ð ð'-ð ð	'-ð
 
ð'-ð '-ð '-ñ „Xñ NÔMð'-ðR €\Ð+Ð-EÔ-IÑJÔJØð
 @K¸{¹}¼}ð	.ð .àð.ð ð.ð # 8¨NÔ#;Ô<ð	.ð
 
ð.ð .ð .ñ „Xñ KÔJð.ð` €\Ð.Ð0HÔ0LÑMÔMØð '2 k¡m¤mØ5@°[±]´]Ø?J¸{¹}¼}ð ˆK‰MŒMðNTð NTàðNTð ˜sÔ#ðNTð $ H¨S¤MÔ2ð	NTð
 # 8¨NÔ#;Ô<ðNTð (ØÐ2Ô3ô
ðNTð 
ðNTð NTð NTñ „Xñ NÔMðNTð`!Øð!Ø1Nð!ØTXð!à	ð!ð !ð !ð !ð> €\Ð0Ð2JÔ2NÑOÔOð Ø˜U 3¨ 8œ_Ô-ð à	�(Ô	ð ð  ð  ñ PÔOð ð. €\Ð-Ð/GÔ/KÑLÔLð *.ðU%ð U%àðU%ð ðU%ð ð	U%ð
 ðU%ð !ðU%ð ˜S œXÔ&ðU%ð 
ðU%ð U%ð U%ñ MÔLðU%ðnSØ ðSØ,4°XÔ,>ðSà	 ðSð Sð Sð Sð: ð" dð "¨sð "ð "ð "ñ „Xð"ð ð %Ø"&ðSð SàðSð ˜3”-ðSð 
ð	Sð Sð Sñ „XðSð Sð Sð Sð SrB   r6   )FÚloggingrx   Útypingr   r   r   r   r   r   r	   r
   Úuuidr   Ú	overridesr   Úpypikar   r   Ú	itertoolsr   Úchromadb.api.typesr   Úchromadb.configr   r   r   Úchromadb.db.baser   r   r   r   Úchromadb.db.systemr   Úchromadb.errorsr   r   Ú chromadb.telemetry.opentelemetryr   r   r   r   Úchromadb.ingestr   Úchromadb.typesr    r!   r"   r#   r$   r%   r&   r'   r(   r)   Ú%chromadb.api.collection_configurationr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Ú	getLoggerr  r˜   r6   rþ   rB   rA   ú<module>r$     s×  ðØ €€€Ø 
€
€
€
Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð %Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 
ˆÔ	˜8Ñ	$Ô	$€ðeSð eSð eSð eSð eSˆu�eñ eSô eSð eSð eSð eSrB   