SQLite format 3 @ ( . .zp � ��yZ
�
� T !���K�t��q<F�T�V � � " �!99�Mtableembedding_fulltext_idxembedding_fulltext_idxCREATE TABLE 'embedding_fulltext_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID� ;;�!tableembedding_fulltext_dataembedding_fulltext_dataCREATE TABLE 'embedding_fulltext_data'(id INTEGER PRIMARY KEY, block BLOB)t11�tableembedding_fulltextembedding_fulltextCREATE VIRTUAL TABLE embedding_fulltext USING fts5(id, string_value)3G! indexsqlite_autoindex_max_seq_id_1max_seq_idv!!�7tablemax_seq_idmax_seq_idCREATE TABLE max_seq_id (
segment_id TEXT PRIMARY KEY,
seq_id BLOB NOT NULL
)CW1 indexsqlite_autoindex_embedding_metadata_1embedding_metadata�s11�tableembedding_metadataembedding_metadataCREATE TABLE embedding_metadata (
id INTEGER REFERENCES embeddings(id),
key TEXT NOT NULL,
string_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (id, key)
)3G! indexsqlite_autoindex_embeddings_1embeddings�!!�qtableembeddingsembeddings
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY,
segment_id TEXT NOT NULL,
embedding_id TEXT NOT NULL,
seq_id BLOB NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (segment_id, embedding_id)
)/C indexsqlite_autoindex_segments_1segments�9�EtablesegmentssegmentsCREATE TABLE "segments" (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
collection TEXT REFERENCES collection(id) NOT NULL
)=Q+ indexsqlite_autoindex_maintenance_log_1maintenance_log�++�atablemaintenance_logmaintenance_logCREATE TABLE maintenance_log (
id INT PRIMARY KEY,
timestamp INT NOT NULL,
operation TEXT NOT NULL
)5I# indexsqlite_autoindex_collections_2collections5I# indexsqlite_autoindex_collections_1collections�2##�+tablecollectionscollectionsCREATE TABLE "collections" (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per database
dimension INTEGER,
database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE, config_json_str TEXT,
UNIQUE (name, database_id)
)1E indexsqlite_autoindex_databases_2databases1E indexsqlite_autoindex_databases_1databases�5�9tabledatabasesdatabasesCREATE TABLE databases (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per tenant
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
)-A indexsqlite_autoindex_tenants_1tenants\
�tabletenantstenantsCREATE TABLE tenants (
id TEXT PRIMARY KEY,
UNIQUE (id)
)?S- indexsqlite_autoindex_segment_metadata_1segment_metadata
�--�ktablesegment_metadatasegment_metadataCREATE TABLE segment_metadata (
segment_id TEXT REFERENCES segments(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL, bool_value INTEGER,
PRIMARY KEY (segment_id, key)
)EY3 indexsqlite_autoindex_collection_metadata_1collection_metadata �-33�tablecollection_metadatacollection_metadataCREATE TABLE collection_metadata (
collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL, bool_value INTEGER,
PRIMARY KEY (collection_id, key)
)�&''�tableacquire_writeacquire_writeCREATE TABLE acquire_write (
id INTEGER PRIMARY KEY,
lock_status INTEGER NOT NULL
)3G! indexsqlite_autoindex_migrations_1migrations�/!!�)tablemigrationsmigrationsCREATE TABLE migrations (
dir TEXT NOT NULL,
version INTEGER NOT NULL,
filename TEXT NOT NULL,
sql TEXT NOT NULL,
hash TEXT NOT NULL,
PRIMARY KEY (dir, version)
� #���W l � e�Msysdb 00009-segment-collection-not-null.sqlite.sql-- This makes segments.collection non-nullable.
CREATE TABLE segments_temp (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
collection TEXT REFERENCES collection(id) NOT NULL
);
INSERT INTO segments_temp SELECT * FROM segments;
DROP TABLE segments;
ALTER TABLE segments_temp RENAME TO segments;
054355aef9e63702bf54ea29e61563f1�EM�}Msysdb00008-maintenance-log.sqlite.sql-- Records when database maintenance operations are performed.
-- At time of creation, this table is only used to record vacuum operations.
CREATE TABLE maintenance_log (
id INT PRIMARY KEY,
timestamp INT NOT NULL,
operation TEXT NOT NULL
);
0a0e7e93111a01789addf64961c6127c�9Q�aMsysdb00007-collection-config.sqlite.sql-- Stores collection configuration dictionaries.
ALTER TABLE collections ADD COLUMN config_json_str TEXT;
1c7e63bba346a42a18b6ab7f1c989bed�ee�%Msysdb00006-collection-segment-metadata.sqlite.sql-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE collection_metadata ADD COLUMN bool_value INTEGER;
ALTER TABLE segment_metadata ADD COLUMN bool_value INTEGER;
4eea7468935bf25d4604a0fed2366116�bG�=Msysdb00005-remove-topic.sqlite.sql-- Remove the topic column from the Collections and Segments tables
ALTER TABLE collections DROP COLUMN topic;
ALTER TABLE segments DROP COLUMN topic;
b1367c826b8fba5f96f27befdc1d42d2�Q�%Msysdb00004-tenants-databases.sqlite.sqlCREATE TABLE IF NOT EXISTS tenants (
id TEXT PRIMARY KEY,
UNIQUE (id)
);
CREATE TABLE IF NOT EXISTS databases (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per tenant
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
);
CREATE TABLE IF NOT EXISTS collections_tmp (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per database
topic TEXT NOT NULL,
dimension INTEGER,
database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE,
UNIQUE (name, database_id)
);
-- Create default tenant and database
INSERT OR REPLACE INTO tenants (id) VALUES ('default_tenant'); -- The default tenant id is 'default_tenant' others are UUIDs
INSERT OR REPLACE INTO databases (id, name, tenant_id) VALUES ('00000000-0000-0000-0000-000000000000', 'default_database', 'default_tenant');
INSERT OR REPLACE INTO collections_tmp (id, name, topic, dimension, database_id)
SELECT id, name, topic, dimension, '00000000-0000-0000-0000-000000000000' FROM collections;
DROP TABLE collections;
ALTER TABLE collections_tmp RENAME TO collections;
048867ce8fcdefe4023c7110e4433591�WyMsysdb00003-collection-dimension.sqlite.sqlALTER TABLE collections ADD COLUMN dimension INTEGER;
42d22d0574d31d419c2a0e7f625c93aa�G?�Msysdb00002-segments.sqlite.sqlCREATE TABLE segments (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
topic TEXT,
collection TEXT REFERENCES collection(id)
);
CREATE TABLE segment_metadata (
segment_id TEXT REFERENCES segments(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (segment_id, key)
);
2913cb6a503055a95f625448037e8912�+ E�SMsysdb00001-collections.sqlite.sqlCREATE TABLE collections (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
topic TEXT NOT NULL,
UNIQUE (name)
);
CREATE TABLE collection_metadata (
collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (collection_id, key)
);
38352d725ad1c16074fac420b22 "
) @)�}pcV��������� -embeddings_queue- embeddings_queuemetadbmetadb
metadbmetadb metadb
sysdb sysdbsysdbsysdbsysdbsysdbsysdbsysdb sysdb
� ��
� � )default_tenant
� � ) default_tenant
� � FU-)00000000-0000-0000-0000-000000000000default_databasedefault_tenant
� � 'U 00000000-0000-0000-0000-000000000000
� � ")- default_tenantdefault_database
� � ! ! O �#{"automatically_purge":true,"_type":"EmbeddingsQueueConfigurationInternal"}
� ��
��yZ
�
� T !���K�t��q<F�T�V � � " �!99�Mtableembedding_fulltext_idxembedding_fulltext_idxCREATE TABLE 'embe �!99�Mtableembedding_fulltext_idxembedding_fulltext_idxCREATE TABLE 'embedding_fulltext_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID� ;;�!tableembedding_fulltext_dataembedding_fulltext_dataCREATE TABLE 'embedding_fulltext_data'(id INTEGER PRIMARY KEY, block BLOB)t11�tableembedding_fulltextembedding_fulltextCREATE VIRTUAL TABLE embedding_fulltext USING fts5(id, string_value)3G! indexsqlite_autoindex_max_seq_id_1max_seq_idv!!�7tablemax_seq_idmax_seq_idCREATE TABLE max_seq_id (
segment_id TEXT PRIMARY KEY,
seq_id BLOB NOT NULL
)CW1 indexsqlite_autoindex_embedding_metadata_1embedding_metadata�s11�tableembedding_metadataembedding_metadataCREATE TABLE embedding_metadata (
id INTEGER REFERENCES embeddings(id),
key TEXT NOT NULL,
string_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (id, key)
)3G! indexsqlite_autoindex_embeddings_1embeddings�!!�qtableembeddingsembeddings
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY,
segment_id TEXT NOT NULL,
embedding_id TEXT NOT NULL,
seq_id BLOB NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (segment_id, embedding_id)
)/C indexsqlite_autoindex_segments_1segments�9�EtablesegmentssegmentsCREATE TABLE "segments" (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
collection TEXT REFERENCES collection(id) NOT NULL
)=Q+ indexsqlite_autoindex_maintenance_log_1maintenance_log�++�atablemaintenance_logmaintenance_logCREATE TABLE maintenance_log (
id INT PRIMARY KEY,
timestamp INT NOT NULL,
operation TEXT NOT NULL
)5I# indexsqlite_autoindex_collections_2collections5I# indexsqlite_autoindex_collections_1collections�2##�+tablecollectionscollectionsCREATE TABLE "collections" (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per database
dimension INTEGER,
database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE, config_json_str TEXT,
UNIQUE (name, database_id)
)1E indexsqlite_autoindex_databases_2databases1E indexsqlite_autoindex_databases_1databases�5�9tabledatabasesdatabasesCREATE TABLE databases (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per tenant
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
)-A indexsqlite_autoindex_tenants_1tenants\
�tabletenantstenantsCREATE TABLE tenants (
id TEXT PRIMARY KEY,
UNIQUE (id)
)?S- indexsqlite_autoindex_segment_metadata_1segment_metadata
�--�ktablesegment_metadatasegment_metadataCREATE TABLE segment_metadata (
segment_id TEXT REFERENCES segments(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL, bool_value INTEGER,
PRIMARY KEY (segment_id, key)
)EY3 indexsqlite_autoindex_collection_metadata_1collection_metadata �-33�tablecollection_metadatacollection_metadataCREATE TABLE collection_metadata (
collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL, bool_value INTEGER,
PRIMARY KEY (collection_id, key)
)�&''�tableacquire_writeacquire_writeCREATE TABLE acquire_write (
id INTEGER PRIMARY KEY,
lock_status INTEGER NOT NULL
)3G! indexsqlite_autoindex_migrations_1migrations�/!!�)tablemigrationsmigrationsCREATE TABLE migrations (
dir TEXT NOT NULL,
version INTEGER NOT NULL,
filename TEXT NOT NULL,
sql TEXT NOT NULL,
hash TEXT NOT NULL,
PRIMARY KEY (dir, version)
)
\ � ����
�
���RH
�{�f�$ � ?���$ �0.--�tableembeddings_queueembeddings_queue!CREATE TABLE embeddings_queue (
seq_id INTEGER PRIMARY KEY,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
operation INTEGER NOT NULL,
topic TEXT NOT NULL,
id TEXT NOT NULL,
vector BLOB,
encoding TEXT,
metadata TEXT
)�*MM�+tableembedding_fulltext_search_configembedding_fulltext_search_config(CREATE TABLE 'embedding_fulltext_search_config'(k PRIMARY KEY, v) WITHOUT ROWID� )OO�/tableembedding_fulltext_search_docsizeembedding_fulltext_search_docsize'CREATE TABLE 'embedding_fulltext_search_docsize'(id INTEGER PRIMARY KEY, sz BLOB)�(OO�%tableembedding_fulltext_search_contentembedding_fulltext_search_content&CREATE TABLE 'embedding_fulltext_search_content'(id INTEGER PRIMARY KEY, c0)�.'GG�[tableembedding_fulltext_search_idxembedding_fulltext_search_idx%CREATE TABLE 'embedding_fulltext_search_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID�&II�/tableembedding_fulltext_search_dataembedding_fulltext_search_data$CREATE TABLE 'embedding_fulltext_search_data'(id INTEGER PRIMARY KEY, block BLOB)�11�9tableembedding_metadataembedding_metadataCREATE TABLE embedding_metadata (
id INTEGER REFERENCES embeddings(id),
key TEXT NOT NULL,
string_value TEXT,
int_value INTEGER,
float_value REAL, bool_value INTEGER,
PRIMARY KEY (id, key)
)
� ??�tableembeddin/ �%??�Ctableembedding_fulltext_searchembedding_fulltext_search CREATE VIRTUAL TABLE embedding_fulltext_search USING fts5(string_value, tokenize='trigram')o!!�)tablemax_seq_idmax_seq_idCREATE TABLE max_seq_id (
segment_id TEXT PRIMARY KEY,
seq_id INTEGER)�3-K1�windexembedding_metadata_string_valueembedding_metadata CREATE INDEX embedding_metadata_string_value ON embedding_metadata (key, string_value) WHERE string_value IS NOT NULL�/,I1�qindexembedding_metadata_float_valueembedding_metadataCREATE INDEX embedding_metadata_float_value ON embedding_metadata (key, float_value) WHERE float_value IS NOT NULL�'+E1�eindexembedding_metadata_int_valueembedding_metadataCREATE INDEX embedding_metadata_int_value ON embedding_metadata (key, int_value) WHERE int_value IS NOT NULL3G! indexsqlite_autoindex_max_seq_id_1max_seq_id� x!!�7tablemax_seq_idmax_seq_idCREATE TABLE max_seq_id (
segment_id TEXT PRIMARY KEY,
seq_id BLOB NOT NULL
)CW1 indexsqlite_autoindex_embedding_metadata_1embedding_metadata [11�tableembedding_metadataembedding_metadataCREATE TABLE embedding_metadat* ��/;;�Gtableembeddings_queue_configembeddings_queue_configCREATE TABLE embeddings_queue_config (
id INTEGER PRIMARY KEY,
config_json_str TEXT
)3G! indexsqlite_autoindex_embeddings_1embeddings�!!�qtableembeddingsembeddings
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY,
segment_id TEXT NOT NULL,
embedding_id TEXT NOT NULL,
seq_id BLOB NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (segment_id, embedding_id)
)/C indexsqlite_autoindex_segments_1segments�9�EtablesegmentssegmentsCREATE TABLE "segments" (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
collection TEXT REFERENCES collection(id) NOT NULL
)=Q+ indexsqlite_autoindex_maintenance_log_1maintenance_log�++�atablemaintenance_logmaintenance_logCREATE TABLE maintenance_log (
id INT PRIMARY KEY,
timestamp INT NOT NULL,
operation TEXT NOT NULL
)5I# indexsqlite_autoindex_collections_2collections5I# indexsqlite_autoindex_collections_1collections
� version
l R����W l � e�Msysdb 00009-segment-collection-not-null.sqlite.sql-- This makes segments.collection non-nullable.
CREATE TABLE segments_temp (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
collection TEXT REFERENCES collection(id) NOT NULL
);
INSERT INTO segments_temp SELECT * FROM segments;
DROP TABLE segments;
ALTER TABLE segments_temp RENAME TO segments;
054355aef9e63702bf54ea29e61563f1�EM�}Msysdb00008-maintenance-log.sqlite.sql-- Records when database maintenance operations are performed.
-- At time of creation, this table is only used to record vacuum operations.
CREATE TABLE maintenance_log (
id INT PRIMARY KEY,
timestamp INT NOT NULL,
operation TEXT NOT NULL
);
0a0e7e93111a01789addf64961c6127c�9Q�aMsysdb00007-collection-config.sqlite.sql-- Stores collection configuration dictionaries.
ALTER TABLE collections ADD COLUMN config_json_str TEXT;
1c7e63bba346a42a18b6ab7f1c989bed�ee�%Msysdb00006-collection-segment-metadata.sqlite.sql-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE collection_metadata ADD COLUMN bool_value INTEGER;
ALTER TABLE segment_metadata ADD COLUMN bool_value INTEGER;
4eea7468935bf25d4604a0fed2366116�bG�=Msysdb00005-remove-topic.sqlite.sql-- Remove the topic column from the Collections and Segments tables
ALTER TABLE collections DROP COLUMN topic;
ALTER TABLE segments DROP COLUMN topic;
b1367c826b8fba5f96f27befdc1d42d2�Q�%Msysdb00004-tenants-databases.sqlite.sqlCREATE TABLE IF NOT EXISTS tenants (
id TEXT PRIMARY KEY,
UNIQUE (id)
);
CREATE TABLE IF NOT EXISTS databases (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per tenant
tenant_id TEXT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
UNIQUE (tenant_id, name) -- Ensure that a tenant has only one database with a given name
);
CREATE TABLE IF NOT EXISTS collections_tmp (
id TEXT PRIMARY KEY, -- unique globally
name TEXT NOT NULL, -- unique per database
topic TEXT NOT NULL,
dimension INTEGER,
database_id TEXT NOT NULL REFERENCES databases(id) ON DELETE CASCADE,
UNIQUE (name, database_id)
);
-- Create default tenant and database
INSERT OR REPLACE INTO tenants (id) VALUES ('default_tenant'); -- The default tenant id is 'default_tenant' others are UUIDs
INSERT OR REPLACE INTO databases (id, name, tenant_id) VALUES ('00000000-0000-0000-0000-000000000000', 'default_database', 'default_tenant');
INSERT OR REPLACE INTO collections_tmp (id, name, topic, dimension, database_id)
SELECT id, name, topic, dimension, '00000000-0000-0000-0000-000000000000' FROM collections;
DROP TABLE collections;
ALTER TABLE collections_tmp RENAME TO collections;
048867ce8fcdefe4023c7110e4433591�WyMsysdb00003-collection-dimension.sqlite.sqlALTER TABLE collections ADD COLUMN dimension INTEGER;
42d22d0574d31d419c2a0e7f625c93aa�G?�Msysdb00002-segments.sqlite.sqlCREATE TABLE segments (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
scope TEXT NOT NULL,
topic TEXT,
collection TEXT REFERENCES collection(id)
);
CREATE TABLE segment_metadata (
segment_id TEXT REFERENCES segments(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (segment_id, key)
);
2913cb6a503055a95f625448037e8912�+ E�SMsysdb00001-collections.sqlite.sqlCREATE TABLE collections (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
topic TEXT NOT NULL,
UNIQUE (name)
);
CREATE TABLE collection_metadata (
collection_id TEXT REFERENCES collections(id) ON DELETE CASCADE,
key TEXT NOT NULL,
str_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (collection_id, key)
);
38352d725ad1c16074fac420b22b4633
�
U�
s��K � �?-]�KMembeddings_queue00002-embeddings-queue-config.sqlite.sqlCREATE TABLE embeddings_queue_config (
id INTEGER PRIMARY KEY,
config_json_str TEXT
);
8fbfe4ffb3e57f1d8bfdc58510a82e85�W- C�Membeddings_queue00001-embeddings.sqlite.sqlCREATE TABLE embeddings_queue (
seq_id INTEGER PRIMARY KEY,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
operation INTEGER NOT NULL,
topic TEXT NOT NULL,
id TEXT NOT NULL,
vector BLOB,
encoding TEXT,
metadata TEXT
);
d3755dfd232be8e8301f4d7fcfb3a486�vK�_Mmetadb00005-max-seq-id-int.sqlite.sqlALTER TABLE max_seq_id ADD COLUMN int_seq_id INTEGER;
-- Convert 8 byte wide big-endian integer as blob to native 64 bit integer.
-- Adapted from https://stackoverflow.com/a/70296198.
UPDATE max_seq_id SET int_seq_id = (
SELECT (
(instr('123456789ABCDEF', substr(hex(seq_id), -1 , 1)) << 0)
| (instr('123456789ABCDEF', substr(hex(seq_id), -2 , 1)) << 4)
| (instr('123456789ABCDEF', substr(hex(seq_id), -3 , 1)) << 8)
| (instr('123456789ABCDEF', substr(hex(seq_id), -4 , 1)) << 12)
| (instr('123456789ABCDEF', substr(hex(seq_id), -5 , 1)) << 16)
| (instr('123456789ABCDEF', substr(hex(seq_id), -6 , 1)) << 20)
| (instr('123456789ABCDEF', substr(hex(seq_id), -7 , 1)) << 24)
| (instr('123456789ABCDEF', substr(hex(seq_id), -8 , 1)) << 28)
| (instr('123456789ABCDEF', substr(hex(seq_id), -9 , 1)) << 32)
| (instr('123456789ABCDEF', substr(hex(seq_id), -10, 1)) << 36)
| (instr('123456789ABCDEF', substr(hex(seq_id), -11, 1)) << 40)
| (instr('123456789ABCDEF', substr(hex(seq_id), -12, 1)) << 44)
| (instr('123456789ABCDEF', substr(hex(seq_id), -13, 1)) << 48)
| (instr('123456789ABCDEF', substr(hex(seq_id), -14, 1)) << 52)
| (instr('123456789ABCDEF', substr(hex(seq_id), -15, 1)) << 56)
| (instr('123456789ABCDEF', substr(hex(seq_id), -16, 1)) << 60)
)
);
ALTER TABLE max_seq_id DROP COLUMN seq_id;
ALTER TABLE max_seq_id RENAME COLUMN int_seq_id TO seq_id;
0e9de46758761b373ce682925edcc326�R
O�Mmetadb00004-metadata-indices.sqlite.sqlCREATE INDEX IF NOT EXISTS embedding_metadata_int_value ON embedding_metadata (key, int_value) WHERE int_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_float_value ON embedding_metadata (key, float_value) WHERE float_value IS NOT NULL;
CREATE INDEX IF NOT EXISTS embedding_metadata_string_value ON embedding_metadata (key, string_value) WHERE string_value IS NOT NULL;
fb36603a45ee2cd0254cef3ef86585e8�=S�eMmetadb00003-full-text-tokenize.sqlite.sqlCREATE VIRTUAL TABLE embedding_fulltext_search USING fts5(string_value, tokenize='trigram');
INSERT INTO embedding_fulltext_search (rowid, string_value) SELECT rowid, string_value FROM embedding_metadata;
DROP TABLE embedding_fulltext;
f97ad6334aeaa8f419f01110b648b97a�S�)Mmetadb00002-embedding-metadata.sqlite.sql-- SQLite does not support adding check with alter table, as a result, adding a check
-- involve creating a new table and copying the data over. It is over kill with adding
-- a boolean type column. The application write to the table needs to ensure the data
-- integrity.
ALTER TABLE embedding_metadata ADD COLUMN bool_value INTEGER
12a570f7121b3a8ce750a2a7c36da20f�(
S�=Mmetadb00001-embedding-metadata.sqlite.sqlCREATE TABLE embeddings (
id INTEGER PRIMARY KEY,
segment_id TEXT NOT NULL,
embedding_id TEXT NOT NULL,
seq_id BLOB NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (segment_id, embedding_id)
);
CREATE TABLE embedding_metadata (
id INTEGER REFERENCES embeddings(id),
key TEXT NOT NULL,
string_value TEXT,
int_value INTEGER,
float_value REAL,
PRIMARY KEY (id, key)
);
CREATE TABLE max_seq_id (
segment_id TEXT PRIMARY KEY,
seq_id BLOB NOT NULL
);
CREATE VIRTUAL TABLE embedding_fulltext USING fts5(id, string_value);
2b4cf52c4bb2676e21d6860a4409f856
� ��
� � version