The wizard previously required picking a single source table; modules whose entry point is arbitrary SQL (CTEs, joins, computed columns) didn't fit. Add a "write SQL" path alongside "browse a table": - Driver.introspect_query_columns + _zero_row_wrap discover a query's result columns by running it with ~no rows. Generic wrap is a derived table with WHERE 1=0; DB2 appends FETCH FIRST 1 ROW ONLY (DB2 for i forbids WITH inside a nested table expression). - /wizard/sql + POST /wizard/sql/columns seed the column-mapping grid; dest types default to text (no result-set type metadata over jrunner CSV). - wizard_step3.html grows a sql_mode branch (array-named inputs, query shown verbatim, no column unchecking); wizard_create branches on entry_mode. Verified end-to-end against a live DB2 for i connection, including a top-level CTE query. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .archive/pre-rewrite | ||
| bin | ||
| pipekit | ||
| systemd | ||
| .gitignore | ||
| CLAUDE.md | ||
| config.yaml | ||
| deploy.sh | ||
| requirements.txt | ||
| SPEC.md | ||