You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Take the JDBC connectors off the trial path, drop /fromdb, add a schema that fits (#55)
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.
Claude-Session: https://claude.ai/code/session_01UK3dBXFXqiDRYJxz1YxWCr
Co-authored-by: James <James@gudusoft.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
fail "$SCHEMA is $bytes bytes, at or over the trial parser's $CAP-byte limit; it exists precisely so schema-scale lineage is runnable on the trial jar. Shrink it, or put the addition in one of the licensed-only dumps."
114
+
fi
115
+
echo"ok: $SCHEMA is $bytes bytes, under the $CAP-byte trial limit"
Copy file name to clipboardExpand all lines: .github/workflows/nightly.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -240,7 +240,7 @@ jobs:
240
240
--title "Bump the parser from $pinned to $NEW" \
241
241
--body "\`$NEW\` is the newest release on sqlparser.com. Tonight's nightly ran it through the same checks the pinned \`$pinned\` gets, and it passed all of them: the full test suite with no failures, every demo starting, and every case in \`.github/scripts/demo-cases.tsv\` producing its expected output.
242
242
243
-
This touches the four places the version is written -- \`pom.xml\` and the three \`connector/*/pom.xml\` -- via \`.github/scripts/set-parser-version.sh\`, so they cannot drift apart.
243
+
This touches the four places the version is written -- \`pom.xml\` and the three \`licensed-only/*/pom.xml\` -- via \`.github/scripts/set-parser-version.sh\`, so they cannot drift apart.
244
244
245
245
Merge to move the demos to \`$NEW\`. Close to stay on \`$pinned\`; the nightly will go on testing \`$NEW\` and will not reopen this until a newer release appears.
src/test/java/gudusoft/gsqlparser/ tests, all exercising demos
316
335
samples/ sample .sql for the demos
317
-
connector/<vendor>Connector/ separate JDBC-connected modules
336
+
licensed-only/<vendor>Connector/ JDBC modules, licensed parser only
318
337
lib-repo/ in-project Maven repository
319
338
setenv/ + per-demo *.bat the Windows route
320
339
.github/scripts/ CI checks, all runnable locally
@@ -408,9 +427,10 @@ than only building them.
408
427
| Parser version consistency |`set-parser-version.sh --check` across all four POMs |
409
428
| The pre-commit hook |`test-pre-commit-hook.sh`: a drifting bump is refused in a throwaway clone |
410
429
| Documentation |`check-stale-docs.sh`: no readme names `pom_dlineage.xml`, `gudusoft.dlineage.jar` or the old `demos` package root; `--self-test` first, so a check that matches nothing cannot pass as a clean repo |
430
+
| Licensed-only guard |`check-licensed-only-guard.sh`: each `licensed-only/*` module stops at `validate`**with the licence message**, not with `cannot find symbol`|
411
431
| Build and test | JDK 8 and 21; 156 tests, and a run that skipped everything fails |
412
432
| Demo smoke test |`checksyntax` against known SQL |
413
-
| Standalone lineage jar |`smoke-dlineage-jar.sh` on JDK 8 and 21 — asserts on **output**, in JSON *and* XML |
433
+
| Standalone lineage jar |`smoke-dlineage-jar.sh` on JDK 8 and 21 — asserts on **output**, in JSON *and* XML, and that `hr_mini.sql` stays under the trial parser's 10,000-byte cap|
414
434
| Windows `.bat`|`windows-latest`: bootstrap, 39 compile scripts, 50 run scripts, 4 driven with real arguments |
415
435
416
436
`.github/workflows/nightly.yml` — at 03:17 UTC, because the parser is the moving
@@ -476,7 +496,7 @@ drive with arguments.
476
496
-**Don't commit jars**; add dependencies by coordinate.
477
497
-**Don't add a live-JDBC path to a demo** under `src/main/java`. It can't run
478
498
in CI, and it is what got two demos excluded from the build for years. The
479
-
`connector/*` modules are where database connections belong.
499
+
`licensed-only/*` modules are where database connections belong.
480
500
-**Don't add parser tests here**; they belong in `gsp_java_core`.
0 commit comments