Skip to content

Commit 1d08398

Browse files
committed
fix: refresh query version metadata
1 parent 3a8d341 commit 1d08398

3 files changed

Lines changed: 29 additions & 9 deletions

File tree

test/collection/test_queries.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import pytest
44

5+
from weaviate.collections.collection import CollectionAsync
56
from weaviate.collections.query import _QueryCollectionAsync
67
from weaviate.connect import ConnectionV4
78
from weaviate.exceptions import WeaviateInvalidInputError
9+
from weaviate.util import _ServerVersion
810

911
# TODO: re-enable tests once string syntax is re-enabled in the API
1012

@@ -130,3 +132,14 @@ async def test_bad_query_inputs(connection: ConnectionV4) -> None:
130132

131133
# near image
132134
await _test_query(lambda: query.near_image(42))
135+
136+
137+
def test_async_collection_query_uses_current_connection_version(connection: ConnectionV4) -> None:
138+
collection = CollectionAsync(connection, "dummy", True)
139+
140+
connection._weaviate_version = _ServerVersion.from_string("1.32.5")
141+
142+
request = collection.query._query.get()
143+
144+
assert request.uses_125_api
145+
assert request.uses_127_api

weaviate/collections/grpc/query.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,17 @@ def __init__(
8282
tenant: Optional[str],
8383
consistency_level: Optional[ConsistencyLevel],
8484
validate_arguments: bool,
85-
uses_125_api: bool,
86-
uses_127_api: bool,
8785
):
8886
super().__init__(weaviate_version, consistency_level, validate_arguments)
8987
self._name: str = name
9088
self._tenant = tenant
9189
self._validate_arguments = validate_arguments
92-
self.__uses_125_api = uses_125_api
93-
self.__uses_127_api = uses_127_api
90+
self._use_weaviate_version(weaviate_version)
91+
92+
def _use_weaviate_version(self, weaviate_version: _ServerVersion) -> None:
93+
self._weaviate_version = weaviate_version
94+
self.__uses_125_api = weaviate_version.is_at_least(1, 25, 0)
95+
self.__uses_127_api = weaviate_version.is_at_least(1, 27, 0)
9496

9597
def __parse_near_options(
9698
self,

weaviate/collections/queries/base_executor.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,23 @@ def __init__(
8686
self._references = references
8787
self._validate_arguments = validate_arguments
8888

89-
self.__uses_125_api = connection._weaviate_version.is_at_least(1, 25, 0)
90-
self.__uses_127_api = connection._weaviate_version.is_at_least(1, 27, 0)
91-
self._query = _QueryGRPC(
89+
self.__query = _QueryGRPC(
9290
connection._weaviate_version,
9391
self._name,
9492
self.__tenant,
9593
self.__consistency_level,
9694
validate_arguments=self._validate_arguments,
97-
uses_125_api=self.__uses_125_api,
98-
uses_127_api=self.__uses_127_api,
9995
)
10096

97+
@property
98+
def _query(self) -> _QueryGRPC:
99+
self.__query._use_weaviate_version(self._connection._weaviate_version)
100+
return self.__query
101+
102+
@property
103+
def __uses_127_api(self) -> bool:
104+
return self._connection._weaviate_version.is_at_least(1, 27, 0)
105+
101106
def __retrieve_timestamp(
102107
self,
103108
timestamp: int,

0 commit comments

Comments
 (0)