Ë
    lQêj[�  ã                   óˆ  — 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 j„                  eC«      ZD G d„ dee «      ZEy)é    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                   óD  ‡ — 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                 óX   •— t         ‰| �  |«       |j                  t        «      | _        y ©N)ÚsuperÚ__init__Úrequirer   Ú_opentelemetry_client)Úselfr8   Ú	__class__s     €ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/db/mixins/sysdb.pyr<   zSqlSysDB.__init__:   s"   ø€ Ü‰Ñ˜Ô Ø%+§^¡^Ô4GÓ%HˆÕ"ó    zSqlSysDB.create_segmentÚreturnNc                 ój   •— t         ‰| �  «        | j                  j                  t        «      | _        y r:   )r;   ÚstartÚ_systemÚinstancer   r7   )r?   r@   s    €rA   rE   zSqlSysDB.start>   s$   ø€ ô 	‰‰ŒØŸ™×.Ñ.¬xÓ8ˆ�rB   ÚidÚnameÚtenantc                 óì  — | j                  «       5 }t        d«      }t        d«      }| j                  «       j                  |«      j	                  |j
                  |j                  |j                  «      j                  t        | j                  |«      «      t        |«      | j                  «       j                  |j
                  «      j                  |«      j                  |j
                  t        |«      k(  «      «      }t        || j                  «       «      \  }}		 |j!                  ||	«       	 d d d «       y # | j#                  «       $ r}
t%        d|› d|› �«      |
‚d }
~
ww xY w# 1 sw Y   y xY w)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ð 	˜#ä˜kÓ*ˆIÜ˜IÓ&ˆGà×!Ñ!Ó#ß‘�i“ß‘˜Ÿ™ y§~¡~°y×7JÑ7JÓKß‘Ü" 4§?¡?°2Ó#6Ó7Ü" 4Ó(Ø×%Ñ%Ó'ß‘V˜GŸJ™JÓ'ß‘U˜7“^ß‘U˜7Ÿ:™:¬¸Ó)?Ñ?Ó@óð	 ô " /°4×3HÑ3HÓ3JÓK‰KˆC�ðØ—‘˜C Õ(÷'	ð 	øð( ×/Ñ/Ó1ò Ü+Ø ˜vÐ%@ÀÀÐIóàðûðú÷)	ð 	ús*   ‘DE*Ä!D=Ä=E'ÅE"Å"E'Å'E*Å*E3c                 ó´  — | j                  «       5 }t        d«      }| j                  «       j                  |«      j	                  |j
                  |j                  «      j                  |j                  t        |«      k(  «      j                  |j                  t        |«      k(  «      }t        || j                  «       «      \  }}|j                  ||«      j                  «       }|st        d|› d|› d�«      ‚|d   €t        d|› d|› d�«      ‚t        t         | j#                  |d   «      «      }	t%        |	|d   |¬«      cd d d «       S # 1 sw Y   y xY w)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   sC  € à�W‰W‹Yð 	˜#Ü˜kÓ*ˆIà×!Ñ!Ó#ß‘�yÓ!ß‘˜	Ÿ™ i§n¡nÓ5ß‘�y—~‘~¬¸Ó)=Ñ=Ó>ß‘�y×*Ñ*¬n¸VÓ.DÑDÓEð ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø—+‘+˜c 6Ó*×3Ñ3Ó5ˆCÙÜ#Ø ˜vÐ%;¸F¸8ÐC\Ð]óð ð �1‰vˆ~Ü#Ø ˜vÐ%;¸F¸8ÐC\Ð]óð ô œD $×"3Ñ"3°C¸±FÓ";Ó<ˆBÜØØ˜‘VØô÷)	÷ 	ò 	ús   ‘D3EÅEc                 ó  — | j                  «       5 }t        d«      }| j                  «       j                  |«      j	                  |j
                  t        |«      k(  «      j	                  |j                  t        |«      k(  «      j                  «       }t        || j                  «       «      \  }}|dz   }|j                  ||«      j                  «       }|st        d|› d|› �«      ‚t        d«      }	| j                  «       j                  |	«      j	                  |	j                  t        |d   «      k(  «      j                  «       }t        || j                  «       «      \  }}|j                  ||«       d d d «       y # 1 sw Y   y xY w)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}   sO  € à�W‰W‹Yð 	%˜#Ü˜kÓ*ˆIà×!Ñ!Ó#ß‘�yÓ!ß‘�y—~‘~¬¸Ó)=Ñ=Ó>ß‘�y×*Ñ*¬n¸VÓ.DÑDÓEß‘“ð ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø˜Ñ'ˆCØ—[‘[  fÓ-×6Ñ6Ó8ˆFÙÜ# i°¨vÐ5KÈFÈ8Ð$TÓUÐUô   Ó.ˆKà×!Ñ!Ó#ß‘�{Ó#ß‘�{×.Ñ.´.ÀÈÁÓ2KÑKÓLß‘“ð	 ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø�K‰K˜˜VÔ$÷3	%÷ 	%ñ 	%ús   ‘E'FÆF
