Skip to content

Commit b88ebed

Browse files
committed
Added globally option for Psycopg 2
1 parent 9018d36 commit b88ebed

File tree

5 files changed

+16
-10
lines changed

5 files changed

+16
-10
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.3.5 (unreleased)
2+
3+
- Added `globally` option for Psycopg 2
4+
15
## 0.3.4 (2024-09-26)
26

37
- Added `schema` option for asyncpg

pgvector/psycopg2/halfvec.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def cast_halfvec(value, cur):
1414
return HalfVector._from_db(value)
1515

1616

17-
def register_halfvec_info(oid):
17+
def register_halfvec_info(oid, scope):
1818
halfvec = new_type((oid,), 'HALFVEC', cast_halfvec)
19-
register_type(halfvec)
19+
register_type(halfvec, scope)
2020
register_adapter(HalfVector, HalfvecAdapter)

pgvector/psycopg2/register.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
from .vector import register_vector_info
66

77

8-
def register_vector(conn_or_curs=None):
8+
# TODO make globally False by default in 0.4.0
9+
def register_vector(conn_or_curs=None, globally=True):
910
conn = conn_or_curs if hasattr(conn_or_curs, 'cursor') else conn_or_curs.connection
1011
cur = conn.cursor(cursor_factory=cursor)
12+
scope = None if globally else conn_or_curs
1113

1214
# use to_regtype to get first matching type in search path
1315
cur.execute("SELECT typname, oid FROM pg_type WHERE oid IN (to_regtype('vector'), to_regtype('halfvec'), to_regtype('sparsevec'))")
@@ -16,10 +18,10 @@ def register_vector(conn_or_curs=None):
1618
if 'vector' not in type_info:
1719
raise psycopg2.ProgrammingError('vector type not found in the database')
1820

19-
register_vector_info(type_info['vector'])
21+
register_vector_info(type_info['vector'], scope)
2022

2123
if 'halfvec' in type_info:
22-
register_halfvec_info(type_info['halfvec'])
24+
register_halfvec_info(type_info['halfvec'], scope)
2325

2426
if 'sparsevec' in type_info:
25-
register_sparsevec_info(type_info['sparsevec'])
27+
register_sparsevec_info(type_info['sparsevec'], scope)

pgvector/psycopg2/sparsevec.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def cast_sparsevec(value, cur):
1414
return SparseVector._from_db(value)
1515

1616

17-
def register_sparsevec_info(oid):
17+
def register_sparsevec_info(oid, scope):
1818
sparsevec = new_type((oid,), 'SPARSEVEC', cast_sparsevec)
19-
register_type(sparsevec)
19+
register_type(sparsevec, scope)
2020
register_adapter(SparseVector, SparsevecAdapter)

pgvector/psycopg2/vector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def cast_vector(value, cur):
1515
return Vector._from_db(value)
1616

1717

18-
def register_vector_info(oid):
18+
def register_vector_info(oid, scope):
1919
vector = new_type((oid,), 'VECTOR', cast_vector)
20-
register_type(vector)
20+
register_type(vector, scope)
2121
register_adapter(np.ndarray, VectorAdapter)

0 commit comments

Comments
 (0)