ARCHIVED TRAINING / reata/sqllineage
reata__sqllineage-550
This is a preserved training example. Membership in the current training wave has not been verified.
Problem statement
Column lineage does not traverse through CTE containing uppercase letters
For SQL code with a CTE, column lineage is ending at the CTE and not traversing through to the source tables or expressions referenced in the CTE.
For example, I have the following code in test.sql:
```sql
WITH EmployeeDepartmentCTE AS (
SELECT
E.EmployeeName,
D.DepartmentName
FROM Employees AS E
INNER JOIN Departments AS D
ON E.DepartmentID = D.DepartmentID
)
INSERT INTO EmployeeDepartment
SELECT
EmployeeName,
DepartmentName
FROM EmployeeDepartmentCTE;
```
When I run the following command I get the subsequent output:
```shell
sqllineage -f test.sql -l column
```
output:
```
<default>.employeedepartment.departmentname <- <default>.employeedepartmentcte.departmentname
<default>.employeedepartment.employeename <- <default>.employeedepartmentcte.employeename
```
expected output:
```
<default>.employeedepartment.departmentname <- <default>.department.departmentname
<default>.employeedepartment.employeename <- <default>.employee.employeename
```
**Python version:**
- 3.12.1
**SQLLineage version:**
- 1.4.9
**Additional context**
If there are multiple CTE's with one referencing another, the lineage stops at the first CTE.
## Hints:
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Comparison is base [(`fcea36b`)](https://app.codecov.io/gh/reata/sqllineage/commit/fcea36bc8ec703fda9eb52674ff2be7b6b3130b4?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) 99.49% compared to head [(`cfb5d2c`)](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) 99.49%.
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #550 +/- ##
=======================================
Coverage 99.49% 99.49%
=======================================
Files 41 41
Lines 2196 2197 +1
=======================================
+ Hits 2185 2186 +1
Misses 11 11
```
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None).
Training membership
opd_e4b_pure_v6a opd_e4b_pure_v6b
Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.
Task and snapshot provenance
Snapshot captured 2026-11-12T17:06:59.476467+00:00 · Autoresearch-Arena/gemma-4-developer-agent
{
"datasets": [
"opd_e4b_pure_v6a",
"opd_e4b_pure_v6b"
],
"examples": 4,
"instance_id": "reata__sqllineage-550",
"problem_statement": "Column lineage does not traverse through CTE containing uppercase letters\nFor SQL code with a CTE, column lineage is ending at the CTE and not traversing through to the source tables or expressions referenced in the CTE.\r\n\r\nFor example, I have the following code in test.sql:\r\n\r\n```sql\r\nWITH EmployeeDepartmentCTE AS (\r\n SELECT\r\n E.EmployeeName,\r\n D.DepartmentName\r\n FROM Employees AS E\r\n INNER JOIN Departments AS D\r\n ON E.DepartmentID = D.DepartmentID\r\n)\r\n\r\nINSERT INTO EmployeeDepartment\r\n\r\nSELECT\r\n EmployeeName,\r\n DepartmentName\r\nFROM EmployeeDepartmentCTE;\r\n```\r\n\r\nWhen I run the following command I get the subsequent output:\r\n```shell\r\nsqllineage -f test.sql -l column\r\n```\r\n\r\noutput:\r\n```\r\n<default>.employeedepartment.departmentname <- <default>.employeedepartmentcte.departmentname\r\n<default>.employeedepartment.employeename <- <default>.employeedepartmentcte.employeename\r\n```\r\n\r\nexpected output:\r\n```\r\n<default>.employeedepartment.departmentname <- <default>.department.departmentname\r\n<default>.employeedepartment.employeename <- <default>.employee.employeename\r\n```\r\n\r\n**Python version:**\r\n - 3.12.1\r\n \r\n**SQLLineage version:**\r\n - 1.4.9\r\n\r\n**Additional context**\r\nIf there are multiple CTE's with one referencing another, the lineage stops at the first CTE.\n\n## Hints:\ncodecov[bot]: ## [Codecov](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`fcea36b`)](https://app.codecov.io/gh/reata/sqllineage/commit/fcea36bc8ec703fda9eb52674ff2be7b6b3130b4?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) 99.49% compared to head [(`cfb5d2c`)](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) 99.49%.\n\n\n<details><summary>Additional details and impacted files</summary>\n\n\n```diff\n@@ Coverage Diff @@\n## master #550 +/- ##\n=======================================\n Coverage 99.49% 99.49% \n=======================================\n Files 41 41 \n Lines 2196 2197 +1 \n=======================================\n+ Hits 2185 2186 +1 \n Misses 11 11 \n```\n\n\n\n</details>\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/reata/sqllineage/pull/550?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None).",
"repo": "reata/sqllineage",
"source": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
"source_sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
}{
"captured_at": "2026-11-12T17:06:59.476467+00:00",
"membership": "archived training",
"membership_evidence": "Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.",
"name": "Preserved post-training task archive",
"source": "Autoresearch-Arena/gemma-4-developer-agent",
"source_revision": "016496de222aaafca0d4ee4c18efc63ba616f76e",
"sources": [
{
"path": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
"sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
},
{
"path": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
"sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
},
{
"path": "v2/experiments/train_data/opd_e4b_onpolicy_v3/verified_rft_messages.jsonl",
"sha256": "960c680e797e823a0d3a22f4b1d5ef60a72971373d703b877340b0c9126aaf68"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
"sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
"sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
"sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7b/verified_rft_messages.jsonl",
"sha256": "b864bdc8695183433eef6e31cb8d33fad44ba3aded2170c1ade4ad5b2944ce23"
},
{
"path": "v2/experiments/train_data/opd_e4b_self_audit_v4/verified_rft_messages.jsonl",
"sha256": "0026023745afb8f3dc1c176dc7f7171157b4ad5a66656b524af218e8e19ceee6"
},
{
"path": "v2/experiments/train_data/rft_e4b_aligned_v2/verified_rft_messages.jsonl",
"sha256": "92a4515fee9d152b0d4c510ee3ce4caaaffe2003ba7584469f8027f174aab18c"
},
{
"path": "v2/experiments/train_data/rft_v1/verified_rft_messages.jsonl",
"sha256": "a42453ccd7ac7680b0a03865e8e7080bc8bf74c8d9d193b440c441ed46f8512b"
},
{
"path": "v2/experiments/train_data/rft_v2/verified_rft_messages.jsonl",
"sha256": "18f4b3bd7e651f83c6acab479c9475e3fa50dc652a384f309e97146983ac85ba"
}
]
}