{% extends "base.html" %} {% set section = "modules" %} {% block title %}New module — step 3{% endblock %} {% block content %} {% include "_wizard_steps.html" %}
Step 3 — {% if sql_mode %}map columns & configure merge{% else %}choose columns & configure merge{% endif %} {{ qualified_table }} {% if sql_mode %} ← edit SQL {% else %} ← different table {% endif %}
{% if fetch_error %}
{{ fetch_error }}
{% endif %}
{% if dest_warn %}
Dest table {{ dest_warn.qualified }} already exists on the default destination. If you proceed, pipekit will not drop or recreate it — your picks below (dest names) must match the existing columns, or the create will fail. Existing columns: {{ dest_warn.columns|join(', ') }}
{% endif %} {% if not fetch_error %}
{% if sql_mode %} {% else %} {% for k, v in qvals.items() %} {% endfor %} {% endif %}
Columns {% if sql_mode %} {{ columns|length }} from the query — all created; types default to text {% else %} {{ columns|length }} total — uncheck to exclude {% endif %}
{% if not sql_mode %}{% endif %} {% if not sql_mode %} {% endif %} {% if sql_mode %} {% for c in columns %} {% endfor %} {% else %} {% for c in columns %} {% endfor %} {% endif %}
# source namesource type null?dest name dest type description
{{ c.position }} {{ c.name }}
{{ c.position }} {{ c.name }} {{ c.type_raw }} {{ 'Y' if c.nullable else 'N' }}
Module
Destination
Merge
Source query {% if sql_mode %} runs verbatim at run time {% else %} auto-generated from picks — edit to add WHERE clause {% endif %}
{% if sql_mode %} Edit if needed. {name} placeholders resolve from watermarks at run time. {% else %} Leave blank to auto-generate. Add WHERE col > {name} for incremental filtering. {% endif %}
Create
cancel
{% endif %} {% endblock %}