Skip to content

Tighten DuckDB SQL handling#16

Open
Dagalon wants to merge 3 commits into
developfrom
codex/limpiar-comentarios-en-duckdb
Open

Tighten DuckDB SQL handling#16
Dagalon wants to merge 3 commits into
developfrom
codex/limpiar-comentarios-en-duckdb

Conversation

@Dagalon

@Dagalon Dagalon commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Motivation

  • El código de DuckDB contenía comentarios y referencias a SQLite y prácticas peligrosas que daban sensación de código sin pulir.
  • KeeperRegisterIdDataBase.DeleteRegister podía lanzar al indexar cuando el id no existía porque usaba IndexOf sobre la lista de valores.
  • Algunas consultas se construían por concatenación/interpolación sin usar QuoteIdentifier, y la sustitución de "parámetros" en ExecuteQryReader hacía string.Replace, lo que no es seguro.
  • El proyecto referenciaba Microsoft.Data.Sqlite en el .csproj de DuckDB en lugar de DuckDB.NET.Data.Full.

Description

  • Actualicé comentarios XML y documentación interna para referirse correctamente a DuckDB en ConnectionManager.cs.
  • Hice DeleteRegister tolerante a ids ausentes buscando la clave con FirstOrDefault(...) y eliminando solo si existe.
  • Apliqué DuckTools.QuoteIdentifier de forma consistente a identificadores de base de datos, tablas y alias (CreateTable, CreateParquetTable, ATTACH) y protegí definiciones de columnas al quotear nombres de columnas.
  • Reemplacé la sustitución insegura de parámetros por parámetros reales en QueryExecutor.ExecuteQryReader usando cmd.CreateParameter() y cmd.Parameters.Add(...), y añadí using para DuckDBCommand/IDataReader donde correspondía.
  • Cambié el override de paquete en DuckDB-Memory-Lib.csproj para usar DuckDB.NET.Data.Full.
  • Añadí pruebas de regresión en DuckDB-Memory-Tests para cubrir la eliminación de registros inexistentes, el quoting de identificadores con espacios y la ejecución con parámetros que contienen comillas.

Testing

  • Ejecuté git diff --check para validar el diff y no se reportaron problemas.
  • Intenté ejecutar dotnet test DuckDB-Memory-Tests/DuckDB-Memory-Tests.csproj --no-restore pero dotnet no está disponible en el entorno, por lo que las pruebas unitarias añadidas no pudieron ejecutarse aquí.
  • Se añadieron pruebas en DuckDB-Memory-Tests/T_DuckTools.cs y DuckDB-Memory-Tests/T_Execute_Queries.cs para cubrir los cambios (no ejecutadas localmente debido a la ausencia de dotnet).

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant