Skip to content

Release 4.2.1

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 23:13
79e0431

Highlights

ZPA 4.2.0 brings the largest expansion of Oracle SQL and PL/SQL grammar support in the project's history.

Hundreds of syntax gaps have been addressed across Oracle SQL, PL/SQL, DDL, SQL/JSON, and other areas, reducing known parsing gaps in the integration test corpus to nearly zero.

This release represents a major step toward comprehensive Oracle syntax coverage and provides a much stronger foundation for analysis of real-world PL/SQL codebases.

SonarQube compatibility

This release supports SonarQube Community Build 26.2 and newer and has been tested with versions 26.2 through 26.10.

SonarQube commercial builds are not supported. If you need to analyze projects without installing a SonarQube plugin, consider using zpa-cli.

Install or update

  1. Download sonar-zpa-plugin-4.2.1.jar.
  2. Copy it to SONARQUBE_HOME/extensions/plugins, replacing the previous ZPA version.
  3. Restart SonarQube.

A note from Brazil

ZPA is developed in Brazil, and releasing software can feel secondary while the country is going through a critical political and social struggle.

To me, open source has always meant more than simply making code available. It is about sharing knowledge, building collectively, and believing that cooperation, rather than the pursuit of individual profit, can help create a better world. These values do not stop at software.

Brazil has already paid a heavy price for authoritarianism, political violence, structural inequality, and contempt for democratic institutions. With these forces once again threatening our public life, silence is complicity.

I believe democracy must be actively defended and fascism must be opposed. No political project is worth sacrificing human dignity, social rights, or the right of the working class and marginalized communities to organize and fight for a better life.

Solidarity is not charity; it is an act of resistance. Caring for the vulnerable is not a threat. A society should be judged not by how much unchecked power its most privileged are allowed to exercise, but by the dignity, rights, and material conditions guaranteed to everyone.

If you find ZPA useful and wish to support my work, please consider redirecting your financial support to the grassroots initiatives listed on my GitHub Sponsors page instead.

Take care of each other, organize, and do not take our rights for granted.

What's changed

🐛 Fixes

scanner

  • add Java-friendly scanFile API and support default constructor args

🔄️ Changes

grammar

  • prevent exponential parsing of malformed parentheses
  • avoid redundant vector expression lookaheads

lexer

  • fix O(N²) token-copying regression

ZPA Toolkit

Download zpa-toolkit-4.2.1.jar to inspect the parser AST and symbol table.

The toolkit requires Java 21 or newer.

Developing custom ZPA plugins?

Binary compatibility is not guaranteed between ZPA versions. Custom plugins should be recompiled against the same version of sonar-zpa-plugin used by the SonarQube instance.