Repository navigation
v0.9.0 #28
Peter-L-SVK
started this conversation in
General
v0.9.0
#28
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What's New in v0.9.0
Multi-Tab SQL Editor
The single editor has been replaced with a full multi-tab editing experience:
be reordered by dragging within the notebook.
confirmation dialog on window close or File > Quit.
workspace survives application restarts.
names, and column names as you type. Can be toggled on/off in Preferences.
whole-word toggle (ab|), previous/next navigation (Shift+F3 / F3), single replace,
and Replace All. All search operations now respect both toggles consistently.
Schema Designer Pro
The visual schema designer received a major upgrade with professional drawing capabilities:
Drawing Engine
multiple CPU cores using the worker pool's ProcessPoolExecutor. Python's GIL is
bypassed so the UI remains fully responsive during routing. Results stream back via
GLib.idle_add for smooth canvas updates.
clean arc jumps where lines cross. Waypoints for each FK pair are computed concurrently.
relationship line to toggle its direction — cardinality labels swap automatically
(1 at source, N at target).
Interaction & Editing
changes, and column edits. Standard Ctrl+Z / Ctrl+Shift+Z shortcuts.
schemes or pick a custom color. Active table has a distinct highlight border.
Analytics Engine & AI Tools
A new Polars-based analytics subsystem powers both AI-assisted analysis and interactive
data exploration:
9 AI analyzers: schema quality scoring, index recommendation, query plan analysis,
table growth prediction, dead tuple monitoring, and more — all running on Polars
DataFrames for performance.
Right-click analytics menu: right-click any table or view in the database browser
to run statistical analysis:
Smart column detection automatically skips surrogate keys (id, serial, *_id) and
prefers NUMERIC/REAL types over INTEGER. NULL values are handled gracefully across
all functions.
SSH Tunnel
Full SSH tunnel implementation replaces the v0.8 stub. Connect to remote PostgreSQL
servers through SSH with password or key-based authentication. A single tunnel
connection is reused across queries to minimize overhead.
Built-in Terminal
A VTE-based terminal is embedded in the application with customizable colors and
fonts. Correct spawn arguments support bash, zsh, and fish shells out of the box.
The
vte291-gtk4package is now a required dependency.New Hooks
presets (e-commerce, weather, users, logs). Multi-CPU support for generating
millions of rows across worker processes.
Keboola data platform, handling column naming conventions and type mapping.
Code Quality & CI/CD
and DEB build (Debian/Ubuntu).
Refactoring
The codebase has been reorganized into modular packages for maintainability:
results.pysplit intosrc/ui/results/with a separate themes module forUnicode box-drawing table formatting.
window.pysplit intosrc/ui/window/with mixins for browser panel, statusbar, and menu-building concerns.
src/ui/editor/with separateeditor_tabs.pycontainer and
editor_tab.pyindividual tab classes.src/ui/schema_designer/with decomposed mixinsfor FK drawing, path routing, undo/redo, and interaction.
Preferences
confirm_closepreference now wired to actual close behavior — disable to skipthe unsaved changes dialog.
Bug Fixes
Find and Replace
was enabled, the navigation pass (F3 / Shift+F3) used GTK's built-in search
which only filtered by case sensitivity, ignoring word boundaries entirely.
The cursor would jump to partial matches (e.g. "ordering" when searching
"order") while only the substring was highlighted, creating visual inconsistency.
Navigation is now backed by the same
\b<word>\bregex used for highlighting.previously substituted partial matches regardless of the toggle. It now wraps
the pattern with
\bboundaries when whole-word is active.to remove it" warnings no longer appear in terminal output. The debounce ID is
now consumed inside the timeout callback and cleared after cancellation,
preventing attempts to remove already-fired GLib source IDs.
Database Browser
warnings and phantom input grabs by claiming event sequences via
Gtk.EventSequenceState.CLAIMED after popup().
context menu dismisses it cleanly, and removed unparent() calls that
corrupted GTK4's internal widget tree during teardown.
Python button attributes to prevent wrong func_id dispatch across the
GLib.idle_add C extension boundary.
NOT LIKE '%%\_id'so the LIKE pattern reaches PostgreSQL correctly insteadof being misinterpreted as a parameter placeholder.
right-click gesture bound to button 3. Previously the left-click gesture
was incorrectly firing on right-clicks as well.
before indexing, preventing IndexError on malformed query results.
Schema Designer
each routing batch instead of accumulating across redraws.
empty canvases, and FK selection when tables overlap all no longer crash.
arrowheads always point in the visually correct direction.
the target, matching FK semantics.
Data Safety
db_connector.execute_syncnow setsconn.autocommit = Trueto prevent implicit transaction blocks from holding locks.
Upgrading from v0.8.0
No database migration needed. The
vte291-gtk4andparamikopackages are newdependencies. Settings and hook results in
~/.config/sql-schema-studio/areforward-compatible.
What's Changed
Full Changelog: v0.8.0...v0.9.0i
What's Changed
Full Changelog: v0.8.0...v0.9.0
This discussion was created from the release v0.9.0.
All reactions