ÚlimitÚoffsetc                 óÈ  — | j                  «       5 }t        d«      }| j                  «       j                  |«      j	                  |j
                  |j                  «      j                  |j                  t        |«      k(  «      j                  |«      j                  |€t        j                  n|«      j                  |j                  «      }t!        || j#                  «       «      \  }}|j%                  ||«      j'                  «       }	|	D �
cg c]3  }
t)        t+        t,        | j/                  |
d   «      «      |
d   |¬«      ‘Œ5 c}
cd d d «       S c c}
w # 1 sw Y   y xY w)NrL   r   rd   re   )rO   r   rP   rW   rV   rH   rI   rX   rS   r   rs   rr   ÚsysÚmaxsizeÚorderbyÚ
created_atr   rY   rZ   Úfetchallr!   r   r   rg   )r?   rr   rs   rJ   r\   rL   rh   r^   r_   Úrowsri   s              rA   Úlist_databaseszSqlSysDB.list_databasesš   s)  € ð �W‰W‹Yð 	˜#Ü˜kÓ*ˆIà×!Ñ!Ó#ß‘�yÓ!ß‘˜	Ÿ™ i§n¡nÓ5ß‘�y×*Ñ*¬n¸VÓ.DÑDÓEß‘˜“ß‘Ø#( =”C—K’K°eó÷ ‘˜×-Ñ-Ó.ð ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø—;‘;˜s FÓ+×4Ñ4Ó6ˆDð  öð ô ÜœD $×"3Ñ"3°C¸±FÓ";Ó<Ø˜Q™Ø!öò÷	ñ 	ùò÷	ð 	ús   ‘C>EÄ8EÅEÅEÅE!c                 ó¼  — | j                  «       5 }t        d«      }| j                  «       j                  |«      j	                  |j
                  «      j                  t        |«      «      }t        || j                  «       «      \  }}	 |j                  ||«       	 d d d «       y # | j                  «       $ r}t        d|› d�«      |‚d }~ww xY w# 1 sw Y   y xY w)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¹   sÐ   € à�W‰W‹Yð 	T˜#Ü˜IÓ&ˆGà×!Ñ!Ó#ß‘�g“ß‘˜Ÿ™Ó$ß‘œ tÓ,Ó-ð	 ô " -°×1FÑ1FÓ1HÓI‰KˆC�ðTØ—‘˜C Õ(÷	Tð 	Tøð ×/Ñ/Ó1ò TÜ+¨g°d°V¸?Ð,KÓLÐRSÐSûðTú÷	Tð 	Tús*   ‘A9CÂB'Â'CÂ:C
Ã
CÃCÃCc                 óÒ  — | j                  «       5 }t        d«      }| j                  «       j                  |«      j	                  |j
                  «      j                  |j
                  t        |«      k(  «      }t        || j                  «       «      \  }}|j                  ||«      j                  «       }|st        d|› d�«      ‚t        |¬«      cd d d «       S # 1 sw Y   y xY w)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É   s¿   € à�W‰W‹Yð 	%˜#Ü˜IÓ&ˆGà×!Ñ!Ó#ß‘�w“ß‘˜Ÿ
