---
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"]
params:
  - name: rule
    desc: "expresión SQL con campos bare (sin prefijo) a reescribir como json_extract"
  - name: jsonColumn
    desc: "nombre de la columna JSON donde extraer los valores"
output: "expresión SQL reescrita con json_extract para cada campo bare"
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.
