Skip to Content
Back to templates
// Template · Governance

RDBMS Impact + SQL Parser

A column change impact report that catches every database reference across your entire Hop project — both explicit metadata references and table names buried inside SQL text. Run it before any schema change.

Uses RDBMS Impact SQL Parser
Governance Data Quality Impact Analysis Schema Changes Putki plugins
Get access
Apache Hop pipeline (.hpl)
Available to Putki subscribers
Pipeline structure
get-hop-files
GetFileNames
Putki
Putki
scan-hop-project
RDBMS Impact
has-explicit-table
FilterRows
select-metadata-fields
SelectValues
add-source-metadata
Constant · METADATA
Append streams
Append
write-impact-report
TableOutput
B · sql text
select-sql-fields
SelectValues
Putki
Putki
parse-transform-sql
SQL Parser
filter-empty-parsed
FilterRows
add-source-sql
Constant · SQL
How it works

RDBMS Impact scans the project and catches explicit table references — transforms where the table is configured directly in the metadata. But it misses table names buried inside SQL text. SQL Parser handles exactly that: it parses the SQL statically and extracts every schema, table, and column referenced. Together they cover the complete surface area of your project's database dependencies.

Requires RDBMS Impact and SQL Parser. Both are Putki plugins — not available in the open-source Apache Hop distribution. A Putki subscription is required to run this template.
1
List all pipeline and workflow files
get-hop-files scans ${PROJECT_HOME} recursively and returns one row per .hpl and .hwf file found. Each file path is passed downstream to the RDBMS Impact scanner.
2
Scan each file for database references
scan-hop-project (RDBMS Impact) reads every transform and action in each file and emits one row per database reference found — table, connection, schema, item name, and the raw SQL text when available.
3
Split into Stream A and Stream B
has-explicit-table routes rows with a table name defined directly in metadata to Stream A. Rows where the table field is null — but the transform has embedded SQL — go to Stream B for parsing.
4
Stream A — tag explicit references
Fields are renamed for consistency (schema → schema_name, table → table_name, filename → object_name) and a source = METADATA tag is added to every row.
5
Stream B — parse the embedded SQL
parse-transform-sql (SQL Parser) reads the sql_text field and extracts every schema, table, and column referenced. It doesn't execute the SQL — it parses it statically. Rows where parsing returns no table are dropped by filter-empty-parsed. A source = SQL tag is added to the remaining rows.
6
Merge and write
Both streams are appended into a single output and written to public.column_change_impact. The table is truncated on every run, so the report always reflects the current state of the project.
Querying the report

Run this before renaming, dropping, or changing any column. An empty result means the change is safe. If it returns rows, you have a list of every pipeline, transform, and source type that will be affected.

SELECT object_name, item_name, item_type, source
FROM   public.column_change_impact
WHERE  table_name  = 'customers'
  AND  column_name = 'email'
ORDER BY source, object_name;
Output fields — column_change_impact
FieldDescriptionSource
connectionName of the database connection in the Hop project metadataBoth
schema_nameDatabase schema (e.g. public), if specifiedBoth
table_nameThe table or view being referencedBoth
column_nameColumn referenced inside the SQL statementSQL only
object_nameFull path of the .hpl or .hwf file containing the referenceBoth
object_typeWhether the file is a Pipeline or a WorkflowBoth
item_nameName of the specific transform or action inside the pipelineBoth
item_typeTransform type — e.g. TableInput, Execute SQLBoth
sql_textThe raw SQL text found in the transform configurationSQL only
source for explicit table refs · SQL for parsed SQL textBoth
What you need
·
Putki subscription
RDBMS Impact and SQL Parser are Putki plugins. Both must be present in your distribution to run this pipeline.
·
A PostgreSQL connection named postgres
Configure a connection with this name in your Hop project metadata, or update write-impact-report to point to your connection and schema.
·
The output table created in advance
Run the DDL included in the download to create public.column_change_impact before the first execution. The pipeline truncates and rewrites it on every run.
Details
Type
Pipeline

File
rdbms-impact-sql-parser.hpl

Transforms
10

Putki version
Any (requires RDBMS Impact + SQL Parser plugins)

Created
June 5, 2026
Configuration
PROJECT_HOME
Set automatically from your Hop project configuration. All .hpl and .hwf files under this path are scanned.
Connection
Database connection named postgres must exist in project metadata. Update write-impact-report to use a different connection name.
Output table
Writes to public.column_change_impact. Truncates on every run.
Use case
Run before renaming a column, dropping a table, changing a data type, or migrating a connection. Know what breaks before you make the change — not after.
When to run
On demand, before any schema change. Optionally scheduled weekly to keep a current snapshot of all database dependencies in your project.