---
name: Op
lang: cpp
domain: core
version: "1.0.0"
algebraic: sum
definition: |
  enum class Op {
      Eq, Neq, Gt, Gte, Lt, Lte,
      Contains, NotContains, StartsWith, EndsWith
  };
description: "Operador de filtro TQL. 6 ops de comparacion + 4 ops de string. Numericos ordenan numericamente cuando ambos lados parsean."
tags: [tql, filter, operator, sum-type]
uses_types: []
file_path: "cpp/functions/core/data_table_types.h"
---

## Notas

Tabla operadores permitidos por `ColumnType` via `ops_for_type(t)`:

| Tipo | Ops |
|---|---|
| Int / Float / Date | Eq, Neq, Gt, Gte, Lt, Lte |
| Bool | Eq, Neq |
| Json | Eq, Neq, Contains, NotContains |
| String | Eq, Neq, Contains, NotContains, StartsWith, EndsWith |

Mapeo SQL en `tql_to_sql_cpp_core`: Contains → `LIKE '%v%'`, StartsWith → `LIKE 'v%'`, etc.

## Usado por

- `Filter_cpp_core`
- `compute_stage_cpp_core` (via apply_filters)
- `tql_emit_cpp_core` / `tql_apply_cpp_core`
- `tql_to_sql_cpp_core`
