Reference

SQL Reference

A compact map of the SQL surfaces most users and UIs need first.

This page is a compact map of the SQL surface — names and shapes at a glance. The linked guides for each area go deeper into arguments and behavior.

Semantic Operators#

SELECT rvbbit.create_operator(...);
SELECT * FROM rvbbit.operators ORDER BY name;
SELECT rvbbit.<operator_name>(...);

The core extension seeds LLM-backed operators (means, about, classify, extract, summarize, sentiment, triples, …). Reranker-backed means / about and pack-only operators like extract_pii arrive when you install the matching capability pack. Trained scikit-learn models register as predict_<model> operators the same way — see Predictive Models.

Cascade inspection:

SELECT name,
       steps IS NOT NULL AS has_steps,
       retry IS NOT NULL AS has_retry,
       wards IS NOT NULL AS has_gates,
       takes IS NOT NULL AS has_takes,
       tests IS NOT NULL AS has_tests
FROM rvbbit.operators
ORDER BY name;

A Cascade is just an operator with non-null steps (created via create_operator(..., op_steps => ...)); there is no separate create_cascade. See Cascades.

Embeddings#

SELECT rvbbit.embed('text to embed');
SELECT rvbbit.similarity('text a', 'text b');

SELECT *
FROM rvbbit.knn_text('docs'::regclass, 'body', 'query text', 10);

Semantic Functions#

SELECT * FROM rvbbit.topics('SELECT body FROM docs', 8);
SELECT * FROM rvbbit.outliers('SELECT body FROM docs', 10);
SELECT * FROM rvbbit.dedupe_groups('SELECT company_name FROM accounts', 0.82);
SELECT * FROM rvbbit.diff('SELECT body FROM new_docs', 'SELECT body FROM old_docs', 20);

SELECT rvbbit.semantic_case(
  body,
  ARRAY['billing problem', 'shipping delay', 'product bug'],
  ARRAY['billing', 'shipping', 'bug'],
  'other',
  0.0
)
FROM tickets;

SELECT rvbbit.extract(body, 'customer company name') FROM tickets;
SELECT rvbbit.text_evidence(body, 'renewal risk', 3) FROM tickets;
SELECT rvbbit.explain_semantic('SELECT rvbbit.review_risk(body) FROM tickets');

Knowledge Graph#

SELECT rvbbit.kg_assert_node('customer', 'Acme Corp');
SELECT rvbbit.kg_assert_edge(...);
SELECT * FROM rvbbit.kg_context('customer', 'Acme Corp', max_depth => 2);
SELECT * FROM rvbbit.kg_neighbors('customer', 'Acme Corp');

MCP#

SELECT rvbbit.register_mcp_server(...);
SELECT rvbbit.refresh_mcp_server('github');
SELECT rvbbit.mcp_call('github', 'tool_name', '{"arg":"value"}'::jsonb);
SELECT * FROM rvbbit.mcp_rows('github', 'tool_name', '{}'::jsonb);

The registration function is register_mcp_server and the rediscovery function is refresh_mcp_server (probe a server with rvbbit.mcp_probe(server)). See MCP Servers.

Acceleration Registry#

Acceleration is the optional columnar tier — a registry that ordinary heap tables are added to; the heap stays the source of truth. See Storage Acceleration.

SELECT rvbbit.enable_table('events'::regclass);    -- add to the registry
SELECT rvbbit.disable_table('events'::regclass);   -- remove (detach_table is an alias)
SELECT rvbbit.is_rvbbit_table('events'::regclass);
SELECT * FROM rvbbit.list_tables();

-- CREATE TABLE ... USING rvbbit is sugar: a plain heap table, auto-registered.

SELECT rvbbit.refresh_acceleration('events'::regclass);
SELECT rvbbit.refresh_acceleration('events'::regclass, refresh_variants => false);
SELECT rvbbit.rebuild_acceleration('events'::regclass);
SELECT rvbbit.compact('events'::regclass);

