docs: add German (DE) documentation + update all docs for Sessions 10-12
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled

New German documentation (docs/de/):
- index.md, quickstart.md, installation.md
- baraql.md, graph.md, vector.md, mcp.md

Updated English documentation:
- changelog.md: all Sessions 10-12 features
- graph.md: SQL GRAPH_TABLE, CREATE GRAPH, all 8 algorithms, Cypher, similarity_nodes, node2vec
- vector.md: hybrid RAG, chunk(), embed_text(), auto-embed, nl_to_sql(), schema_prompt()
- baraql.md: new AI & Cross-Modal Functions section, updated keyword tables
- mcp.md: MCP Server documentation (new file)
- index.md: added German (DE) language link
This commit is contained in:
2026-05-17 16:15:45 +03:00
parent e783215276
commit a5d34c001a
13 changed files with 1194 additions and 117 deletions
+40 -16
View File
@@ -2,25 +2,49 @@
All notable changes to BaraDB are documented in this file.
## [Unreleased] — SQL:2023 Stabilization
### Fixed
- **GROUPING SETS execution** — `lowerSelect` now creates `irpkGroupBy` when `selGroupingSetsKind != gskNone`, even if `selGroupBy` is empty. Previously, queries like `GROUP BY GROUPING SETS ((dept), ())` bypassed the grouping executor entirely.
- **FTS CREATE INDEX docId mismatch** — `CREATE INDEX ... USING FTS` now computes `docId` as a hash of `tableName.$key`, consistent with DML operations (`INSERT`/`UPDATE`/`DELETE`). Previously, index creation used sequential IDs (0, 1, 2...), causing `@@` queries to never match indexed documents.
- **Test isolation (all suites)** — All `newLSMTree("")` calls replaced with unique temporary directories per suite. Eliminates WAL accumulation issues and flaky tests caused by shared database state between test runs.
- **Window frame parser** — `parseFrameBoundary` no longer consumes `tkRow` after `tkCurrent` incorrectly (was using `tkRows`). Also fixed `tkRow` keyword conflict with `ENABLE ROW LEVEL SECURITY` parsing.
- **ORDER BY + SELECT projection** — `lowerSelect` now places `irpkSort` before `irpkProject`, enabling `ORDER BY` on columns not present in the `SELECT` list.
- **UNPIVOT execution** — Verified and fixed missing test coverage for UNPIVOT transformation.
## [Unreleased] — AI-Native Platform
### Added
- **JSON operators** — `@>` (contains), `<@` (contained by), `?` (has key), `?|` (has any), `?&` (has all) now supported in lexer, parser, and executor.
- **Window frame execution** — `ROWS BETWEEN X PRECEDING AND Y FOLLOWING` / `CURRENT ROW` frame boundaries now respected by `FIRST_VALUE` and `LAST_VALUE`.
- **Session variables** — `SET var_name = value` and `current_setting('var_name')` for connection-scoped key/value storage.
- **Current user/role** — `current_user` and `current_role` SQL keywords evaluate to the authenticated session's user and role.
- **Auth-executor bridge** — Wire server and HTTP server now populate `ExecutionContext.currentUser` and `ExecutionContext.currentRole` after JWT/SCRAM authentication.
- **Multi-tenant RLS** — Row-Level Security policies can now reference `current_user`, `current_role`, and `current_setting('app.tenant_id')` for per-tenant data isolation.
- **MCP Server (Model Context Protocol)** — STDIO JSON-RPC 2.0 server with 3 AI tools:
- `query` — SQL execution with parameterized queries + multi-tenant session vars
- `vector_search` — Semantic HNSW vector search with tenant isolation
- `schema_inspect` — Table/column/index/RLS policy exploration
- Standalone binary: `build/baramcp`
- **Graph Engine Deep Integration** — `CREATE GRAPH` / `DROP GRAPH` DDL with native adjacency list storage
- `GRAPH_TABLE()` SQL function with 7 algorithms: BFS, DFS, PageRank, ShortestPath, Dijkstra, Louvain, Community
- INSERT into `_nodes`/`_edges` tables auto-syncs with native Graph objects
- Optional `MATCH`, `ALGORITHM`, `START`, `END`, `MAXDEPTH` in GRAPH_TABLE syntax
- **Chunking + Embedding Pipeline** — Server-side AI data processing:
- `chunk()` SQL function — text splitting with configurable size/overlap
- `embed_text()` SQL function — calls external embedding API (OpenAI/Ollama compatible)
- Auto-embedding on INSERT — when VECTOR column is null, generates from TEXT column
- Configurable via env vars: `BARADB_EMBED_ENDPOINT`, `BARADB_EMBED_MODEL`, `BARADB_EMBED_API_KEY`
- **LangChain ChatMessageHistory** — Python `BaraDBChatHistory` class:
- Stores conversation threads in relational table with RLS
- Multi-tenant isolation via `tenant_id` + `user_id`
- **RAG Pipeline Example** — End-to-end Python script (`examples/rag_pipeline.py`):
- PDF/text ingestion → chunking → embedding → BaraDB storage → hybrid search → LLM generation
- Supports OpenAI and Ollama APIs
- **AI Agents & NL→SQL** — Server-side LLM integration:
- `nl_to_sql()` SQL function — natural language → SQL generation
- `schema_prompt()` — generates DDL + sample data for LLM context
- Query validation layer — sandbox execution with LIMIT 0 + EXPLAIN
- Self-correction loop — error feedback to LLM for fix
- Configurable via env vars: `BARADB_LLM_ENDPOINT`, `BARADB_LLM_MODEL`, `BARADB_LLM_API_KEY`
- **Graph Similarity & Embeddings**:
- `similarity_nodes()` — Jaccard/Adamic-Adar similarity between node pairs
- `node2vec_embed()` — Random-walk based graph embeddings
- **Cypher Compatibility Layer**:
- `cypher()` SQL function — translates `MATCH (a)-[r]->(b) RETURN ...` to GRAPH_TABLE
- Automatic Cypher → BaraQL conversion
- **German Documentation** — Full documentation set in German (`docs/de/`)
### Changed
- Graph executor upgraded from stub to real BFS/DFS/PageRank/Dijkstra/Louvain execution
- ExecutionContext extended with `graphs`, `embedder`, `llmClient` fields
- Graph engine extended with `addNodeWithId`, `addEdgeWithId`, Jaccard, Adamic-Adar, node2vec
## [1.1.0] — 2026-05-13