Take the JDBC connectors off the trial path, drop /fromdb, add a schema that fits - #55
Open
sqlparser wants to merge 1 commit into
Open
Take the JDBC connectors off the trial path, drop /fromdb, add a schema that fits#55sqlparser wants to merge 1 commit into
sqlparser wants to merge 1 commit into
Conversation
…ma that fits
Three findings from the 2026-08-24 first-visit evaluation, all of them the same
shape: a trial user meets a licensed-only or non-existent feature and reads the
failure as "GSP does not work".
connector/ -> licensed-only/
These modules need gudusoft.gsqlparser.sqlenv.T*SQLDataSource, which the
public trial artifact does not ship. At the repository root they read as
part of the ordinary demo set, and the evaluator started there. Now the
directory says what they are, licensed-only/README.md says why, and each POM
carries a default-active trial-guard profile that stops at validate with a
message naming the boundary and pointing at columninspect, which does the
same metadata-aware resolution offline. -Plicensed turns the guard off.
The guard could not fire until the drivers were real coordinates: Oracle's
was com:ojdbc:1.1.1 and SQL Server's sqljdbc4:4.0, both system scope
pointing into lib/ at jars that have never existed here, so Maven died
during dependency resolution before any plugin could speak. They are
ojdbc8 and mssql-jdbc from Central now, which also removes the last two
system-scope dependencies in the repository and makes them visible to
Dependabot.
/fromdb, /exportonly and /metadataoutput removed
They parsed and did nothing. SqlflowIngester.export(...) was commented out
and the class deleted, so the tool emitted an empty <dlineage/> and wrote no
metadata.json, while the readme taught the feature in two sections with four
vendor examples. /fromdb now gets the same answer as passing no input at
all. A parsed no-op is worse than a missing feature: the docs grow around
it.
samples/dlineageBasic/oracle/hr_mini/
All 16 oversize .sql files under samples/ are vendor dumps in dlineageBasic/
-- 10,378 to 99,139 bytes against a 10,000-byte trial cap -- so "lineage on
a real schema" returned a licence error dressed as an <error> element inside
otherwise-normal output, which reads as "no lineage found". hr_mini is 5,212
bytes and yields 120 relationships (82 fdd, 38 fdr) from staging tables, a
view over a LEFT JOIN, a CTE, aggregates, CASE WHEN and a correlated
subquery, with all its DDL inline so every column resolves.
Both new behaviours are CI-enforced, and both assert on output rather than exit
status, because both failure modes exit 0 or fail for a plausible-looking wrong
reason:
- check-licensed-only-guard.sh asserts each module prints the licence message
AND fails; failing with the old "cannot find symbol" also exits non-zero.
- smoke-dlineage-jar.sh fails if hr_mini reaches 10,000 bytes, drops below 50
relationships, or starts carrying the trial-limit error.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UK3dBXFXqiDRYJxz1YxWCr
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.
The three product findings from the 2026-08-24 first-visit evaluation. All the same shape: a trial user meets a licensed-only or non-existent feature and reads the failure as GSP does not work.
1.
connector/→licensed-only/These modules need
gudusoft.gsqlparser.sqlenv.T*SQLDataSource, which the public trial artifact does not ship. Sitting at the repository root they read as part of the ordinary demo set — the evaluator started there, met a wall ofcannot find symbol, and concluded the library did not compile.Now the directory name says what they are,
licensed-only/README.mdsays why, and each POM carries a default-activetrial-guardprofile:-Plicenseddeactivates the guard; verified that it does, and that the build then proceeds to the real compile.The guard could not fire until the drivers were real coordinates. Oracle’s was
com:ojdbc:1.1.1and SQL Server’ssqljdbc4:4.0, bothsystemscope pointing intolib/at jars that have never existed in this checkout, so Maven died during dependency resolution — before any plugin could speak. They arecom.oracle.database.jdbc:ojdbc8andcom.microsoft.sqlserver:mssql-jdbcfrom Central now, which also removes the last twosystem-scope dependencies here and makes both visible to Dependabot.2.
/fromdbremovedAlong with
/exportonlyand/metadataoutput. They parsed and then did nothing:SqlflowIngester.export(...)was commented out and the class deleted, so the tool emitted an empty<dlineage/>and wrote nometadata.json— while the readme taught the feature across two sections with four vendor examples./fromdbnow gets the same answer as passing no input at all.A parsed no-op is worse than a missing feature, because the documentation grows around it.
3.
samples/dlineageBasic/oracle/hr_mini/All 16 oversize
.sqlfiles undersamples/are vendor dumps indlineageBasic/— 10,378 to 99,139 bytes against a 10,000-byte trial cap. "Lineage on a real schema" therefore returned a licence error dressed as an<error>element inside otherwise-normal output, which reads as no lineage found.hr_mini.sqlis 5,212 bytes and yields 120 relationships (82fdd, 38fdr) from staging tables, a view over aLEFT JOIN, a CTE, aggregates,CASE WHENand a correlated subquery — all DDL inline, so every column resolves without ametadata.json.Both new behaviours are CI-enforced, on output not exit status
Both failure modes either exit 0 or fail for a plausible-looking wrong reason, so an exit-code check would pass either way:
check-licensed-only-guard.sh(new, inbuild.yml)cannot find symbolalso exits non-zerosmoke-dlineage-jar.sh(extended)hr_ministays under 10,000 bytes, keeps producing ≥50 relationships, and never carries the trial-limit errorVerified locally
156 tests · 79 demos start · 24/24 demo cases · dlineage jar in JSON and XML · stale-docs self-test 5/5 · pre-commit hook 4/4 · parser version consistent at 4.2.6 across all four POMs (paths updated in
set-parser-version.sh,.githooks/pre-commitand both workflows).🤖 Generated with Claude Code
https://claude.ai/code/session_01UK3dBXFXqiDRYJxz1YxWCr