SELECT * FROM rvbbit.acceleration_status;
SELECT * FROM rvbbit.accel_freshness;
SELECT * FROM rvbbit.layout_variant_status;
SELECT * FROM rvbbit.acceleration_operations ORDER BY started_at DESC LIMIT 20;
SELECT * FROM rvbbit.acceleration_operation_phases ORDER BY started_at DESC LIMIT 50;

Freshness policy plane (see Accelerator Freshness):

SELECT rvbbit.set_accel_policy('events'::regclass, strategy => 'target',
                               freshness_target_secs => 300);
SELECT * FROM rvbbit.accel_tick(budget => 10, dry_run => true);

Hot cache:

SELECT rvbbit.hot_load('events'::regclass);
SELECT rvbbit.hot_status();
SELECT rvbbit.hot_evict('events'::regclass);

Time Travel#

/* rvbbit: as_of = '2026-05-31 14:30:00-04' */
SELECT count(*) FROM events;

SELECT rvbbit.set_as_of('events'::regclass, '2026-05-31 14:30:00-04');

SELECT *
FROM rvbbit.time_travel_timeline('events'::regclass);

The comment directive (/* rvbbit: as_of = '...' */) pins one statement; the GUC rvbbit.as_of_timestamp (or rvbbit.set_as_of) pins a session. See Time Travel.

Routing And GPU#

SELECT rvbbit.route_status();
SELECT rvbbit.route_explain('SELECT count(*) FROM events');

-- NVIDIA GQE (GPU) — see /docs/gqe
SELECT rvbbit.warm_gpu_gqe();
SELECT detail->'gpu_gqe' FROM rvbbit.doctor(false) WHERE name = 'runtime';

Worker Telemetry#

SELECT * FROM rvbbit.duck_sidecar_latest;
SELECT * FROM rvbbit.duck_sidecar_query_events ORDER BY observed_at DESC LIMIT 100;
SELECT * FROM rvbbit.duck_sidecar_fallback_events ORDER BY observed_at DESC LIMIT 50;
SELECT * FROM rvbbit.duck_sidecar_query_summary ORDER BY minute DESC LIMIT 100;

Costs#

SELECT receipt_id, operator, model, latency_ms, error, invocation_at
FROM rvbbit.receipts
ORDER BY invocation_at DESC
LIMIT 20;

SELECT * FROM rvbbit.cost_latest ORDER BY created_at DESC;
SELECT * FROM rvbbit.query_costs ORDER BY last_event_at DESC;
SELECT * FROM rvbbit.cost_audit_gaps ORDER BY invocation_at DESC;

SELECT rvbbit.receipt_queue_pending();
SELECT rvbbit.flush_receipt_queue(1000);
SELECT rvbbit.backfill_cost_events_from_receipts(10000);
SELECT rvbbit.cost_audit_summary();

Each operator call writes one row to rvbbit.receipts. See Receipts And Costs.

Providers And Diagnostics#

SELECT * FROM rvbbit.doctor(false);
SELECT * FROM rvbbit.provider_doctor(false);
SELECT * FROM rvbbit.provider_doctor(true);

SELECT * FROM rvbbit.refresh_provider_catalogs();
SELECT rvbbit.provider_catalog_summary();

SELECT provider, model, family, context_window, available
FROM rvbbit.provider_model_catalog
ORDER BY provider, model;

SELECT rvbbit.register_self_hosted_model(...);
SELECT rvbbit.set_default_provider('local-vllm');
SELECT rvbbit.default_provider();

Warren#

SELECT rvbbit.deploy_catalog_capability(...);
SELECT * FROM rvbbit.warren_jobs ORDER BY created_at DESC LIMIT 20;
SELECT name, status, last_heartbeat FROM rvbbit.warren_nodes ORDER BY last_heartbeat DESC;

See Warren for node registration and the deploy flow.