Skip to content

Conversation

Naros
Copy link
Contributor

@Naros Naros commented Sep 29, 2025

This PR includes a myriad of grammar improvements, separated by commit. Given that many of these may touch or adjust various similar files, it made more sense to put these into 1 PR where they can be reviewed by commit rather than multiple PRs that would require continuous rebases.

This change also adjusts the behavior of inmemory_attributes so that the
SQL can supply these attributes in any order, as allowed by the engine.
In Oracle 10g, supplemental logging was improved for logical replication
to include the "UNIQUE INDEX" clause to log columns that are not declared
as unique constraints, used by Streams and GoldenGate replication.
@Naros Naros force-pushed the plsql-batch-improvements branch from 4143e25 to 93f3572 Compare September 29, 2025 18:27
@Naros
Copy link
Contributor Author

Naros commented Sep 29, 2025

Hi @teverett I'm trying to understand the various failures, but it's not clear what is broken. When running the tests via Maven, everything passes. Any pointers on what I may have missed?

@kaby76
Copy link
Contributor

kaby76 commented Sep 29, 2025

The error is caused by time-outs on the network file transfers from Maven. There are a number of ways I could fix this:

  • Fork https://github.com/antlr/antlr4-tools and add in a robust network file transfer that doesn't stop until N tries, something I've been pointing out years ago. antlr4 isn't robust with slow links. antlr4-tools#13
  • Write my own tool that is robust. Of course, people won't use it, just like Trash I spent years writing.
  • Resubmit the job (via a NOP-change, like add another newline to the the last line of the file) to force the rebuild during hours that don't pulverize Github Action's puny servers or the lethargic Maven Central.
  • Have @teverett try to rerun the workflow for the PR at something like before 10 AM UTC.

The old Antlr Maven tester is old and hasn't been updated since 4.11.1 or 2. Plus, it does not test any targets except Java.

My recommendation is to try making a change and pushing it around 6 am EDT.

@Naros
Copy link
Contributor Author

Naros commented Sep 29, 2025

@kaby76 are you sure that's the case for all of them, e.g. ubuntu-latest Go

New errors in output.
/home/runner/work/grammars-v4/grammars-v4/sql/plsql/examples/examples-sql-script/with_clause_in_exists_block_in_procedure.sql.tree
line 226:9 no viable alternative at input 'RELATIONAL'
line 226:19 missing ';' at '('

@kaby76
Copy link
Contributor

kaby76 commented Sep 29, 2025

You're right. Not all of the problems were network timeouts.

For CSharp, TypeScript, Python, and maybe others, you made the bool _isVersion11 = false. It should consistently be "true" across targets for the code to work.

For Go, There's no "base class" initializers! To get around this mess, I had to implement a global, static struct. You'll have to initialize _isVersion11 to "true" in func init(), where it initializes other bools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants