Conversation
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
…ialog AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
…tion changes AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
…nt, style limit) AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
- Add ROW_FORMATS constant to AbstractContext (empty), MySQLContext and MariaDBContext - Add row_format field to MySQLTable/MariaDBTable; fetched from information_schema - Add convert_data transient flag (compare=False) to control CONVERT TO CHARACTER SET - Fix MySQLTable.alter_collation() signature to accept collation_name (was buggy) - Add alter_row_format() to MySQLTable and MariaDBTable - Wire convert_data and row_format into EditTableModel and MainFrameController - Fix server_version stored as instance attribute in MySQL/MariaDB after_connect AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
Clarify the distinct roles of _parse_type (DDL column string parsing), _get_field_type_name (pymysql type code resolution), and get_result_column_datatypes (query result metadata mapping) in both MySQL and MariaDB contexts. AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
Includes pending UI changes (views, fbp layout, database_options controller, settings, dataview, PostgreSQL/SQLite context updates). AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
…d string literals AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
AI-Assisted-By: Cline AI-Contribution: 80% Tracked-By: CodeShield AI
Pass None to _build_database_clauses() when _changed_fields is empty, allowing the method to check all fields instead of skipping them. This ensures consistent behavior across all database engines.
Relocate test files from tests/ to tests/core/ for better organization: - test_column_controller.py -> tests/core/ - test_configurations.py -> tests/core/ - test_connections.py -> tests/core/test_connections_repository.py - test_session.py -> tests/core/ (with additional tests) - test_engines_init.py -> tests/core/ - test_observables.py -> tests/core/
Delete obsolete test files that were moved to tests/core/: - tests/test_column_controller.py - tests/test_configurations.py - tests/test_connections.py - tests/test_engines_init.py - tests/test_observables.py - tests/test_session.py Add tests/autocomplete/__init__.py for package structure.
Replace --suite/--update/--refresh-screenshots flags with subcommands: - unit: run tests/core/ - autocomplete: run tests/autocomplete/ - integration: run integration tests - ui: run UI tests with screenshot refresh Default behavior (no args) now runs all tests and updates README badges.
- Fix _on_current_index to use m_toolBar12.EnableTool() instead of btn_delete_index.Enable() - Fix _on_current_foreign_key to use m_toolBar121.EnableTool() instead of btn_delete_foreign_key.Enable() - Remove unused btn_delete_procedure.Enable() call - Fix capture_window_screenshot to use str(target_path) for SaveFile()
…gids - Replace header-prepend + pybabel update with pybabel init for new catalogs - Add --ignore-obsolete to pybabel update so re-activated strings don't produce a duplicate entry alongside their stale #~ counterpart - Remove dead code: generate_header(), get_project_info(), shutil, toml, datetime imports msgfmt 0.23.1 now errors on msgid present in both active and #~ sections.
…de, update i18n strings, add tests - _is_connection_lost(): PyMySQL OperationalError now only returns True for known disconnect codes (2006/2013/2055) or disconnect message fragments; ordinary SQL errors (1045, 1049, 1064, etc.) propagate without triggering reconnect. - psycopg2 OperationalError: True only when pgcode is None (network-level); server-side SQL errors (pgcode set) are no longer treated as lost connections. - Add _PYMYSQL_DISCONNECT_CODES and _PYMYSQL_DISCONNECT_FRAGMENTS module-level constants for clarity and test coverage. - windows/main/controller.py: replace Italian hard-coded strings in the connection-lost dialog with proper English _() calls; update .pot/.po/.mo for all supported locales. - tests/engines/test_connection_lost.py: expand parametrize table with negative cases (non-disconnect codes, pgcode-bearing OperationalError), add standalone unit tests for the new detection rules, and add QueryExecutor concurrency-guard integration tests.
- executor.py: execute_statements() returns early with a warning if _current_thread is already alive, preventing double-execution on rapid repeated Run actions. - controller.py: QueryEditorController.run_statements() checks executor.is_running() and returns early before resetting UI state, so the progress bar and cancel button are not disturbed by a no-op call.
…LTable API structures/engines/database.py: - Remove misplaced abstract create/drop/alter stubs from SQLTable (they belong on SQLIndex); the concrete methods were already on SQLIndex. structures/engines/sqlite/database.py: - SQLiteIndex.create(): return True (success) when raw_create() returns an empty string (implicit PK or auto-generated UNIQUE) instead of False. - SQLiteIndex.drop(): return True for PRIMARY or sqlite_autoindex_ UNIQUE indexes instead of False; dropping a non-existent or implicit index is a successful no-op, not an error. - Add SQLiteIndex.alter(original_index): drops the original then creates self; replaces the old modify() implementation. - Keep modify() as a backward-compatibility shim delegating to alter().
- PeterSQL.fbp: new SplashScreen frame (640×480, wxSTAY_ON_TOP|wxFRAME_NO_TASKBAR) with a large logo bitmap and a horizontal gauge, designed in wxFormBuilder. - windows/views.py: generated SplashScreen wx.Frame view class. - windows/splash.py: SplashController wraps the generated view; Show() centres the splash, start_close(on_done) runs a brief animated gauge fill on a timer then hides the splash and calls the on_done callback (e.g. main_frame.Show). - main.py: open_main_frame() creates and shows the SplashController before constructing the heavy MainFrameController; the main frame is revealed via the on_done callback; error path destroys the splash if present. - screenshot/: refresh connection-dialog and main-window screenshots.
Replace numeric connection.id with a dedicated secret_id (UUID) as the keyring lookup key. Existing entries stored under numeric IDs are migrated on first load and re-keyed automatically.
…ration Update existing assertions to use secret_id-based keyring keys; add test_load_migrates_legacy_numeric_keyring_ids and test_save_connection_persists_uuid_secret_id.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.