Bugfix/bug and performance fixes - #88
Merged
Merged
Conversation
Critical fixes: - Fix UnsupportedOperationException from unmodifiable lists (DbSeedSettingsComponent, SeedDialog) - Fix Integer/Long overflow in ValueGenerator for MAX_VALUE boundary cases - Fix null FK values on NOT NULL columns causing constraint violations - Fix rs.getInt() returning 0 for NULL in SchemaIntrospector (scale/length) - Fix EDT blocking I/O in SeedDatabaseAction file save - Fix parentheses stripping corrupting string literals in check constraints - Fix SQL Server asymmetric quote characters ([/]) in AbstractDialect - Fix single-row INSERT statements ignoring dialect templates - Fix race condition in DriverLoader atomic file write and LOADED_DRIVERS - Fix Ollama ping blocking all settings saves (now non-blocking warning) - Fix DriverSelectionDialog leaking BigQuery project ID in logs Thread safety & data integrity: - ConcurrentHashMap for Table caches and DataGenerator usedUuids - Defensive copies in DbSeedSettingsState, CircularReferencesPanel, PkUuidSelectionDialog - Collectors.toMap merge function to prevent IllegalStateException - Null guards in DbSeedSettingsConfigurable, ForeignKeyResolver depths map - Thread-safety documentation for Row class Data generation fixes: - Normalize column names in repetition rules for case-insensitive matching - Remove null parseValues from NOT NULL columns to allow regeneration - Integer overflow protection in fillRemainingRows (LongStream) - AI retry loop exhaustion warning log - Soft-delete null/"NULL" literal handling with raw string fallback SQL & dialect improvements: - Detect DB2, Derby, Hive, HSQLDB, BigQuery in DialectFactory - Oracle constraint scripts with DBMS_ASSERT.ENQUOTE_NAME - SQL Server: replace sp_msforeachtable with explicit cursor + QUOTENAME - PostgreSQL: document ALTER TABLE DISABLE TRIGGER alternative - SchemaDsl SQL injection protection for string default values - SqlGenerator null/empty data guard and PendingUpdate empty map skip UI improvements: - Add discreet version label (reads from PluginManager) on all dialogs - Fix SchemaDesigner SwingWorker crash hanging IDE (try/finally dispose) - Fix SchemaDesigner duplicate table names (case-insensitive check) - Fix RepetitionRulesPanel null parent table and Integer cast ClassCastException - Fix DriverSelectionDialog JTextField width based on title length - Fix ProgressTracker fraction overflow (Math.max(0.0, ...)) Resource lifecycle: - Add PluginLifecycleListener to deregister drivers and shutdown executors - SchemaIntrospector stripParensOutsideStrings for quote-aware paren removal - ConstraintParser AND regex word boundaries and OR detection fix - ForeignKey empty columnMapping validation - GenerationConfig compact constructor validation (rowsPerTable, numericScale) - PendingUpdate null check on table name Docker compose: - Switch to official postgres:16 and mysql:8.0 images - Add healthchecks for PostgreSQL and MySQL - Make SQLite init idempotent with .initialized flag - Fix init script paths and volume mounts
Bug fixes in ForeignKeyResolver:
- Collect PK values before nullifying FK columns in PendingUpdate
creation (both handleCircularReferences and resolveSingleForeignKey),
preventing null PK values in UPDATE WHERE clauses when FK columns
overlap with PK columns (junction tables)
- Skip circular FKs in generatePotentialFkValues so handleUniqueFkResolution
does not overwrite values set by handleCircularReferences
- Log warning instead of silently discarding values when multiple FKs
map to the same column in generatePotentialFkValues
Replace deprecated PluginManager.getPlugin() with PluginManagerCore.getPlugin()
in ComponentUtils.
Add 9 tests for composite FK scenarios: deferred mode, pending update
PK preservation, uniqueOnFk, self-referencing composite FK (close cycle
and null termination), non-deferred cycle, mixed nullability, topological
sorter deferred detection, and introspector column mapping values.
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.