From 86df498910a3199c792bc83d3d2b1d7bc23a23af Mon Sep 17 00:00:00 2001 From: Alex Garcia Date: Tue, 19 Nov 2024 22:25:11 -0800 Subject: [PATCH] _metadata_text_NN shadow tables to _metadatatextNN --- ARCHITECTURE.md | 4 +- sqlite-vec.c | 22 ++- tests/__snapshots__/test-general.ambr | 34 ++-- tests/__snapshots__/test-metadata.ambr | 264 ++++++++++++------------- tests/test-metadata.py | 2 +- 5 files changed, 176 insertions(+), 150 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index f93e846..52f49da 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -36,12 +36,12 @@ Very much a WIP. - `rowid INTEGER` - `valueNN [type]` -#### `xyz_metadata_chunksNN` +#### `xyz_metadatachunksNN` - `rowid INTEGER` - `data BLOB` -#### `xyz_metadata_text_data_00` +#### `xyz_metadatatextNN` - `rowid INTEGER` - `data TEXT` diff --git a/sqlite-vec.c b/sqlite-vec.c index 4d7bc86..26f18e1 100644 --- a/sqlite-vec.c +++ b/sqlite-vec.c @@ -3419,7 +3419,7 @@ static sqlite3_module vec_npy_eachModule = { #define VEC0_SHADOW_AUXILIARY_NAME "\"%w\".\"%w_auxiliary\"" #define VEC0_SHADOW_METADATA_N_NAME "\"%w\".\"%w_metadatachunks%02d\"" -#define VEC0_SHADOW_METADATA_TEXT_DATA_NAME "\"%w\".\"%w_metadata_text_data_%02d\"" +#define VEC0_SHADOW_METADATA_TEXT_DATA_NAME "\"%w\".\"%w_metadatatext%02d\"" #define VEC_INTERAL_ERROR "Internal sqlite-vec error: " #define REPORT_URL "https://github.com/asg017/sqlite-vec/issues/new" @@ -5064,7 +5064,7 @@ static int vec0_init(sqlite3 *db, void *pAux, int argc, const char *const *argv, if ((rc != SQLITE_OK) || (sqlite3_step(stmt) != SQLITE_DONE)) { sqlite3_finalize(stmt); *pzErr = sqlite3_mprintf( - "Could not create '_metadata_text_data_%02d' shadow table: %s", i, + "Could not create '_metadatatext%02d' shadow table: %s", i, sqlite3_errmsg(db)); goto error; } @@ -8779,6 +8779,24 @@ static int vec0ShadowName(const char *zName) { "metadatachunks13", "metadatachunks14", "metadatachunks15", + + // Up to + "metadatatext00", + "metadatatext01", + "metadatatext02", + "metadatatext03", + "metadatatext04", + "metadatatext05", + "metadatatext06", + "metadatatext07", + "metadatatext08", + "metadatatext09", + "metadatatext10", + "metadatatext11", + "metadatatext12", + "metadatatext13", + "metadatatext14", + "metadatatext15", }; for (size_t i = 0; i < sizeof(azName) / sizeof(azName[0]); i++) { diff --git a/tests/__snapshots__/test-general.ambr b/tests/__snapshots__/test-general.ambr index 6f97f80..2e17192 100644 --- a/tests/__snapshots__/test-general.ambr +++ b/tests/__snapshots__/test-general.ambr @@ -5,16 +5,16 @@ 'rows': list([ OrderedDict({ 'type': 'index', - 'name': 'sqlite_autoindex_v_metadata_text_data_00_1', - 'tbl_name': 'v_metadata_text_data_00', - 'rootpage': 10, + 'name': 'sqlite_autoindex_v_metadatachunks00_1', + 'tbl_name': 'v_metadatachunks00', + 'rootpage': 8, 'sql': None, }), OrderedDict({ 'type': 'index', - 'name': 'sqlite_autoindex_v_metadatachunks00_1', - 'tbl_name': 'v_metadatachunks00', - 'rootpage': 8, + 'name': 'sqlite_autoindex_v_metadatatext00_1', + 'tbl_name': 'v_metadatatext00', + 'rootpage': 10, 'sql': None, }), OrderedDict({ @@ -52,13 +52,6 @@ 'rootpage': 2, 'sql': 'CREATE TABLE "v_chunks"(chunk_id INTEGER PRIMARY KEY AUTOINCREMENT,size INTEGER NOT NULL,sequence_id integer,partition00,validity BLOB NOT NULL, rowids BLOB NOT NULL)', }), - OrderedDict({ - 'type': 'table', - 'name': 'v_metadata_text_data_00', - 'tbl_name': 'v_metadata_text_data_00', - 'rootpage': 9, - 'sql': 'CREATE TABLE "v_metadata_text_data_00"(rowid PRIMARY KEY, data TEXT)', - }), OrderedDict({ 'type': 'table', 'name': 'v_metadatachunks00', @@ -66,6 +59,13 @@ 'rootpage': 7, 'sql': 'CREATE TABLE "v_metadatachunks00"(rowid PRIMARY KEY, data BLOB NOT NULL)', }), + OrderedDict({ + 'type': 'table', + 'name': 'v_metadatatext00', + 'tbl_name': 'v_metadatatext00', + 'rootpage': 9, + 'sql': 'CREATE TABLE "v_metadatatext00"(rowid PRIMARY KEY, data TEXT)', + }), OrderedDict({ 'type': 'table', 'name': 'v_rowids', @@ -95,6 +95,14 @@ 'wr': 0, 'strict': 0, }), + OrderedDict({ + 'schema': 'main', + 'name': 'v_metadatatext00', + 'type': 'shadow', + 'ncol': 2, + 'wr': 0, + 'strict': 0, + }), OrderedDict({ 'schema': 'main', 'name': 'v_metadatachunks00', diff --git a/tests/__snapshots__/test-metadata.ambr b/tests/__snapshots__/test-metadata.ambr index ec076dc..75c6cc2 100644 --- a/tests/__snapshots__/test-metadata.ambr +++ b/tests/__snapshots__/test-metadata.ambr @@ -32,11 +32,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -73,6 +68,11 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -146,15 +146,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -191,6 +182,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -268,15 +268,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -313,6 +304,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -604,13 +604,6 @@ 'rootpage': 2, 'sql': 'CREATE TABLE "v_chunks"(chunk_id INTEGER PRIMARY KEY AUTOINCREMENT,size INTEGER NOT NULL,validity BLOB NOT NULL,rowids BLOB NOT NULL)', }), - OrderedDict({ - 'type': 'table', - 'name': 'v_metadata_text_data_00', - 'tbl_name': 'v_metadata_text_data_00', - 'rootpage': 9, - 'sql': 'CREATE TABLE "v_metadata_text_data_00"(rowid PRIMARY KEY, data TEXT)', - }), OrderedDict({ 'type': 'table', 'name': 'v_metadatachunks00', @@ -618,6 +611,13 @@ 'rootpage': 7, 'sql': 'CREATE TABLE "v_metadatachunks00"(rowid PRIMARY KEY, data BLOB NOT NULL)', }), + OrderedDict({ + 'type': 'table', + 'name': 'v_metadatatext00', + 'tbl_name': 'v_metadatatext00', + 'rootpage': 9, + 'sql': 'CREATE TABLE "v_metadatatext00"(rowid PRIMARY KEY, data TEXT)', + }), OrderedDict({ 'type': 'table', 'name': 'v_rowids', @@ -1531,13 +1531,13 @@ 'rows': list([ ]), }), - 'v_metadata_text_data_00': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_00', + 'v_metadatachunks00': OrderedDict({ + 'sql': 'select * from v_metadatachunks00', 'rows': list([ ]), }), - 'v_metadatachunks00': OrderedDict({ - 'sql': 'select * from v_metadatachunks00', + 'v_metadatatext00': OrderedDict({ + 'sql': 'select * from v_metadatatext00', 'rows': list([ ]), }), @@ -1583,15 +1583,6 @@ }), ]), }), - 'v_metadata_text_data_00': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_00', - 'rows': list([ - OrderedDict({ - 'rowid': 2, - 'data': '123456789a123', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -1601,6 +1592,15 @@ }), ]), }), + 'v_metadatatext00': OrderedDict({ + 'sql': 'select * from v_metadatatext00', + 'rows': list([ + OrderedDict({ + 'rowid': 2, + 'data': '123456789a123', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -1636,11 +1636,6 @@ 'rows': list([ ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -1661,6 +1656,11 @@ 'rows': list([ ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -1738,11 +1738,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -1779,6 +1774,11 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -1859,13 +1859,6 @@ 'rootpage': 2, 'sql': 'CREATE TABLE "v_chunks"(chunk_id INTEGER PRIMARY KEY AUTOINCREMENT,size INTEGER NOT NULL,validity BLOB NOT NULL,rowids BLOB NOT NULL)', }), - OrderedDict({ - 'type': 'table', - 'name': 'v_metadata_text_data_03', - 'tbl_name': 'v_metadata_text_data_03', - 'rootpage': 15, - 'sql': 'CREATE TABLE "v_metadata_text_data_03"(rowid PRIMARY KEY, data TEXT)', - }), OrderedDict({ 'type': 'table', 'name': 'v_metadatachunks00', @@ -1894,6 +1887,13 @@ 'rootpage': 13, 'sql': 'CREATE TABLE "v_metadatachunks03"(rowid PRIMARY KEY, data BLOB NOT NULL)', }), + OrderedDict({ + 'type': 'table', + 'name': 'v_metadatatext03', + 'tbl_name': 'v_metadatatext03', + 'rootpage': 15, + 'sql': 'CREATE TABLE "v_metadatatext03"(rowid PRIMARY KEY, data TEXT)', + }), OrderedDict({ 'type': 'table', 'name': 'v_rowids', @@ -2047,11 +2047,6 @@ }), ]), }), - 'vec_movies_metadata_text_data_01': OrderedDict({ - 'sql': 'select * from vec_movies_metadata_text_data_01', - 'rows': list([ - ]), - }), 'vec_movies_metadatachunks00': OrderedDict({ 'sql': 'select * from vec_movies_metadatachunks00', 'rows': list([ @@ -2136,6 +2131,11 @@ }), ]), }), + 'vec_movies_metadatatext01': OrderedDict({ + 'sql': 'select * from vec_movies_metadatatext01', + 'rows': list([ + ]), + }), 'vec_movies_rowids': OrderedDict({ 'sql': 'select * from vec_movies_rowids', 'rows': list([ @@ -2686,13 +2686,13 @@ 'rows': list([ ]), }), - 'v_metadata_text_data_00': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_00', + 'v_metadatachunks00': OrderedDict({ + 'sql': 'select * from v_metadatachunks00', 'rows': list([ ]), }), - 'v_metadatachunks00': OrderedDict({ - 'sql': 'select * from v_metadatachunks00', + 'v_metadatatext00': OrderedDict({ + 'sql': 'select * from v_metadatatext00', 'rows': list([ ]), }), @@ -2779,11 +2779,6 @@ }), ]), }), - 'v_metadata_text_data_00': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_00', - 'rows': list([ - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -2797,6 +2792,11 @@ }), ]), }), + 'v_metadatatext00': OrderedDict({ + 'sql': 'select * from v_metadatatext00', + 'rows': list([ + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3126,15 +3126,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3171,6 +3162,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3249,15 +3249,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3294,6 +3285,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3372,15 +3372,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123-updated', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3417,6 +3408,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123-updated', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3495,15 +3495,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123-updated', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3540,6 +3531,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123-updated', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3618,19 +3618,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123-updated', - }), - OrderedDict({ - 'rowid': 2, - 'data': 'test2-long-long-long', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3667,6 +3654,19 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123-updated', + }), + OrderedDict({ + 'rowid': 2, + 'data': 'test2-long-long-long', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ @@ -3745,15 +3745,6 @@ }), ]), }), - 'v_metadata_text_data_03': OrderedDict({ - 'sql': 'select * from v_metadata_text_data_03', - 'rows': list([ - OrderedDict({ - 'rowid': 3, - 'data': '1234567890123-updated', - }), - ]), - }), 'v_metadatachunks00': OrderedDict({ 'sql': 'select * from v_metadatachunks00', 'rows': list([ @@ -3790,6 +3781,15 @@ }), ]), }), + 'v_metadatatext03': OrderedDict({ + 'sql': 'select * from v_metadatatext03', + 'rows': list([ + OrderedDict({ + 'rowid': 3, + 'data': '1234567890123-updated', + }), + ]), + }), 'v_rowids': OrderedDict({ 'sql': 'select * from v_rowids', 'rows': list([ diff --git a/tests/test-metadata.py b/tests/test-metadata.py index 95558be..3774c80 100644 --- a/tests/test-metadata.py +++ b/tests/test-metadata.py @@ -580,7 +580,7 @@ def test_errors(db, snapshot): # EVIDENCE-OF: V15466_32305 db.set_authorizer( - authorizer_deny_on(sqlite3.SQLITE_READ, "v_metadata_text_data_00", "data") + authorizer_deny_on(sqlite3.SQLITE_READ, "v_metadatatext00", "data") ) assert exec(db, "select * from v") == snapshot()