Skip to content

Commit 3d12b32

Browse files
committed
Enable keying result by column name
Enable dict cursor. Allows keying the result by column name instead of just by column number. Helps ergonomics.
1 parent a7b94ce commit 3d12b32

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

nbs/00_vector.ipynb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,6 +1385,9 @@
13851385
"assert len(rec) == 2\n",
13861386
"\n",
13871387
"assert isinstance(rec[0][SEARCH_RESULT_METADATA_IDX], dict)\n",
1388+
"assert isinstance(rec[0][\"metadata\"], dict)\n",
1389+
"assert rec[0][\"contents\"] == \"the brown fox\"\n",
1390+
"\n",
13881391
"\n",
13891392
"rec = await vec.search([1.0, 2.0], limit=4, predicates=Predicates((\"key\", \"val2\")))\n",
13901393
"assert len(rec) == 1\n",
@@ -1442,7 +1445,7 @@
14421445
"\n",
14431446
"rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\": \"val_1\"}, {\"key2\": \"val2\"}])\n",
14441447
"assert len(rec) == 2\n",
1445-
"await vec.delete_by_ids([rec[0][SEARCH_RESULT_ID_IDX]])\n",
1448+
"await vec.delete_by_ids([rec[0][\"id\"]])\n",
14461449
"rec = await vec.search([1.0, 2.0], limit=4, filter=[{\"key_1\": \"val_1\"}, {\"key2\": \"val2\"}])\n",
14471450
"assert len(rec) == 1\n",
14481451
"await vec.delete_by_metadata([{\"key_1\": \"val_1\"}, {\"key2\": \"val2\"}])\n",
@@ -1658,7 +1661,7 @@
16581661
" self.max_db_connections = self.default_max_db_connections()\n",
16591662
"\n",
16601663
" self.pool = psycopg2.pool.SimpleConnectionPool(\n",
1661-
" 1, self.max_db_connections, dsn=self.service_url)\n",
1664+
" 1, self.max_db_connections, dsn=self.service_url, cursor_factory=psycopg2.extras.DictCursor)\n",
16621665
"\n",
16631666
" connection = self.pool.getconn()\n",
16641667
" pgvector.psycopg2.register_vector(connection)\n",
@@ -2181,10 +2184,14 @@
21812184
"\n",
21822185
"rec = vec.search([1.0, 2.0], filter={\"key_1\": \"val_1\", \"key_2\": \"val_2\"})\n",
21832186
"assert rec[0][SEARCH_RESULT_CONTENTS_IDX] == 'the brown fox'\n",
2187+
"assert rec[0][\"contents\"] == 'the brown fox'\n",
21842188
"assert rec[0][SEARCH_RESULT_METADATA_IDX] == {\n",
21852189
" 'key_1': 'val_1', 'key_2': 'val_2'}\n",
2190+
"assert rec[0][\"metadata\"] == {\n",
2191+
" 'key_1': 'val_1', 'key_2': 'val_2'}\n",
21862192
"assert isinstance(rec[0][SEARCH_RESULT_METADATA_IDX], dict)\n",
21872193
"assert rec[0][SEARCH_RESULT_DISTANCE_IDX] == 0.0009438353921149556\n",
2194+
"assert rec[0][\"distance\"] == 0.0009438353921149556\n",
21882195
"\n",
21892196
"rec = vec.search([1.0, 2.0], limit=4, predicates=Predicates((\"key\", \"val2\")))\n",
21902197
"assert len(rec) == 1\n",

timescale_vector/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,7 @@ def connect(self):
10491049
self.max_db_connections = self.default_max_db_connections()
10501050

10511051
self.pool = psycopg2.pool.SimpleConnectionPool(
1052-
1, self.max_db_connections, dsn=self.service_url)
1052+
1, self.max_db_connections, dsn=self.service_url, cursor_factory=psycopg2.extras.DictCursor)
10531053

10541054
connection = self.pool.getconn()
10551055
pgvector.psycopg2.register_vector(connection)

0 commit comments

Comments
 (0)