You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gluten.apache.org by "pedrumj2 (via GitHub)" <gi...@apache.org> on 2026/09/14 05:15:12 UTC

[PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

pedrumj2 opened a new pull request, #13016:
URL: https://github.com/apache/gluten/pull/13016

   ## What changes are proposed in this pull request?
   
   Resolves #13014. UDFs signatures will directly be read from the C++ velox implementation and no longer require registering a separate Java Interface class
   
   ## How was this patch tested?
   
   ### Unit test
   
   `UDFResolverSuite` covers the selection rules: a plain name is described, a dotted name and a name colliding with a Spark built-in are not, and the output is sorted. It passed locally — `Tests: succeeded 4, failed 0`.
   
   ### Formatting
   
   `./dev/format-scala-code.sh check` passes.
   
   ### End-to-end run
   
   The UDF was also called by its own name. The example library in [MyUDF.cc](https://github.com/apache/gluten/blob/main/cpp/velox/udf/examples/MyUDF.cc) has no dotless UDF, so one was added locally for the run and is deliberately not part of this patch. The steps below mirror those in #13014, so the ones this patch removes are marked.
   
   #### [step1] Write the Java UDF
   
   Not needed. This is what the patch removes.
   
   #### [step2] Write the C++ Velox UDF
   
   Added to `cpp/velox/udf/examples/MyUDF.cc`:
   
   ```cpp
   namespace myudfincrement {
   
   template <typename T>
   struct MyUdfIncrementFunction {
     VELOX_DEFINE_FUNCTION_TYPES(T);
   
     FOLLY_ALWAYS_INLINE void call(int64_t& result, const int64_t& a) {
       result = a + 1;
     }
   };
   
   // name: myudf_increment
   // signatures:
   //    bigint -> bigint
   // type: SimpleFunction
   class MyUdfIncrementRegisterer final : public gluten::UdfRegisterer {
    public:
     int getNumUdf() override {
       return 1;
     }
   
     void populateUdfEntries(int& index, gluten::UdfEntry* udfEntries) override {
       udfEntries[index++] = {name_.c_str(), kBigInt, 1, arg_, false, false};
     }
   
     void registerSignatures() override {
       facebook::velox::registerFunction<MyUdfIncrementFunction, int64_t, int64_t>({name_});
     }
   
    private:
     const std::string name_ = "myudf_increment";
     const char* arg_[1] = {kBigInt};
   };
   
   } // namespace myudfincrement
   ```
   
   registered alongside the existing one:
   
   ```cpp
   registerers.push_back(std::make_shared<myudfincrement::MyUdfIncrementRegisterer>());
   ```
   
   #### [step3] Build the `.so`
   
   ```bash
   ./dev/builddeps-veloxbe.sh --build_examples=ON
   ```
   
   Produces `cpp/build/velox/udf/examples/libmyudf.so`.
   
   #### [step4] Compile the Java UDF into a jar
   
   Not needed. There is no Java class to compile.
   
   #### [step5] Write the query
   
   No `CREATE TEMPORARY FUNCTION`; the name comes from the loaded library alone.
   
   ```sql
   SELECT col1, myudf_increment(col1) AS incremented
   FROM VALUES (1L), (2L), (3L) AS t(col1)
   ORDER BY col1;
   
   EXPLAIN SELECT myudf_increment(col1) FROM VALUES (1L) AS t(col1);
   ```
   
   #### [step6] Run the query
   
   Only the Gluten bundle is on the classpath.
   
   ```bash
   $SPARK_HOME/bin/spark-sql \
     --master 'local[2]' \
     --jars "$BUNDLE" \
     --driver-class-path "$BUNDLE" \
     --conf spark.plugins=org.apache.gluten.GlutenPlugin \
     --conf spark.memory.offHeap.enabled=true \
     --conf spark.memory.offHeap.size=4g \
     --conf spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
     --conf spark.gluten.sql.columnar.backend.velox.udfLibraryPaths=file:///path/to/libmyudf.so \
     --conf spark.gluten.sql.columnar.backend.velox.driver.udfLibraryPaths=file:///path/to/libmyudf.so \
     -f demo.sql
   ```
   
   #### Result
   
   Spark 3.5.9, with a Gluten bundle jar built from this branch.
   
   ```
   1	2
   2	3
   3	4
   Time taken: 3.326 seconds, Fetched 3 row(s)
   == Physical Plan ==
   VeloxColumnarToRow
   +- ^(1) ProjectExecTransformer [myudf_increment(myudf_increment, myudf_increment, LongType, true, col1#9L) AS myudf_increment(col1)#10L]
      +- ^(1) InputIteratorTransformer[col1#9L]
         +- RowToVeloxColumnar
            +- LocalTableScan [col1#9L]
   ```
   
   [ProjectExecTransformer](https://github.com/apache/gluten/blob/main/gluten-substrait/src/main/scala/org/apache/gluten/execution/ProjectExecTransformer.scala) shows the native function was used.
   
   ## Was this patch authored or co-authored using generative AI tooling?
   
   Co authored with Claude Code claude-opus-5
   


-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on PR #13016:
URL: https://github.com/apache/gluten/pull/13016#issuecomment-5714377292

   > LGTM. Thanks!
   
   @marin-ma  Thanks for the reviews!


-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4020600233


##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +68,11 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    // Makes a UDF loaded from `udfLibraryPaths` resolvable by its own name. Injected through
+    // SparkInjector so InjectorControl turns a call made while Gluten is disabled into an
+    // analysis-time error rather than a failure at execution.
+    UDFResolver.getFunctionDescriptions.foreach(injector.injectFunction)

Review Comment:
   @marin-ma  I added two new test under VeloxUDFSuite.scala. Please let me know if this addresses this concern above.  
   
   > Please add Spark-level coverage using the existing native-UDF test setup, with the required test placed under gluten-ut/.
   
   With regards to moving under `gluten-ut` the changes would be a bit more involved. Would that be a blocker for this change or can we open a separate issue for this? 
   - There is an .so file that the tests need [here](https://github.com/pedrumj2/gluten/blob/45be7dc48129de55890126574b575b75d4cb9838/backends-velox/src/test/scala/org/apache/gluten/expression/VeloxUdfSuite.scala#L44-L53)
   - the .so file is passed in via maven for `backends-velox` for the [pom.xml](https://github.com/apache/gluten/blob/f04968b1083b12c0a13581fdaa36003b3fd1a87f/backends-velox/pom.xml#L325-L335) but not included for the `gluten-ut` [pom.xml](https://github.com/apache/gluten/blob/f04968b1083b12c0a13581fdaa36003b3fd1a87f/gluten-ut/spark35/pom.xml#L81-L95) digging further seems we need to enable the CI jobs for gluten-ut to also build this .so file then make sure we include it under the gluten-ut scalatest.
   
   



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4020600233


##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +68,11 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    // Makes a UDF loaded from `udfLibraryPaths` resolvable by its own name. Injected through
+    // SparkInjector so InjectorControl turns a call made while Gluten is disabled into an
+    // analysis-time error rather than a failure at execution.
+    UDFResolver.getFunctionDescriptions.foreach(injector.injectFunction)

Review Comment:
   @marin-ma  I added two new test under VeloxUDFSuite.scala. Please let me know if this addresses this concern above.  
   
   > Please add Spark-level coverage using the existing native-UDF test setup, with the required test placed under gluten-ut/.
   
   With regards to moving under `gluten-ut` the changes would be a bit more involved. Would that be a blocker for this change or can we open a separate issue for this? Based on my understanding:
   - There seems to be an .so file that the tests need [here](https://github.com/pedrumj2/gluten/blob/45be7dc48129de55890126574b575b75d4cb9838/backends-velox/src/test/scala/org/apache/gluten/expression/VeloxUdfSuite.scala#L44-L53)
   - the .so file is passed in via maven for `backends-velox` for the [pom.xml](https://github.com/apache/gluten/blob/f04968b1083b12c0a13581fdaa36003b3fd1a87f/backends-velox/pom.xml#L325-L335) but not included for the `gluten-ut` [pom.xml](https://github.com/apache/gluten/blob/f04968b1083b12c0a13581fdaa36003b3fd1a87f/gluten-ut/spark35/pom.xml#L81-L95) digging further seems we need to enable the CI jobs for gluten-ut to also build this .so file then make sure we include it under the gluten-ut scalatest.
   
   



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on PR #13016:
URL: https://github.com/apache/gluten/pull/13016#issuecomment-5705682114

   Thanks for the review @marin-ma 
   
   > Please run dev/gen-all-config-docs.sh to update the documentation. Thanks.
   
   Done, tests are passing now. Please let me know if there are any other changes we should make here. 
   
   
   
   


-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4020498439


##########
backends-velox/src/main/scala/org/apache/spark/sql/expression/UDFResolver.scala:
##########
@@ -338,6 +341,35 @@ object UDFResolver extends Logging {
       .toBoolean
   }
 
+  /**
+   * One Spark function per loaded UDF whose name contains no dot. A dotted name is a Hive UDF class
+   * name, which VeloxHiveUDFTransformer already resolves, so it is skipped here.
+   *
+   * A name is also skipped when it collides with a Spark built-in: the names are unqualified, so
+   * injecting one would redirect that built-in to a native implementation with possibly different
+   * semantics for every query on the session.
+   */
+  def getFunctionDescriptions: Seq[FunctionDescription] = {
+    val (shadowing, injectable) = UDFNames.toSeq
+      .filterNot(_.contains("."))
+      .sorted
+      .partition(name => FunctionRegistry.builtin.functionExists(FunctionIdentifier(name)))

Review Comment:
   Updated



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4020463447


##########
docs/developers/VeloxUDF.md:
##########
@@ -192,6 +192,18 @@ VeloxColumnarToRow
          +- Scan hive spark_catalog.default.tbl [col1#11], HiveTableRelation [`spark_catalog`.`default`.`tbl`, org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, Data Cols: [col1#11], Partition Cols: []]
 ```
 
+## Natively Only UDF Registration
+
+This is an alternative to the registration described above, for a UDF that is implemented only in Velox and has no Java counterpart.
+
+A UDF whose registered name contains no dot is added to the session's function registry under that name. It needs no matching Hive UDF class, no jar on the classpath, and no `CREATE TEMPORARY FUNCTION` — register it under a name with no dot, such as `my_udf`, and call it directly:

Review Comment:
   Updated



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4017562622


##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +68,11 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    // Makes a UDF loaded from `udfLibraryPaths` resolvable by its own name. Injected through
+    // SparkInjector so InjectorControl turns a call made while Gluten is disabled into an
+    // analysis-time error rather than a failure at execution.
+    UDFResolver.getFunctionDescriptions.foreach(injector.injectFunction)

Review Comment:
   The added suite only inspects the descriptions returned by `getFunctionDescriptions`; it does not verify that `injectFunction` makes a plain-name UDF resolvable and executable through a SparkSession, nor that the wrapped function fails when Gluten is disabled. A regression in this wiring would therefore pass all new tests. Please add Spark-level coverage using the existing native-UDF test setup, with the required test placed under `gluten-ut/`.



##########
backends-velox/src/main/scala/org/apache/spark/sql/expression/UDFResolver.scala:
##########
@@ -338,6 +341,35 @@ object UDFResolver extends Logging {
       .toBoolean
   }
 
+  /**
+   * One Spark function per loaded UDF whose name contains no dot. A dotted name is a Hive UDF class
+   * name, which VeloxHiveUDFTransformer already resolves, so it is skipped here.
+   *
+   * A name is also skipped when it collides with a Spark built-in: the names are unqualified, so
+   * injecting one would redirect that built-in to a native implementation with possibly different
+   * semantics for every query on the session.
+   */
+  def getFunctionDescriptions: Seq[FunctionDescription] = {
+    val (shadowing, injectable) = UDFNames.toSeq
+      .filterNot(_.contains("."))
+      .sorted
+      .partition(name => FunctionRegistry.builtin.functionExists(FunctionIdentifier(name)))

Review Comment:
   Spark function identifiers are case-insensitive, but this code groups only exact strings and injects one builder for each. If a library exports both `Foo` and `foo`, Spark normalizes both registrations to one entry; the later builder wins, so calls to one native function invoke the other closure and can fail because `UDFMap` is keyed by the original case. Reject/skip case-insensitive duplicates (or define a deterministic mapping) before injection and cover that case.



##########
docs/developers/VeloxUDF.md:
##########
@@ -192,6 +192,18 @@ VeloxColumnarToRow
          +- Scan hive spark_catalog.default.tbl [col1#11], HiveTableRelation [`spark_catalog`.`default`.`tbl`, org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, Data Cols: [col1#11], Partition Cols: []]
 ```
 
+## Natively Only UDF Registration
+
+This is an alternative to the registration described above, for a UDF that is implemented only in Velox and has no Java counterpart.
+
+A UDF whose registered name contains no dot is added to the session's function registry under that name. It needs no matching Hive UDF class, no jar on the classpath, and no `CREATE TEMPORARY FUNCTION` — register it under a name with no dot, such as `my_udf`, and call it directly:

Review Comment:
   This sentence is too broad: `getFunctionDescriptions` explicitly skips names that collide with Spark built-ins, so a native UDF named `abs` is not added under its own name and `select abs(...)` still calls Spark's built-in. Document the non-built-in requirement here.



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4031485690


##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +70,12 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    val registerByName = Option(SparkEnv.get)

Review Comment:
   Updated using `nativeUDFBypassRegistration` now



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4031482834


##########
backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala:
##########
@@ -696,6 +696,16 @@ object VeloxConfig extends ConfigRegistry {
       .booleanConf
       .createWithDefault(true)
 
+  val NATIVE_UDF_WITHOUT_FALLBACK =
+    buildStaticConf("spark.gluten.sql.columnar.backend.velox.nativeUDFWithoutFallback")

Review Comment:
   Sounds good, updated!



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "marin-ma (via GitHub)" <gi...@apache.org>.
marin-ma merged PR #13016:
URL: https://github.com/apache/gluten/pull/13016


-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "marin-ma (via GitHub)" <gi...@apache.org>.
marin-ma commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4025482328


##########
backends-velox/src/main/scala/org/apache/gluten/config/VeloxConfig.scala:
##########
@@ -696,6 +696,16 @@ object VeloxConfig extends ConfigRegistry {
       .booleanConf
       .createWithDefault(true)
 
+  val NATIVE_UDF_WITHOUT_FALLBACK =
+    buildStaticConf("spark.gluten.sql.columnar.backend.velox.nativeUDFWithoutFallback")

Review Comment:
   perhaps rename `nativeUDFWithoutFallback` to `nativeUDF.bypassRegistration`



##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +70,12 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    val registerByName = Option(SparkEnv.get)

Review Comment:
   You can add a function to get the configuration in `VeloxConfig` and use `VeloxConfig.get.yourFunc` here



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org


Re: [PR] [GLUTEN-13014][VL] Make a udfLibraryPaths UDF callable by its own name [gluten]

Posted by "pedrumj2 (via GitHub)" <gi...@apache.org>.
pedrumj2 commented on code in PR #13016:
URL: https://github.com/apache/gluten/pull/13016#discussion_r4031485690


##########
backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxRuleApi.scala:
##########
@@ -67,6 +70,12 @@ object VeloxRuleApi {
     if (BackendsApiManager.getSettings.supportAppendDataExec()) {
       injector.injectPlannerStrategy(SparkShimLoader.getSparkShims.getRewriteCreateTableAsSelect(_))
     }
+
+    val registerByName = Option(SparkEnv.get)

Review Comment:
   Updated using `nativeUDFBypassRegistration`



-- 
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: commits-unsubscribe@gluten.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org