Description
When Spark's ConstantFolding optimizer rule is disabled, all-scalar (literal-only) expressions reach Comet's native engine. The native engine panics with:
Substring(scalar) should be fold in Spark JVM side.
StringSpace(scalar) should be fold in Spark JVM side.
How to Reproduce
SET spark.sql.optimizer.excludedRules=org.apache.spark.sql.catalyst.optimizer.ConstantFolding;
SELECT substring('hello world', 1, 5);
SELECT space(5);
SELECT left('hello', 3);
Expected Behavior
The native engine should handle scalar inputs gracefully — either by computing the correct result or by falling back to Spark, not by panicking.
Affected Expressions
substring() / left()
space()