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:
@@ -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.
|
||||
Reference in New Issue
Block a user