Skip to content

Bugfix/bug and performance fixes - #88

Merged
luisppb16 merged 3 commits into
mainfrom
bugfix/Bug-and-performance-fixes
May 15, 2026
Merged

Bugfix/bug and performance fixes#88
luisppb16 merged 3 commits into
mainfrom
bugfix/Bug-and-performance-fixes

Conversation

@luisppb16

Copy link
Copy Markdown
Owner

No description provided.

luisppb16 added 3 commits May 15, 2026 20:41
  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.
@luisppb16
luisppb16 merged commit ab7ac89 into main May 15, 2026
2 checks passed
@luisppb16
luisppb16 deleted the bugfix/Bug-and-performance-fixes branch May 15, 2026 20:02
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