Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: JSQLParser/JSqlParser
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: JSQLParser/JSqlParser
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: manticore
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 11 commits
  • 11 files changed
  • 1 contributor

Commits on Mar 28, 2026

  1. doc: fix links

    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Mar 28, 2026
    Configuration menu
    Copy the full SHA
    4dad36d View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2026

  1. Configuration menu
    Copy the full SHA
    ea2f431 View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2026

  1. Configuration menu
    Copy the full SHA
    d167471 View commit details
    Browse the repository at this point in the history
  2. build: move to JavaCC-8.1.1 with better code for the Token Manager, a…

    …voiding `code to large` and `cinit` problems.
    
    - revert the post-processing step
    
    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 8, 2026
    Configuration menu
    Copy the full SHA
    dc6e3e8 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2026

  1. feat: Pratt 6.5 ms/ops with 14 failures

    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 10, 2026
    Configuration menu
    Copy the full SHA
    53ca038 View commit details
    Browse the repository at this point in the history
  2. feat: Pratt 8.5 ms/ops without failures

    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 10, 2026
    Configuration menu
    Copy the full SHA
    365078d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2d2ee4b View commit details
    Browse the repository at this point in the history
  4. perf: grammar tower + Pratt parser + LOOKAHEAD optimization (~15% spe…

    …edup)
    
    Replace exponential-backtracking grammar with targeted optimizations:
    
    - Add prattArithRest() Java loop for arithmetic (eliminates AddChain/MulChain method calls)
    - Add prattExpressionRest() Java loop for boolean ops (eliminates XorExpression/AndChain)
    - Replace LOOKAHEAD(ParenthesedFromItem()) syntactic scan with O(1) isParenthesedFromItemAhead()
      predicate — this was the root cause: it speculatively re-ran the full expression tower
      for every "(" in every FROM clause
    - Gate LOOKAHEAD(5) UserVariable, LOOKAHEAD(2) NOT/PRIOR, LOOKAHEAD("(+)") Oracle join
      behind cheap token-kind checks so they don't scan on every expression
    - Fix ComparisonItem: replace LOOKAHEAD(3) SimpleExpression() syntactic scan with semantic
      predicates for AnyComparisonExpression and RowConstructor
    - Inline isComparisonOperatorAhead() into isConditionSuffixAhead() to eliminate redundant
      getToken(1) call on every parsed expression
    - Fix isNestedSetOperationAhead() to handle arbitrary nesting depth (((SELECT) UNION ...))
    - Fix isParenthesedFromItemAhead() edge cases: ((SELECT) JOIN ...), VALUES, EXASOL IMPORT
    - Fix choice-conflict warnings in XorExpression/AndChain/MulChain/AddChain loops
      (outer LOOKAHEAD(2) grouping, {{ }} scoping for variable redefinition)
    - Restore all previously passing tests broken by the committed 6.5ms branch
    
    Result: 8ms → ~7ms on benchmark corpus
    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 10, 2026
    Configuration menu
    Copy the full SHA
    1b51f05 View commit details
    Browse the repository at this point in the history
  5. feat: Optimize SimpleCharStream for SQL parsing hot path

    Pack separate bufline[] and bufcolumn[] arrays into a single long[]
    (line in upper 32 bits, column in lower 32), halving array writes in
    UpdateLineColumn which executes for every character read.
    
    Add fast path in UpdateLineColumn for printable ASCII (c >= ' ' with
    no pending newline), skipping the newline/tab switch statement for the
    95%+ common case in SQL input.
    
    Mark readChar, UpdateLineColumn, BeginToken, and backup as final to
    enable JIT devirtualization and inlining.
    
    Change ExpandBuff from linear growth (+2048) to exponential (2x),
    reducing O(n^2) copying for large SQL statements. Remove the
    Throwable catch that discarded stack traces.
    
    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 10, 2026
    Configuration menu
    Copy the full SHA
    17448bb View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2026

  1. feat: Add bytecode size verification tests for generated parser classes

    Zero-dependency tests that scan compiled .class files and fail when any
    method approaches the JVM 64KB bytecode limit, catching the problem
    before ASM/JaCoCo instrumentation pushes it over the edge.
    
    BytecodeSizeVerifier: classfile parser reading Code attribute sizes
      directly (no ASM dependency). Works as both CLI tool and library.
    
    BytecodeSizeTest (JUnit 5):
    - clinitMustFitWithinInstrumentationSafeLimit: targets <clinit> with
      20% headroom for instrumentation overhead
    - allMethodsMustFitWithinInstrumentationSafeLimit: scans all methods
    - criticalClassesMustBePresent: guards against silent test skip
    
    Prevents regression of:
      org.objectweb.asm.MethodTooLargeException: Method too large:
        net/sf/jsqlparser/parser/CCJSqlParserTokenManager.<clinit> ()V
    
    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 11, 2026
    Configuration menu
    Copy the full SHA
    9cfbe68 View commit details
    Browse the repository at this point in the history
  2. style: reformat code

    Signed-off-by: manticore-projects <andreas@manticore-projects.com>
    manticore-projects committed Apr 11, 2026
    Configuration menu
    Copy the full SHA
    65c30f0 View commit details
    Browse the repository at this point in the history
Loading