Published

Carbon SQL · la matriz de VERBOS — dos planos

Connect any source, model it as an ontology, transform it, and operationalize it, analytics, automation and machine learning, under one governed, self-hostable roof. --- Most teams stitch the...

Carbon SQL · la matriz de VERBOS — dos planos

⚙️ ESTE DOCUMENTO SE GENERA

Salida de scripts/duckdb/m6-verb-matrix.ts. Medido: 2026-08-01.

Se miden dos planos, y la diferencia entre ellos es el punto: un verbo que el
motor ejecuta pero que la puerta rechaza no existe para el usuario.

VerboEl MOTOR lo ejecutaLa PUERTAQué significa
DELETEPASAejecutado (no-op)
MERGEPASAejecutado (no-op)
INSERTverb-not-allowedEl SQL Editor no admite "INSERT" sobre una tabla del Warehouse. Admitidos: DELETE · MERGE · UPDATE. Su fuente
UPDATEerror-motorUpdate on a sorted iceberg table is not supported yet. To bypass this guard and write without applying the tab
ALTER ADD COLUMNDDL de tabla: la superficie no lo enruta (no es DML ni gramática de catálogo)
ALTER RENAMElo contesta la GRAMÁTICA DE CATÁLOGO (M3), no el motor: renombra el objeto de Index
CTASunresolved-tableEl destino de escritura "__m6_nueva" no existe en tu Warehouse.

Cómo se leen los rechazos de la puerta

GateQué eje es
verb-not-allowedla lista DML_VERBS_PERMITIDOSel contrato del Warehouse
write-not-enabledel canary por dataset (sql-editor.dml), que es otro eje: no dice nada del verbo
unresolved-tableel destino declarado no existe — es la forma de la puerta, no una prohibición
PASAllegó al motor con destino autorizado

Las sondas de la puerta son no-ops por construcción (WHERE 1 = 0): esta matriz no toca un solo dato. (Sí dejan rastro en el ledger: un DELETE/MERGE que pasa abre y cierra su transacción aunque no cambie una fila.)

Lo que enseña medir DOS planos

El verbo no es el eje. Lo que decide es la tabla y la forma de la sentencia:

  • UPDATE funciona sobre una tabla creada limpia, y sobre las NUESTRAS el motor contesta «Update on a sorted iceberg table is not supported yet»: el guard del SortOrder sobre __row_index sigue vivo en el corpus existente. Se admite igualmente —bloquearlo castigaría a las tablas nuevas por el pasado de las viejas— y el error del motor es cierto y accionable. ⇒ es el beneficio que le faltaba a M7 (jubilar la identidad sintética), que hasta hoy era el único milestone sin uno probado.
  • INSERT no entra, y no por el verbo: su fuente (SELECT … FROM …) no se resuelve, porque el camino de escritura cualifica el DESTINO pero no lo que LEE. El motor recibiría un nombre lógico. Entra cuando la escritura tenga resolución de nombres.
  • CTAS no entra porque nacer es un acto del catálogo (coordenada, tier, gobernanza), y sobre algo que ya existe sería un replace destructivo.

Ninguna de estas tres exclusiones dice ya «pendiente de re-medir». Cada una tiene su motivo, y el motivo está medido.