™
Ó#ß‘�w—z‘z¤^°DÓ%9Ñ9Ó:ð	 ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø—+‘+˜c 6Ó*×3Ñ3Ó5ˆCÙÜ# g¨d¨V°:Ð$>Ó?Ð?Ü˜tÔ$÷	%÷ 	%ò 	%ús   ‘CCÃC&r\   Úsegmentc                 óŽ  — t        t        |d   «      |d   |d   j                  t        |d   «      dœ«       t        d«      }| j	                  «       j                  |«      j                  |j                  |j                  |j                  |j                  «      j                  t        | j                  |d   «      «      t        |d   «      t        |d   j                  «      t        | j                  |d   «      «      «      }t        || j                  «       «      \  }}	 |j!                  ||«       t        d	«      }|d
   r'	 | j'                  |||j(                  |d   |d
   «       y y # | j#                  «       $ r}t%        d|d   › d�«      |‚d }~ww xY w# t*        $ r}t,        j/                  d|› �«       ‚ d }~ww xY w)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Û   s½  € Ü&ä! '¨$¡-Ó0Ø '¨¡Ø!(¨Ñ!1×!7Ñ!7Ü! '¨,Ñ"7Ó8ñ	ô	
ô ˜Ó$ˆà×ÑÓß‰T�(‹^ß‰WØ—‘Ø—‘Ø—‘Ø×#Ñ#ó	÷ ‰VÜ˜tŸ™¨w°t©}Ó=Ó>Ü˜w v™Ó/Ü˜w wÑ/×5Ñ5Ó6Ü˜tŸ™¨w°|Ñ/DÓEÓFó	ð 	ô  ˜n¨d×.CÑ.CÓ.EÓF‰ˆˆVð	Ø�K‰K˜˜VÔ$ô Ð-Ó.ˆ
Ø�:Òð
Ø×%Ñ%ØØØ×)Ñ)Ø˜D‘MØ˜JÑ'õð øð ×+Ñ+Ó-ò 	Ü'Ø˜7 4™=˜/¨Ð9óàðûð	ûô  ò Ü—‘ÐAÀ!ÀÐEÔFØûðús0   Ä%E/ Å%F Å/FÆFÆFÆ	GÆ&F?Æ?Gc                 ór   — | j                  «       5 }| j                  ||«       d d d «       y # 1 sw Y   y xY wr:   )rO   r™   )r?   r„   r\   s      rA   Úcreate_segmentzSqlSysDB.create_segment  s4   € ð �W‰W‹Yð 	6˜#Ø×'Ñ'¨¨WÔ5÷	6÷ 	6ñ 	6ús   ‘-­6zSqlSysDB.create_collectionFÚschemaÚconfigurationr�   r�   Ú	dimensionÚget_or_createÚdatabasec                 óÆ  — |€|st        d«      ‚t        t        |«      |dœ«       | j                  ||	|
¬«      }|r9|r(|d   }| j                  |j                  |	|
¬«      d   dfS t        d|› d�«      ‚t        ||t        |t        t        |«      «      d |||	|
d¬	«	      }| j                  «       5 }t        d
«      }t        d«      }| j                  «       j                  |«      j                  |j                  |j                  |j                   |j"                  |j$                  «      j'                  t)        | j+                  |d   «      «      t)        |d   «      t)        t-        |t        t        |«      «      «      t)        |d   «      | j                  «       j/                  |j                  «      j1                  |«      j3                  |j                  t)        |
«      k(  «      j3                  |j4                  t)        |	«      k(  «      «      }t7        || j9                  «       «      \  }}	 |j;                  ||«       t        d«      }|d   r,| j?                  |||j@                  |j                  |d   «       |D ]  }| jC                  ||«       Œ 	 d d d «       |dfS # | j=                  «       $ r}t        d|d   › d�«      |‚d }~ww xY w# 1 sw Y   |dfS xY w)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ä&ä!$ R£Ø#'ñô	
ð ×'Ñ'¨T¸&È8Ð'ÓTˆÙÙØ% a™[�
à×(Ñ(Ø%Ÿ=™=°À(ð )ó àñð ð	ð ô ,¨k¸$¸¸Ð,OÓPÐPäØØÜFØœtÔ$6¸ÓAó ð #ØØØØØô
ˆ
ð �W‰W‹Yð 1	:˜#Ü Ó.ˆKÜ˜kÓ*ˆIð ×!Ñ!Ó#ß‘�kÓ"ß‘Ø—N‘NØ×$Ñ$Ø×/Ñ/Ø×)Ñ)Ø×+Ñ+ó÷ ‘Ü" 4§?¡?°:¸dÑ3CÓ#DÓEÜ" :¨fÑ#5Ó6Ü"ÜCØ)¬4Ô0BÀHÓ+Móóô
 # :¨kÑ#:Ó;à×%Ñ%Ó'ß‘V˜IŸL™LÓ)ß‘U˜9Ó%ß‘U˜9Ÿ>™>¬^¸HÓ-EÑEÓFß‘U˜9×.Ñ.´.ÀÓ2HÑHÓIóð ô6 "Ð"3°T×5JÑ5JÓ5LÓM‰KˆC�ðØ—‘˜C Ô(ô
 Ð4Ó5ˆJØ˜*Ò%Ø×%Ñ%ØØØ×,Ñ,Ø—M‘MØ˜zÑ*ôð $ò :�Ø×+Ñ+¨C°Õ9ñ:÷a1	:ðf ˜4ÐÐøð# ×/Ñ/Ó1ò Ü+Ø! *¨TÑ"2Ð!3°?ÐCóàðûðú÷E1	:ðf ˜4ÐÐús2   Â2E?KÈ2J&ÉAKÊ&KÊ9KËKËKËK zSqlSysDB.get_segmentsrˆ   r†   r‡   c                 ó2  — 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                  |j                  «	      j!                  |«      j#                  |j                  |j$                  k(  «      j'                  |j                  «      }|r6|j)                  |j                  t+        | j-                  |«      «      k(  «      }|r'|j)                  |j                  t+        |«      k(  «      }|r1|j)                  |j                  t+        |j                  «      k(  «      }|r6|j)                  |j                  t+        | j-                  |«      «      k(  «      }| j/                  «       5 }t1        || j3                  «       «      \  }	}
|j5                  |	|
«      j7                  «       }t9        |d„ «      }g }|D ]«  \  }}| j;                  t        |«      «      }t=        |«      }t        |d   d   «      }t?        t        |d   d   «      «      }| j;                  |d   d	   «      }| jA                  |«      }|jC                  tE        tG        tH        |«      ||||i ¬
«      «       Œ­ |cd d d «       S # 1 sw Y   y xY w)NÚ r‰   r�   r�   c                 ó(   — t        t        | d   «      S ©Nr   ©r   Úobject©Úrs    rA   ú<lambda>z'SqlSysDB.get_segments.<locals>.<lambda>°  s   € ´´f¸aÀ¹dÓ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Š   rw   rX   r   rU   rO   r   rY   rZ   ry   r   rg   Úlistr&   Ú_metadata_from_rowsÚappendr#   r   r   )r?   rˆ   rH   r†   r‡   Ú
segments_tr˜   rh   r\   r^   r_   rz   Ú
by_segmentr�   rŠ   Úsegment_rowsr�   s                    rA   Úget_segmentszSqlSysDB.get_segments}  sž  € ô 	'ä! "›gÙ(,¡°"Ù05 §¢¸2Ü! *›oñ	ô	
ô ˜:Ó&ˆ
ÜÐ-Ó.ˆ
à×ÑÓß‰U�:Óß‰VØ—‘Ø—‘Ø× Ñ Ø×%Ñ%Ø—‘Ø×$Ñ$Ø×$Ñ$Ø×&Ñ&Ø×%Ñ%ó
÷ ‰Y�zÓ"ß‰R�
—‘ ×!6Ñ!6Ñ6Ó7ß‰W�Z—]‘]Ó#ð! 	
ñ$ Ø—‘˜
Ÿ™¬¸¿¹ÈÓ8KÓ)LÑLÓMˆAÙØ—‘˜
Ÿ™¬>¸$Ó+?Ñ?Ó@ˆAÙØ—‘˜
×(Ñ(¬N¸5¿;¹;Ó,GÑGÓHˆAÙØ—‘Ø×%Ñ%¬¸¿¹È
Ó8SÓ)TÑTóˆAð �W‰W‹Yð 	˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø—;‘;˜s FÓ+×4Ñ4Ó6ˆDÜ  Ñ'CÓDˆJØˆHØ,6ò Ñ(�
˜LØ×&Ñ&¤s¨:£Ó7�Ü˜LÓ)�Ü˜4 ™7 1™:“�Ü$¤S¨¨a©°©£_Ó5�Ø!×.Ñ.¨t°A©w°q©zÓ:�
Ø×3Ñ3°DÓ9�Ø—‘ÜÜ¤ b›>Ø!Ø#Ø#-Ø!)Ø#%ôõ	ðð$ ÷/	÷ 	ò 	ús   ÈC>LÌL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                  |j                   «      j#                  |«      j%                  |j                  |j&                  k(  «      j#                  |	«      j%                  |j(                  |	j                  k(  «      j+                  |j                  «      }
|r6|
j-                  |j                  t/        | j1                  |«      «      k(  «      }
|r'|
j-                  |j                  t/        |«      k(  «      }
|€­|r«|r©t        d«      }	|
j-                  |j(                  | j	                  «       j                  |	j                  «      j                  |	«      j-                  |	j                  t/        |«      k(  «      j-                  |	j                  t/        |«      k(  «      k(  «      }
| j3                  «       5 }t5        |
| j7                  «       «      \  }}|j9                  ||«      j;                  «       }t=        |d„ «      }g }|D ]ë  \  }}| j?                  t        |«      «      }tA        |«      }t        |d	   d
   «      }| jC                  |«      }|d	   d   rtE        |d	   d   «      nd}|d	   d   �tG        |d	   d   «      }n| jI                  ||«      }|jK                  tM        tO        tP        |«      |tS        |«      d||t        |d	   d   «      t        |d	   d   «      d	¬«	      «       Œí |�|€d	}||||z    }n||d }|cddd«       S # 1 sw Y   yxY w)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                 ó(   — t        t        | d   «      S r´   rµ   r·   s    rA   r¹   z*SqlSysDB.get_collections.<locals>.<lambda>  s   € ´D¼ÀÀ1ÁÓ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   rw   rX   r   rU   rO   r   rY   rZ   ry   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_   rz   Úby_collectionrm   r£   Úcollection_rowsr�   rž   r�   s                         rA   r¬   zSqlSysDB.get_collectionsÆ  s·  € ð Ð  °8Ð3CÜØóð ô 	'ä!$ R£Ù+/¡4°Rñô	
