Skip to content

Duckdb#19

Merged
stonebig merged 9 commits into
masterfrom
duckdb
Jul 13, 2026
Merged

Duckdb#19
stonebig merged 9 commits into
masterfrom
duckdb

Conversation

@stonebig

Copy link
Copy Markdown
Owner

No description provided.

stonebig and others added 9 commits July 12, 2026 17:49
- Baresql accepts engine=duckdb; guessed from .duckdb/.ddb extension
- menu entry for in-memory DuckDB db; .duckdb filter in file dialogs
- backup/restore via COPY FROM DATABASE; iterdump rebuilt from
  duckdb_tables()/duckdb_views()/duckdb_indexes(); pydef registered
  with VARCHAR types; db tree fed from duckdb catalog functions
- guard DuckDB quirks: no isolation_level, PRAGMA table_info raising
  on missing table, DDL statements having a cursor description
- typed columns in guessed CREATE TABLE (headerless csv import)
- sqlite3 remains the default engine; duckdb module stays optional
- new tests (auto-skip when duckdb missing); CI installs duckdb+numpy

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
py_fib(6) failed : DuckDB does not implicitly cast arguments to a
VARCHAR-typed UDF. Now a fully type-annotated pydef is registered
natively, and an annotation-less one is registered behind an
auto-casting macro whose wrapper restores numeric arguments,
mimicking SQLite dynamic typing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Opens once per session when a DuckDB database is first created or
opened in the GUI; shows DuckDB-valid SQL (typed columns, single
quotes, no SAVEPOINT), pydef variants and DuckDB goodies. When
launched with -db on a .duckdb file, it replaces the SQLite demo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- every instruction of a run is recorded in a single "Logs" result tab
  (N°, Time, Result, Status, Instruction), so DDL/DML/pydef/dot-commands
  no longer spawn one tab each and silent statements become visible
- data grids keep their own tabs, now titled "Qry_<n>" where <n> is the
  matching record N° in the Logs tab
- "Logs" and "Dump" tabs are pinned to the left of the results notebook
- DuckDB synthetic 'Count'/'Success' resultsets of DDL/DML are logged as
  "n rows affected" instead of gridded (genuine queries keep grids)
- window title and db-tree main node now show the engine (SQLite/DuckDB)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The tree used the column name as Tk item id, so refreshing crashed with
'Item ... already exists' on views repeating a column name (e.g. the
DuckDB demo view v1 joining item and part, both having 'Description') --
which also prevented attached databases from ever appearing in the tree.
SQLite masked the issue by auto-renaming duplicate view columns; DuckDB
keeps them. Use the column position in the item id instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- new title 'a graphic SQLite and DuckDB Client in 1 Python file' in the
  window title, about box, argparse help, pyproject and README
- HISTORY.rst : changelog entry for v0.14.0 'Quack me up !'
- regenerate both README screenshots : the GUI one now shows the DuckDB
  engine, the Logs tab and the numbered Qry result tabs; the command-line
  one shows the current -h output (with the DuckDB -db hint)
- results grid : add a little padding to auto-sized column widths, and
  show '0 rows affected' (not blank) for DuckDB DDL statements

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SQLite-engine welcome demo like before, now with the engine-branded
title and database tree, and the Welcome + DuckDB Memo tabs visible.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@stonebig stonebig merged commit afd9fce into master Jul 13, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant