feat: add SQLCEXPERIMENT environment variable for experimental features#4228
Merged
kyleconroy merged 1 commit intomainfrom Dec 10, 2025
Merged
Conversation
Add a SQLCEXPERIMENT environment variable modeled after Go's GOEXPERIMENT that allows enabling/disabling experimental features via a comma-separated list of experiment names. Experiments can be prefixed with "no" to explicitly disable them. This provides infrastructure for gating experimental features before they are ready for general availability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
msaher
added a commit
to msaher/sqlc
that referenced
this pull request
May 8, 2026
Closes sqlc-dev#4228. The resolver fails to infer the type of a CTE column because it only searches normal tables. My solution is to have two passes, one where we search the CTE columns first (making them shadow regular tables) then if not found, we search through regular tables. We cannot simply add the CTE column in the existing `typeMap` because a CTE and a regular table will have the same column name which will trigger the `found > 1` check and the column will be considered ambiguous. So we use a different typeMap for CTEs so we can separate the search
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add a SQLCEXPERIMENT environment variable modeled after Go's GOEXPERIMENT
that allows enabling/disabling experimental features via a comma-separated
list of experiment names. Experiments can be prefixed with "no" to
explicitly disable them.
This provides infrastructure for gating experimental features before they
are ready for general availability.
🤖 Generated with Claude Code
Co-Authored-By: Claude [email protected]