Files
scylladb/test/cluster/test_vector_store.py
Avi Kivity 0ae22a09d4 LICENSE: Update to version 1.1
Updated terms of non-commercial use (must be a never-customer).
2026-04-12 19:46:33 +03:00

40 lines
1.4 KiB
Python

#
# Copyright (C) 2025-present ScyllaDB
#
# SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.1
#
import logging
import pytest
from test.pylib.manager_client import ManagerClient
logger = logging.getLogger(__name__)
# Regression test for SCYLLADB-81.
#
# Unlike regular secondary indexes, vector indexes do not use materialized views
# in their implementation, therefore they do not need the keyspace
# to be rf-rack-valid in order to function properly.
#
# In this test, we check that creating a vector index without
# rf_rack_valid_keyspaces being set is possible.
@pytest.mark.asyncio
async def test_vector_store_can_be_created_without_rf_rack_valid(manager: ManagerClient):
# Explicitly disable the rf_rack_valid_keyspaces option.
config = {"rf_rack_valid_keyspaces": False}
srv = await manager.server_add(config=config)
cql, _ = await manager.get_ready_cql([srv])
# Explicitly create a keyspace with tablets.
await cql.run_async("CREATE KEYSPACE ks WITH replication = "
"{'class': 'NetworkTopologyStrategy', 'replication_factor': 1} "
"AND tablets = {'enabled': true}")
await cql.run_async("CREATE TABLE ks.t (pk int PRIMARY KEY, v vector<float, 3>)")
# Creating a vector store index should succeed.
await cql.run_async("CREATE CUSTOM INDEX ON ks.t(v) USING 'vector_index'")