GoogleCloudPlatform / zetasql-toolkit

The ZetaSQL Toolkit is a library that helps users use ZetaSQL Java API to perform SQL analysis for multiple query engines, including BigQuery and Cloud Spanner.
Apache License 2.0
38 stars 9 forks source link

Add reflection-based patching of GRPC's default max nesting depth #36

Closed ppaglilla closed 5 months ago

ppaglilla commented 5 months ago

ZetaSQL's Java API uses a GRPC service to call into the actual C++ implementation of ZetaSQL. By default, the serialization logic of that communication allows for a nesting depth in protobuf messages of up to 100. However, long queries can exceed that level of nesting and as a result cannot be analyzed by default.

This implements a reflection-based patch that allows users to override that limit to a greater number. This is brittle by design and should be used with caution.

Fixes #31