Handling Case-Sensitive Column Names in Views #1904
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem:
When converting Oracle views using Ora2Pg, column names enclosed in double quotes ("") are not handled correctly.
This leads to:
Loss of case sensitivity.
Missing double quotes in column names.
Incorrect parsing of column names containing dots ("."), e.g., "Employee. ID".
Example:
Oracle Input:
CREATE OR REPLACE VIEW emp_view (
"Employee. ID",
"Employee First Name",
"Employee Last Name",
"Department. ID"
) AS
SELECT employee_id, first_name, last_name, department_id FROM employees;
Ora2Pg Output:
CREATE OR REPLACE VIEW emp_view (employee., employee, employee, department.) AS ...
Solution Implemented:
Updated export_views() to retain double-quoted column names.Used flattening logic to preserve case and special characters.
Added handling in read_trigger_from_file() to correctly parse quoted column names, especially those with dots (".").