long text support

This commit is contained in:
Alex Garcia 2024-11-13 23:36:46 -08:00
parent f12be5292b
commit 8132f26f3b
3 changed files with 244 additions and 15 deletions

View file

@ -251,6 +251,13 @@
'rootpage': 7,
'sql': 'CREATE TABLE "v_metadata_chunks00"(rowid PRIMARY KEY, data 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_rowids',
@ -268,6 +275,111 @@
]),
})
# ---
# name: test_long_text
dict({
'v_chunks': OrderedDict({
'sql': 'select * from v_chunks',
'rows': list([
]),
}),
'v_metadata_chunks00': OrderedDict({
'sql': 'select * from v_metadata_chunks00',
'rows': list([
]),
}),
'v_metadata_text_data_00': OrderedDict({
'sql': 'select * from v_metadata_text_data_00',
'rows': list([
]),
}),
'v_rowids': OrderedDict({
'sql': 'select * from v_rowids',
'rows': list([
]),
}),
'v_vector_chunks00': OrderedDict({
'sql': 'select * from v_vector_chunks00',
'rows': list([
]),
}),
})
# ---
# name: test_long_text.1
OrderedDict({
'sql': 'select * from v',
'rows': list([
OrderedDict({
'rowid': 1,
'vector': b'\x11\x11\x11\x11',
'name': '123456789a12',
}),
OrderedDict({
'rowid': 2,
'vector': b'\x11\x11\x11\x11',
'name': '123456789a123',
}),
]),
})
# ---
# name: test_long_text.2
dict({
'v_chunks': OrderedDict({
'sql': 'select * from v_chunks',
'rows': list([
OrderedDict({
'chunk_id': 1,
'size': 8,
'validity': b'\x03',
'rowids': b'\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
}),
]),
}),
'v_metadata_chunks00': OrderedDict({
'sql': 'select * from v_metadata_chunks00',
'rows': list([
OrderedDict({
'rowid': 1,
'data': b'\x0c\x00\x00\x00123456789a12\r\x00\x00\x00123456789a12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
}),
]),
}),
'v_metadata_text_data_00': OrderedDict({
'sql': 'select * from v_metadata_text_data_00',
'rows': list([
OrderedDict({
'rowid': 2,
'data': '123456789a123',
}),
]),
}),
'v_rowids': OrderedDict({
'sql': 'select * from v_rowids',
'rows': list([
OrderedDict({
'rowid': 1,
'id': None,
'chunk_id': 1,
'chunk_offset': 0,
}),
OrderedDict({
'rowid': 2,
'id': None,
'chunk_id': 1,
'chunk_offset': 1,
}),
]),
}),
'v_vector_chunks00': OrderedDict({
'sql': 'select * from v_vector_chunks00',
'rows': list([
OrderedDict({
'rowid': 1,
'vectors': b'\x11\x11\x11\x11\x11\x11\x11\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
}),
]),
}),
})
# ---
# name: test_normal.1
dict({
'v_chunks': OrderedDict({
@ -295,6 +407,11 @@
'rows': list([
]),
}),
'v_metadata_text_data_03': OrderedDict({
'sql': 'select * from v_metadata_text_data_03',
'rows': list([
]),
}),
'v_rowids': OrderedDict({
'sql': 'select * from v_rowids',
'rows': list([
@ -408,6 +525,11 @@
}),
]),
}),
'v_metadata_text_data_03': OrderedDict({
'sql': 'select * from v_metadata_text_data_03',
'rows': list([
]),
}),
'v_rowids': OrderedDict({
'sql': 'select * from v_rowids',
'rows': list([
@ -442,6 +564,27 @@
}),
})
# ---
# name: test_normal.7
OrderedDict({
'sql': 'drop table v',
'rows': list([
]),
})
# ---
# name: test_normal.8
OrderedDict({
'sql': 'select * from sqlite_master',
'rows': list([
OrderedDict({
'type': 'table',
'name': 'sqlite_sequence',
'tbl_name': 'sqlite_sequence',
'rootpage': 3,
'sql': 'CREATE TABLE sqlite_sequence(name,seq)',
}),
]),
})
# ---
# name: test_normal[sqlite_master]
OrderedDict({
'sql': "select * from sqlite_master where type = 'table' order by name",
@ -495,6 +638,13 @@
'rootpage': 13,
'sql': 'CREATE TABLE "v_metadata_chunks03"(rowid PRIMARY KEY, data 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_rowids',
@ -732,6 +882,11 @@
}),
]),
}),
'vec_movies_metadata_text_data_01': OrderedDict({
'sql': 'select * from vec_movies_metadata_text_data_01',
'rows': list([
]),
}),
'vec_movies_rowids': OrderedDict({
'sql': 'select * from vec_movies_rowids',
'rows': list([

View file

@ -33,6 +33,9 @@ def test_normal(db, snapshot):
assert exec(db, "select * from v") == snapshot()
assert vec0_shadow_table_contents(db, "v") == snapshot()
assert exec(db, "drop table v") == snapshot()
assert exec(db, "select * from sqlite_master") == snapshot()
#
# assert exec(db, "select * from v") == snapshot()
@ -44,6 +47,18 @@ def test_normal(db, snapshot):
# )
def test_long_text(db, snapshot):
db.execute(
"create virtual table v using vec0(vector float[1], name text, chunk_size=8)"
)
assert vec0_shadow_table_contents(db, "v") == snapshot()
INSERT = "insert into v(vector, name) values (?, ?)"
assert exec(db, INSERT, [b"\x11\x11\x11\x11", "123456789a12"])
assert exec(db, INSERT, [b"\x11\x11\x11\x11", "123456789a123"])
assert exec(db, "select * from v") == snapshot()
assert vec0_shadow_table_contents(db, "v") == snapshot()
def test_types(db, snapshot):
db.execute(
"create virtual table v using vec0(vector float[1], b boolean, n int, f float, t text, chunk_size=8)"