--- name: duckdb_open kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func DuckDBOpen(path string) (*sql.DB, error)" description: "Abre (o crea) una base de datos DuckDB. Path vacio o ':memory:' abre una base en memoria." tags: [database, duckdb, connection, sql, analytics, pendiente-usar] uses_functions: [] uses_types: [db_config_go_infra] returns: [] returns_optional: false error_type: "error_go_core" imports: ["database/sql", "github.com/marcboeker/go-duckdb"] params: - name: path desc: "ruta del archivo DuckDB o vacio/:memory: para base en memoria" output: "conexion sql.DB abierta a DuckDB" tested: false tests: [] test_file_path: "" file_path: "functions/infra/duckdb/duckdb_open.go" --- ## Ejemplo ```go // In-memory para analisis temporal db, err := DuckDBOpen("") if err != nil { log.Fatal(err) } defer DBClose(db) rows, err := DBQuery(db, "SELECT * FROM read_parquet('/data/sales.parquet')") ``` ## Notas Usa el driver `github.com/marcboeker/go-duckdb` (CGO). DuckDB es una base de datos OLAP embebida, ideal para analisis de datos. Path vacio equivale a `:memory:`. Hace ping al abrir para detectar errores temprano.