Skip to content

Commit 07cccce

Browse files
committed
Removed dimensions check from SQLAlchemy for consistency with built-in types
1 parent 203dad3 commit 07cccce

6 files changed

Lines changed: 9 additions & 18 deletions

File tree

pgvector/halfvec.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,13 @@ def from_binary(cls, value: bytes) -> HalfVector:
7171
return vec
7272

7373
@classmethod
74-
def _to_db(cls, value: object, dim: int | None = None) -> str | None:
74+
def _to_db(cls, value: object) -> str | None:
7575
if value is None:
7676
return value
7777

7878
if not isinstance(value, cls):
7979
value = cls(value) # ty: ignore[invalid-argument-type]
8080

81-
if dim is not None and value.dimensions() != dim:
82-
raise ValueError('expected %d dimensions, not %d' % (dim, value.dimensions()))
83-
8481
return value.to_text()
8582

8683
@classmethod

pgvector/sparsevec.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,16 +149,13 @@ def _from_parts(cls, dim: int, indices: list[int], values: list[float]) -> Spars
149149
return vec
150150

151151
@classmethod
152-
def _to_db(cls, value: object, dim: int | None = None) -> str | None:
152+
def _to_db(cls, value: object) -> str | None:
153153
if value is None:
154154
return value
155155

156156
if not isinstance(value, cls):
157157
value = cls(value)
158158

159-
if dim is not None and value.dimensions() != dim:
160-
raise ValueError('expected %d dimensions, not %d' % (dim, value.dimensions()))
161-
162159
return value.to_text()
163160

164161
@classmethod

pgvector/sqlalchemy/halfvec.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ def get_col_spec(self, **kw: Any) -> str:
2020

2121
def bind_processor(self, dialect: Dialect) -> Any:
2222
def process(value: Any) -> str | None:
23-
return HalfVector._to_db(value, self.dim)
23+
return HalfVector._to_db(value)
2424
return process
2525

2626
def literal_processor(self, dialect: Dialect) -> Any:
2727
string_literal_processor = self._string._cached_literal_processor(dialect)
2828

2929
def process(value: Any) -> Any:
30-
return string_literal_processor(HalfVector._to_db(value, self.dim)) # type: ignore
30+
return string_literal_processor(HalfVector._to_db(value)) # type: ignore
3131
return process
3232

3333
def result_processor(self, dialect: Dialect, coltype: Any) -> Any:

pgvector/sqlalchemy/sparsevec.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ def get_col_spec(self, **kw: Any) -> str:
2020

2121
def bind_processor(self, dialect: Dialect) -> Any:
2222
def process(value: Any) -> str | None:
23-
return SparseVector._to_db(value, self.dim)
23+
return SparseVector._to_db(value)
2424
return process
2525

2626
def literal_processor(self, dialect: Dialect) -> Any:
2727
string_literal_processor = self._string._cached_literal_processor(dialect)
2828

2929
def process(value: Any) -> Any:
30-
return string_literal_processor(SparseVector._to_db(value, self.dim)) # type: ignore
30+
return string_literal_processor(SparseVector._to_db(value)) # type: ignore
3131
return process
3232

3333
def result_processor(self, dialect: Dialect, coltype: Any) -> Any:

pgvector/sqlalchemy/vector.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ def get_col_spec(self, **kw: Any) -> str:
2020

2121
def bind_processor(self, dialect: Dialect) -> Any:
2222
def process(value: Any) -> str | None:
23-
return Vector._to_db(value, self.dim)
23+
return Vector._to_db(value)
2424
return process
2525

2626
def literal_processor(self, dialect: Dialect) -> Any:
2727
string_literal_processor = self._string._cached_literal_processor(dialect)
2828

2929
def process(value: Any) -> Any:
30-
return string_literal_processor(Vector._to_db(value, self.dim)) # type: ignore
30+
return string_literal_processor(Vector._to_db(value)) # type: ignore
3131
return process
3232

3333
def result_processor(self, dialect: Dialect, coltype: Any) -> Any:

pgvector/vector.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,13 @@ def from_binary(cls, value: bytes) -> Vector:
7171
return vec
7272

7373
@classmethod
74-
def _to_db(cls, value: object, dim: int | None = None) -> str | None:
74+
def _to_db(cls, value: object) -> str | None:
7575
if value is None:
7676
return value
7777

7878
if not isinstance(value, cls):
7979
value = cls(value) # ty: ignore[invalid-argument-type]
8080

81-
if dim is not None and value.dimensions() != dim:
82-
raise ValueError('expected %d dimensions, not %d' % (dim, value.dimensions()))
83-
8481
return value.to_text()
8582

8683
@classmethod

0 commit comments

Comments
 (0)