Skip to main content

List Stores

Schema

ListStores accepts an optional schema field. When it is omitted, the server lists stores in public only; it does not list stores across every schema. Set schema to list stores in another schema.

Description

ListStores returns the set of vector stores currently available on the Ahnlich DB server. Use it to discover what stores exist and to validate that a target store is present before you attempt writes or similarity queries.

Behavior

  • The call returns a collection of store metadata from the server at the time of the request. Each store entry includes: name, entry count, size in bytes, and non-linear index configurations (HNSW parameters) if any are active.

  • Treat the result as an enumeration: don’t assume ordering or uniqueness semantics beyond what the server provides.

  • An empty list simply means no stores are present yet on that server.

Source Code Example

Click to expand source code
Go
package main


import (
"context"
"fmt"
"log"
"time"


"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"


dbsvc "github.com/deven96/ahnlich/sdk/ahnlich-client-go/grpc/services/db_service"
dbquery "github.com/deven96/ahnlich/sdk/ahnlich-client-go/grpc/db/query"
)


const ServerAddr = "127.0.0.1:1369"


func stringPtr(value string) *string { return &value }


type ExampleDBClient struct {
conn *grpc.ClientConn
client dbsvc.DBServiceClient
ctx context.Context
}


func NewDBClient(ctx context.Context) (*ExampleDBClient, error) {
conn, err := grpc.DialContext(ctx, ServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock())
if err != nil {
return nil, fmt.Errorf("failed to dial DB server %q: %w", ServerAddr, err)
}
client := dbsvc.NewDBServiceClient(conn)
return &ExampleDBClient{conn: conn, client: client, ctx: ctx}, nil
}


func (c *ExampleDBClient) Close() error { return c.conn.Close() }


// ListStores example
func (c *ExampleDBClient) exampleListStores() error {
resp, err := c.client.ListStores(c.ctx, &dbquery.ListStores{
Schema: stringPtr("analytics"),
})
if err != nil {
return err
}
fmt.Println("Stores:", resp.Stores)
return nil
}


func main() {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()


client, err := NewDBClient(ctx)
if err != nil {
log.Fatalf("Failed to create DB client: %v", err)
}
defer client.Close()


if err := client.exampleListStores(); err != nil {
log.Fatalf("ListStores failed: %v", err)
}
}

This method sends a ListStores request and prints the returned set of stores via resp.Stores. If the RPC fails, the returned error indicates the call did not succeed.