ô ˜mÓ,ˆÜÐ0Ó1ˆ
Ü˜KÓ(ˆà×ÑÓß‰U�=Ó!ß‰VØ× Ñ Ø×"Ñ"Ø×-Ñ-Ø×'Ñ'Ø× Ñ Ø×%Ñ%Ø—‘Ø×$Ñ$Ø×$Ñ$Ø×&Ñ&Ø×%Ñ%ó÷ ‰Y�zÓ"ß‰R�× Ñ  J×$<Ñ$<Ñ<Ó=ß‰Y�{Ó#ß‰R�×)Ñ)¨[¯^©^Ñ;Ó<ß‰W�]×%Ñ%Ó&ð) 	
ñ, Ø—‘˜×(Ñ(¬N¸4¿?¹?È2Ó;NÓ,OÑOÓPˆAÙØ—‘˜×*Ñ*¬n¸TÓ.BÑBÓCˆAð ˆ:™&¡XÜ Ó,ˆKØ—‘Ø×)Ñ)Ø×$Ñ$Ó&ß‘˜Ÿ™Ó'ß‘�{Ó#ß‘�{×'Ñ'¬>¸(Ó+CÑCÓDß‘�{×,Ñ,´¸vÓ0FÑFÓGñHóˆAð �W‰W‹Yð 0	˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø—;‘;˜s FÓ+×4Ñ4Ó6ˆDÜ# DÑ*FÓGˆMØˆKØ2?ò !Ñ.�˜Ø×&Ñ&¤s¨=Ó'9Ó:�Ü˜OÓ,�Ü˜4 ™7 1™:“�Ø×3Ñ3°DÓ9�Ø/3°A©w°qªzœC  Q¡¨¡
œO¸t�	Ø˜‘7˜1‘:Ð)Ü$OØ˜Q™ ™
ó%‘Mð %)×$JÑ$JØ% xó%�Mð ×"Ñ"ÜÜ¤ b›>Ø!Ü+KØ)ó,ð +/Ø!)Ø"+Ü" 4¨¡7¨1¡:›Ü!$ T¨!¡W¨Q¡Z£Ø !ôõð'!ðH Ð Ø�>Ø�FØ)¨&°6¸E±>ÐB‘à)¨&¨'Ð2�à÷a0	÷ 0	ò 0	ús   ÊEO3Ï3O<r£   c                 ó    — | j                  |¬«      }t        |«      dk(  rt        d|› d�«      ‚t        |d   | j	                  |¬«      ¬«      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=  s^   € ð ×*Ñ*¨mÐ*Ó<ˆÜˆ{Ó˜qÒ Ü +¨m¨_Ð<LÐ MÓNÐNÜ$Ø" 1‘~Ø×&Ñ&°-Ð&Ó@ô
ð 	
rB   zSqlSysDB.delete_segmentc                 óú  — t        dt        |«      i«       t        d«      }| j                  «       j	                  |«      j                  |j                  t        | j                  |«      «      k(  «      j                  «       }| j                  «       5 }t        || j                  «       «      \  }}|dz   }|j                  ||«      j                  «       }|st        d|› d�«      ‚	 ddd«       y# 1 sw Y   yxY w)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  sâ   € ô 	'àœc "›gðô	
ô
 �*Óˆà×ÑÓß‰U�1‹Xß‰U�1—4‘4œ>¨$¯/©/¸"Ó*=Ó>Ñ>Ó?ß‰V‹Xð	 	
