You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/architecture.md
+13-4Lines changed: 13 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,10 +9,19 @@
9
9
- Implements the main window, table browser, query editor, and result views using PyQt6 widgets.
10
10
- Separates UI widgets from data access via signal/slot connections.
11
11
3.**Data access layer (`sqliteviewer.database`)**
12
-
- Provides `DatabaseService` for opening SQLite files, listing tables, describing schemas, executing queries, and streaming rows.
12
+
- Provides `DatabaseService` for opening SQLite files, listing tables, describing schemas, executing queries (read and write), and streaming rows.
13
+
- Supports DML (INSERT/UPDATE/DELETE), DDL (CREATE/DROP/ALTER), and TCL (BEGIN/COMMIT/ROLLBACK).
14
+
- Includes query classification (`classify_query`) and destructive operation detection (`is_destructive_query`) with SQL noise stripping for safe keyword matching.
13
15
- Includes pragmatic safeguards (e.g., limiting returned rows) to keep the UI responsive.
14
-
4.**Utility module (`sqliteviewer.resources`)**
16
+
4.**Theme system (`sqliteviewer.theme`)**
17
+
- Manages light/dark theme switching via QSS stylesheets.
-Target platform is Ubuntu 22.04 LTS or newer with Python >= 3.10 preinstalled.
4
-
- End users install the application on desktop environments where X11/Wayland is available for GUI rendering.
5
-
- PyQt6 wheels are acceptable for bundling within the Debian package; no system Qt dependencies are required.
3
+
-Primary target platforms are Ubuntu/Linux (primary development), Windows (confirmed working), and macOS (untested). Python >= 3.10 is required.
4
+
- End users install the application on desktop environments where X11/Wayland (Linux) or native window system (Windows/macOS) is available for GUI rendering.
5
+
- PyQt6 wheels are acceptable for bundling within the Debian package; no system Qt dependencies are required. On Windows, PyQt6 bundles all necessary dependencies.
6
6
- Users operate on local SQLite databases; remote connections are out of scope.
7
7
- Database files are expected to fit in memory for paging 1,000-row chunks; extremely large tables may require streaming in a future iteration.
8
-
-Packaging leverages native Python tooling and `dpkg-deb`; `fpm` or other third-party packagers are not required on target systems.
8
+
-Debian packaging leverages native Python tooling and `dpkg-deb`; `fpm` or other third-party packagers are not required on target systems.
9
9
- CI runs on GitHub-hosted Ubuntu runners with internet access to install Python dependencies.
10
-
-Application internationalization/localization is not required for this release; English-only UI is acceptable.
10
+
-UI is English-only. Japanese documentation (`README_ja.md`) is provided separately.
0 commit comments