feat: funciones core — detect_cycle, generate_id, rewrite_rule

Tres funciones puras para el dominio core: detección de ciclos en grafos
dirigidos (DFS), generación de IDs determinísticos, y reescritura de
reglas con pattern matching.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-30 14:24:00 +02:00
parent c72ae15429
commit b5a6711c64
6 changed files with 239 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
---
name: rewrite_rule
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func RewriteRule(rule, jsonColumn string) string"
description: "Reescribe campos bare en una expresion SQL a llamadas json_extract sobre una columna JSON de SQLite."
tags: [sql, json, sqlite, rewrite, assertion]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: ["regexp"]
tested: false
tests: []
test_file_path: ""
file_path: "functions/core/rewrite_rule.go"
---
## Ejemplo
```go
out := RewriteRule("price > 100 AND status IS NOT NULL", "metadata")
// out = "json_extract(metadata, '$.price') > 100 AND json_extract(metadata, '$.status') IS NOT NULL"
// Si ya tiene json_extract, no modifica nada
out = RewriteRule("json_extract(data, '$.x') > 0", "data")
// out = "json_extract(data, '$.x') > 0"
```
## Notas
Funcion pura. Preserva keywords SQL y funciones SQLite conocidas. Util para construir queries dinamicas sobre columnas JSON en SQLite sin que el usuario tenga que escribir json_extract manualmente.