xiangfu0 opened a new pull request, #19887: URL: https://github.com/apache/pinot/pull/19887
Pinot needs one place to stop new Groovy compilation in server and minion processes. This adds a process-wide switch at both evaluator construction and validation-script parsing, avoiding policy parameters throughout ingestion and minion APIs. Existing compiled evaluators continue to execute. Legacy Avro `__KEYS`/`__VALUES` extraction now uses Java, preserving map ordering and null handling when compilation is disabled. ## Usage The service configuration layer controls the gate: ```java GroovyFunctionEvaluator.setGroovyCompilationEnabled(false); // New evaluator construction and parseGroovyScript calls now fail before compilation. GroovyFunctionEvaluator.setGroovyCompilationEnabled(true); // Subsequent compilation is allowed again. ``` The shared evaluator retains its existing enabled default until a service configures it. A separate stacked PR applies the cluster configuration to servers and minions, with compilation disabled by default there. Controller schema admission is handled separately in #19235. ## Validation - 59 focused evaluator, query-transform, and expression-transform tests pass. - Two focused additions cover disabling/re-enabling compilation, existing evaluator execution, and implicit map extraction. - Formatting, Checkstyle, license-format, license checks, and compilation with warning/deprecation reporting pass for the affected modules. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
