Skip to content

feat: extract import into plugin system#241

Merged
datlechin merged 2 commits intomainfrom
feat/import-plugin-system
Mar 9, 2026
Merged

feat: extract import into plugin system#241
datlechin merged 2 commits intomainfrom
feat/import-plugin-system

Conversation

@datlechin
Copy link
Owner

Summary

  • Extract SQL import from hardcoded ImportService into the plugin architecture, mirroring the export plugin system exactly
  • Add 5 new protocols/types in TableProPluginKit: ImportFormatPlugin, PluginImportDataSink, PluginImportSource, PluginImportProgress, and import result/error types
  • Create SQLImportPlugin as the first .tableplugin import bundle (SQL files + .gz)
  • Replace ImportDialog with plugin-aware UI: format picker, plugin-provided options, dynamic file type filtering
  • Extract ProgressUpdateCoalescer from ExportService as shared utility for both export and import

Test plan

  • Open Import dialog — SQL format shown, plugin options (transaction wrap + FK checks) visible
  • Select .sql file — preview renders, statement count updates
  • Select .sql.gz file — decompression + preview works
  • Click Import — progress dialog shows, statements execute, success dialog appears
  • Cancel mid-import — rollback executes, error view shows cancellation
  • Verify query history records import (success and failure cases)
  • Disable SQLImportPlugin in Settings > Plugins — verify Import dialog shows no formats
  • Export still works unchanged (CSV, JSON, SQL, XLSX, MQL formats)

@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@datlechin datlechin merged commit f961a21 into main Mar 9, 2026
2 checks passed
@datlechin datlechin deleted the feat/import-plugin-system branch March 9, 2026 17:33
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