vibesql-catalog

Crates.iovibesql-catalog
lib.rsvibesql-catalog
version0.1.4
created_at2025-12-04 00:01:42.925194+00
updated_at2026-01-19 06:26:12.994245+00
descriptionSchema catalog management for vibesql SQL database
homepage
repositoryhttps://github.com/rjwalters/vibesql
max_upload_size
id1965519
size200,852
Robb Walters (rjwalters)

documentation

README

vibesql-catalog

Schema metadata storage and catalog management for VibeSQL.

Overview

This crate provides metadata structures for database objects (tables, views, indexes, etc.) and the catalog registry that tracks schema information.

Features

  • Schema Management: Database, schema, and table metadata
  • Column Definitions: Type information, constraints, and default values
  • Constraints: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK constraints
  • Indexes: B-tree and spatial index metadata
  • Views: View definitions and dependencies
  • Advanced Objects: Functions, procedures, sequences, triggers, domains
  • Access Control: Privilege tracking and grant management
  • User-Defined Types: Support for custom type definitions

Usage

Add this to your Cargo.toml:

[dependencies]
vibesql-catalog = "0.1"

Basic example:

use vibesql_catalog::{Catalog, TableSchema, ColumnSchema};
use vibesql_types::DataType;

// Create a catalog
let mut catalog = Catalog::new();

// Define table schema
let mut schema = TableSchema::new("users".to_string());
schema.add_column(ColumnSchema::new("id", DataType::Integer, false));
schema.add_column(ColumnSchema::new("name", DataType::Varchar(100), false));

// Register in catalog
catalog.add_table(schema);

Documentation

License

This project is licensed under either of:

at your option.

Commit count: 3672

cargo fmt