ð �W‰W‹Yð 	?˜#ä! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø˜Ñ'ˆCØ—[‘[  fÓ-×6Ñ6Ó8ˆFÙÜ# h¨r¨d°*Ð$=Ó>Ð>ð ÷	?÷ 	?ñ 	?ús   ÂAC1Ã1C:c                 ó:  — t        d«      }| j                  «       j                  |«      j                  |j                  t        | j                  |«      «      k(  «      j                  «       }t        || j                  «       «      \  }}|j                  ||«       y )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  sz   € Ü˜:Ó&ˆ
à×ÑÓß‰U�:Óß‰U�:×(Ñ(¬N¸4¿?¹?È:Ó;VÓ,WÑWÓXß‰V‹Xð	 	
ô ˜a ×!6Ñ!6Ó!8Ó9‰ˆˆVØ�‰�C˜Õ rB   zSqlSysDB.delete_collectionc           	      ó¦  — t        dt        |«      i«       t        d«      }t        d«      }| j                  «       j	                  |«      j                  |j                  t        | j                  |«      «      k(  «      j                  |j                  | j                  «       j                  |j                  «      j	                  |«      j                  |j                  t        |«      k(  «      j                  |j                  t        |«      k(  «      k(  «      j                  «       }| j                  «       5 }t        || j!                  «       «      \  }}	|dz   }|j#                  ||	«      j%                  «       }
|
st'        d|› d�«      ‚| j)                  ||«       ddd«       | j*                  j-                  
d   «       y# 1 sw Y   Œ(xY w)	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ß‰U�1—4‘4œ>¨$¯/©/¸"Ó*=Ó>Ñ>Ó?ß‰UØ—‘Ø×$Ñ$Ó&ß‘˜Ÿ™Ó'ß‘�{Ó#ß‘�{×'Ñ'¬>¸(Ó+CÑCÓDß‘�{×,Ñ,´¸vÓ0FÑFÓGñHó÷ ‰V‹Xð 	
ð �W‰W‹Yð 	9˜#ä! ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø˜Ñ'ˆCØ—[‘[  fÓ-×6Ñ6Ó8ˆFÙÜ# k°"°°ZÐ$@ÓAÐAà×/Ñ/°°RÔ8÷	9ð 	�‰×!Ñ! &¨¡)Õ,÷	9ð 	9ús   Ä:A&GÇGzSqlSysDB.update_segmentc                 ó  — t        t        |«      t        |«      dœ«       t        d«      }t        d«      }| j                  «       j	                  |«      j                  |j                  t        | j                  |«      «      k(  «      j                  |j                  t        | j                  |«      «      «      }| j                  «       5 }t        || j                  «       «      \  }}	|r|j                  ||	«       |€‘| j                  «       j                  |«      j                  |j                   t        | j                  |«      «      k(  «      j#                  «       }t        || j                  «       «      \  }}	|j                  ||	«       nd|t%        «       k7  rWt'        t(        |«      }t'        t(        |«      }| j+                  |||j                   ||t        |j-                  «       «      «       d d d «       y # 1 sw Y   y xY w)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™  s¨  € ô 	'ä! "›gÜ! *›oñô	
ô ˜:Ó&ˆ
ÜÐ-Ó.ˆ
ð ×ÑÓß‰V�JÓß‰U�:—=‘=¤N°4·?±?À2Ó3FÓ$GÑGÓHß‰S�×&Ñ&¬°t·±ÀzÓ7RÓ(SÓTð	 	
ð �W‰W‹Yð 	˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�ÙØ—‘˜C Ô(àÐà×%Ñ%Ó'ß‘U˜:Ó&ß‘U˜:×0Ñ0´NÀ4Ç?Á?ÐSUÓCVÓ4WÑWÓXß‘V“Xð	 ô & a¨×)>Ñ)>Ó)@ÓA‘��VØ—‘˜C Õ(Øœ[›]Ò*Ü¤°Ó9�Ü¤°Ó9�Ø×%Ñ%ØØØ×)Ñ)ØØÜ˜Ÿ™›Ó(ô÷#	÷ 	ñ 	ús   ÃD)G>Ç>HzSqlSysDB.update_collectionc                 óf  — t        dt        |«      i«       t        d«      }t        d«      }| j                  «       j	                  |«      j                  |j                  t        | j                  |«      «      k(  «      }|t        «       k(  s%|j                  |j                  t        |«      «      }|t        «       k(  s%|j                  |j                  t        |«      «      }| j                  «       5 }	t        || j                  «       «      \  }
}|
r6|
dz   }
|	j!                  |
|«      }|j#                  «       st%        d|› d�«      ‚|t        «       k7  rÙ| j                  «       j'                  |«      j                  |j(                  t        | j                  |«      «      k(  «      j+                  «       }t        || j                  «       «      \  }
}|	j!                  |
|«       |�Gt-        t.        |«      }| j1                  |	||j(                  ||t        |j3                  «       «      «       |t        «       k7  r$t-        t4        |«      }| j7                  |	||«       n=|t        «       k7  r0t-        t.        |«      }|�t9        |«      }| j7                  |	||«       d d d «       y # 1 sw Y   y xY w)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ˆ
ð ×ÑÓß‰V�MÓ"ß‰U�=×#Ñ#¤~°d·o±oÀbÓ6IÓ'JÑJÓKð 	
ð ”{“}Ò$Ø—‘�m×(Ñ(¬.¸Ó*>Ó?ˆAàœK›MÒ)Ø—‘�m×-Ñ-¬~¸iÓ/HÓIˆAà�W‰W‹Yð 0	T˜#Ü! ! T×%:Ñ%:Ó%<Ó=‰KˆC�ÙØ˜OÑ+�ØŸ™ S¨&Ó1�Ø—‘Ô(Ü'¨+°b°T¸Ð(DÓEÐEð œ;›=Ò(à×%Ñ%Ó'ß‘U˜:Ó&ß‘UØ"×0Ñ0´NÀ4Ç?Á?ÐSUÓCVÓ4WÑWó÷ ‘V“Xð ô & a¨×)>Ñ)>Ó)@ÓA‘��VØ—‘˜C Ô(ØÐ'Ü#¤N°HÓ=�HØ×)Ñ)ØØ"Ø"×0Ñ0ØØ Ü˜HŸM™M›OÓ,ôð ¤£Ò-Ü'+Ü1°=ó(Ð$ð ×,Ñ,¨SÐ2FÈÕKàœ{›}Ò,Ü#¤N°HÓ=�HØÐ+äWØ (óð -ð
 ×4Ñ4°SÐ:NÐPRÔS÷a0	T÷ 0	Tñ 0	Tús   Ã4F*J'Ê'J0rç   c                 ó"  — t        d«      }| j                  «       j                  |«      j                  |j                  «      j                  |j                  t        | j                  |«      «      k(  «      }t        || j                  «       «      \  }}|j                  ||«      j                  «       }|st        d|› d�«      ‚|d   }	t        |	«      }
t        |
|«      }| j                  «       j!                  |«      j#                  |j                  t        t%        |«      «      «      j                  |j                  t        | j                  |«      «      k(  «      }t        || j                  «       «      \  }}|j                  ||«       y )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  sV  € ô ˜mÓ,ˆà×ÑÓß‰U�=Ó!ß‰V�M×1Ñ1Ó2ß‰U�=×#Ñ#¤~°d·o±oÀbÓ6IÓ'JÑJÓKð	 	
ô ˜a ×!6Ñ!6Ó!8Ó9‰ˆˆVØ�k‰k˜#˜vÓ&×/Ñ/Ó1ˆÙÜ +¨b¨T°Ð <Ó=Ð=Ø˜a™&ˆÜEÀoÓVˆÜ7ØÐ1ó
ˆ
ð ×ÑÓß‰V�MÓ"ß‰SØ×-Ñ-ÜÔCÀJÓOÓPó÷ ‰U�=×#Ñ#¤~°d·o±oÀbÓ6IÓ'JÑJÓKð 	
ô ˜a ×!6Ñ!6Ó!8Ó9‰ˆˆVØ�‰�C˜Õ rB   zSqlSysDB._metadata_from_rowsrz   .c                 ó   — t        dt        |«      i«       i }|D ]l  }t        |d   «      }|d   �t        |d   «      ||<   Œ(|d   �t        |d   «      ||<   Œ?|d   �t	        |d   «      ||<   ŒV|d   €Œ\t        |d   «      ||<   Œn |xs 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?   rz   r�   ri   r½   s        rA   rÅ   zSqlSysDB._metadata_from_rows<  s¶   € ô 	'àœC ›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                 óx  — t        dt        |«      i«       |rÅ| j                  «       j                  |«      j	                  |t        | j                  |«      «      k(  «      j	                  |j                  j                  |D �cg c]  }t        |«      ‘Œ c}«      «      j                  «       }t        || j                  «       «      \  }	}
|j                  |	|
«       | j                  «       j                  |«      j                  ||j                  |j                  |j                   |j"                  |j$                  «      }| j                  |«      }|j'                  «       D �]  \  }}t)        |t*        «      r;|j-                  t        |«      t        |«      d d d t        t/        |«      «      «      }ŒRt)        |t0        «      r2|j-                  t        |«      t        |«      t        |«      d d d «      }Œ”t)        |t.        «      r2|j-                  t        |«      t        |«      d t        |«      d d «      }ŒÖt)        |t2        «      r3|j-                  t        |«      t        |«      d d t        |«      d «      }�Œ|��Œ�Œ t        || j                  «       «      \  }	}
|	r|j                  |	|
«       y y c c}w )NÚnum_keys)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÷   Úkrh   r^   r_   Úsql_idÚvs                rA   r“   zSqlSysDB._insert_metadataT  s[  € ô 	'àœC ›Mðô	
ñ
 à×!Ñ!Ó#ß‘�u“ß‘�v¤°·±ÀÓ0CÓ!DÑDÓEß‘�u—y‘y—~‘~À*Ö&M¸Q¤~°aÕ'8Ò&MÓNÓOß‘“ð ô " ! T×%:Ñ%:Ó%<Ó=‰KˆC�Ø�K‰K˜˜VÔ$ð ×ÑÓß‰T�%‹[ß‰WØØ—	‘	Ø—‘Ø—‘Ø×!Ñ!Ø× Ñ óð 	
ð —‘ Ó$ˆØ—N‘NÓ$ó (	‰DˆAˆqô ˜!œTÔ"Ø—H‘HÜ" 6Ó*Ü" 1Ó%ØØØÜ"¤3 q£6Ó*ó‘ô ˜AœsÔ#Ø—H‘HÜ" 6Ó*Ü" 1Ó%Ü" 1Ó%ØØØó‘ô ˜AœsÔ#Ø—H‘HÜ" 6Ó*Ü" 1Ó%ØÜ" 1Ó%ØØó‘ô ˜AœuÔ%Ø—H‘HÜ" 6Ó*Ü" 1Ó%ØØÜ" 1Ó%Øó’ð ’ÙðQ(	ôT ˜a ×!6Ñ!6Ó!8Ó9‰ˆˆVÙØ�K‰K˜˜VÕ$ð ùò} 'Ns   ÂJ7c                 ó   — t        d«      }t        «       }t        |t        t        |«      «      }| j                  «       j                  |«      j                  |j                  t        |«      «      j                  |j                  t        |«      k(  «      }t        || j                  «       «      \  }}| j                  «       5 }	|	j                  ||«       ddd«       t!        |«      S # 1 sw Y   t!        |«      S xY w)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¬  sà   € ô ˜mÓ,ˆä#@Ó#BÐ ä!LØ$¤dÔ+=¸xÓ&Hó"
Ðð ×ÑÓß‰V�MÓ"ß‰SØ×-Ñ-ÜÐ5Ó6ó÷ ‰U�=×#Ñ#¤~°mÓ'DÑDÓEð 	
ô ˜a ×!6Ñ!6Ó!8Ó9‰ˆˆVØ�W‰W‹Yð 	%˜#Ø�K‰K˜˜VÔ$÷	%ä:Ð;QÓRÐR÷	%ä:Ð;QÓRÐRús   ÃC*Ã*C=c                 ó   — t         ‚r:   )ÚNotImplementedError)r?   rH   s     rA   Úget_collection_sizezSqlSysDB.get_collection_sizeÉ  s   € ä!Ð!rB   c                 óP   — |�|dk(  rdn|}t        | j                  ||¬«      «      S )zFGets the number of collections for the (tenant, database) combination.r²   )rJ   r    )rÖ   r¬   )r?   rJ   r    Úrequest_databases       rA   Úcount_collectionszSqlSysDB.count_collectionsÍ  s3   € ð '/Ð&6¸(Àbº.¡ÈhÐÜ�4×'Ñ'¨vÐ@PÐ'ÓQÓ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ñ Ð+Ð-E×-IÑ-IÓJØô9ó ó Kð9ð à1?ñØðØ!ðØ+.ðà	òó ðð8 Ø4Bñ  ð ¨cð Àxò ó ðð6 Ø7Eñ % Cð %°ð %È$ò %ó ð%ð8 ð  $Ø $Ø$ñ	à˜‰}ðð ˜‘ðð ð	ð
 
�(Ñ	òó ðð< ðT #ð T¨$ò Tó ðTð ð%˜sð % vò %ó ð%ð"0¨&ð 0¸7ð 0Àtó 0ñf Ð+Ð-E×-IÑ-IÓJØð6 gð 6°$ò 6ó ó Kð6ñ Ð.Ð0H×0LÑ0LÓMØð (,Ø#'Ø#Ø$Ø(ñe àðe ð ðe ð ˜Ñ ð	e ð
 5ðe ð ˜7Ñ#ðe ð ˜8Ñ$ðe ð ˜C‘=ðe ð ðe ð ðe ð ðe ð 
ˆz˜4ÐÑ	 òe ó ó Nðe ñN Ð)Ð+C×+GÑ+GÓHØð "Ø"Ø(,ñEàðEð �T‰NðEð �s‰mð	Eð
 ˜Ñ%ðEð 
�'Ñ	òEó ó IðEñN Ð,Ð.F×.JÑ.JÓKØð "Ø"Ø$Ø(Ø#Ø $ñsà�T‰Nðsð �s‰mðsð ð	sð
 ðsð ˜‰}ðsð ˜‘ðsð 
�*Ñ	òsó ó Lðsðj ð	
Ø!ð	
à	ò	
ó ð	
ñ Ð+Ð-E×-IÑ-IÓJØð?¨ð ?°4ð ?¸Dò ?ó ó Kð?ð0	!°&ð 	!Àdð 	!Ètó 	!ñ Ð.Ð0H×0LÑ0LÓMØð %Ø(ñ	'-àð'-ð ð'-ð ð	'-ð
 
ò'-ó ó Nð'-ñR Ð+Ð-E×-IÑ-IÓJØñ
 @K»}ñ	.àð.ð ð.ð # 8¨NÑ#;Ñ<ð	.ð
 
ò.ó ó Kð.ñ` Ð.Ð0H×0LÑ0LÓMØñ '2£mÙ5@³]Ù?J»}ñ ‹MñNTàðNTð ˜sÑ#ðNTð $ H¨S¡MÑ2ð	NTð
 # 8¨NÑ#;Ñ<ðNTð (ØÐ2Ñ3ñ
ðNTð 
òNTó ó NðNTð`!Øð!Ø1Nð!ØTXð!à	ó!ñ> Ð0Ð2J×2NÑ2NÓOð Ø˜U 3¨ 8™_Ñ-ð à	�(Ñ	ò ó Pð ñ. Ð-Ð/G×/KÑ/KÓLð *.ñU%àðU%ð ðU%ð ð	U%ð
 ðU%ð !ðU%ð ˜S ™XÑ&ðU%ð 
òU%ó MðU%ðnSØ ðSØ,4°XÑ,>ðSà	 óSð: ð" dð "¨sò "ó ð"ð ð %Ø"&ñSàðSð ˜3‘-ðSð 
ò	Só ôSrB   r6   )FÚloggingru   Ú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   © rB   rA   ú<module>r      s�   ðÛ Û 
ß I× IÓ IÝ Ý ß  Ý å %ß DÑ Dß CÓ CÝ $÷÷ó õ %÷÷ ÷ ÷÷ ÷ ñ ð 
ˆ×	Ñ	˜8Ó	$€ôeSˆu�eõ eSrB   