This is an automated email from the ASF dual-hosted git repository.

zclllyybb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 7483a86ceda [doc] clarify local file requirements for UDF pkgs (#3785)
7483a86ceda is described below

commit 7483a86ceda4773cce8392235949c7cccfe7016b
Author: linrrarity <[email protected]>
AuthorDate: Tue May 26 16:45:09 2026 +0800

    [doc] clarify local file requirements for UDF pkgs (#3785)
    
    ## Versions
    
    - [x] dev
    - [x] 4.x
    - [x] 3.x
    - [x] 2.1 or older (not covered by version/language sync gate)
    
    ## Languages
    
    - [x] Chinese
    - [x] English
    - [ ] Japanese candidate translation needed
    
    ## Docs Checklist
    
    - [ ] Checked by AI
    - [ ] Test Cases Built
    - [ ] Updated required version and language counterparts, or explained
    why not
    - [ ] If only one language changed, confirmed whether source/translation
    counterparts need sync
---
 docs/query-data/udf/java-user-defined-function.md                   | 4 ++++
 docs/query-data/udf/python-user-defined-function.md                 | 3 +++
 .../current/query-data/udf/java-user-defined-function.md            | 4 ++++
 .../current/query-data/udf/python-user-defined-function.md          | 3 +++
 .../version-2.1/query-data/udf/java-user-defined-function.md        | 6 +++++-
 .../version-3.x/query-data/udf/java-user-defined-function.md        | 6 +++++-
 .../version-4.x/query-data/udf/java-user-defined-function.md        | 4 ++++
 .../version-2.1/query-data/udf/java-user-defined-function.md        | 6 +++++-
 .../version-3.x/query-data/udf/java-user-defined-function.md        | 4 ++++
 .../version-4.x/query-data/udf/java-user-defined-function.md        | 4 ++++
 10 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/docs/query-data/udf/java-user-defined-function.md 
b/docs/query-data/udf/java-user-defined-function.md
index 6c18a25c9e3..96e1fe99e7c 100644
--- a/docs/query-data/udf/java-user-defined-function.md
+++ b/docs/query-data/udf/java-user-defined-function.md
@@ -141,6 +141,10 @@ When writing a UDF in Java, the main entry point must be 
the `evaluate` function
     );
     ```
 
+:::caution Note
+When using `file://`, Doris reads the JAR file on the FE node during `CREATE 
FUNCTION` to compute the checksum, and reads the JAR file on BE nodes during 
execution. Therefore, the same JAR file must exist at the same absolute path on 
all FE and BE nodes, and the file content must be identical. If the file exists 
only on BE nodes, `CREATE FUNCTION` fails. If the file content differs between 
FE and BE nodes, execution fails with a checksum mismatch.
+:::
+
 3. Call the UDF. Calling a UDF requires the `SELECT` privilege on the 
corresponding database. To view registered UDFs, use the [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) command.
 
     ```sql
diff --git a/docs/query-data/udf/python-user-defined-function.md 
b/docs/query-data/udf/python-user-defined-function.md
index 463dd549d0f..e80d511cbd9 100644
--- a/docs/query-data/udf/python-user-defined-function.md
+++ b/docs/query-data/udf/python-user-defined-function.md
@@ -197,6 +197,7 @@ Specify the `.zip` package path through the `file` 
parameter. Two methods are su
 - When using remote download, ensure that all BE nodes can access the URL.
 - The first call downloads the file, which may introduce some latency.
 - The file is cached, so later calls do not download it again.
+- When using `file://`, Doris reads the package on the FE node during `CREATE 
FUNCTION` to compute the checksum, and reads the package on BE nodes during 
execution. Therefore, the same `.zip` file must exist at the same absolute path 
on all FE and BE nodes, and the file content must be identical. If the file 
exists only on BE nodes, `CREATE FUNCTION` fails. If the file content differs 
between FE and BE nodes, execution fails with a checksum mismatch.
 :::
 
 **Step 4: Set the `symbol` parameter**
@@ -1389,6 +1390,7 @@ Specify the `.zip` package path through the `file` 
parameter:
 > - When using remote download, ensure that all BE nodes can access the URL.
 > - The first call downloads the file, which may introduce some latency.
 > - The file is cached, so later calls do not download it again.
+> - When using `file://`, Doris reads the package on the FE node during 
`CREATE AGGREGATE FUNCTION` to compute the checksum, and reads the package on 
BE nodes during execution. The same `.zip` file must exist at the same absolute 
path on all FE and BE nodes, and the file content must be identical. If the 
file exists only on BE nodes, function creation fails. If the file content 
differs between FE and BE nodes, execution fails with a checksum mismatch.
 
 **Step 4: Set the `symbol` parameter**
 
@@ -2340,6 +2342,7 @@ Specify the `.zip` package path through the `file` 
parameter:
 - When using remote download, ensure that all BE nodes can access the URL.
 - The first call downloads the file, which may introduce some latency.
 - The file is cached, so later calls do not download it again.
+- When using `file://`, Doris reads the package on the FE node during `CREATE 
TABLES FUNCTION` to compute the checksum, and reads the package on BE nodes 
during execution. Therefore, the same `.zip` file must exist at the same 
absolute path on all FE and BE nodes, and the file content must be identical. 
If the file exists only on BE nodes, function creation fails. If the file 
content differs between FE and BE nodes, execution fails with a checksum 
mismatch.
 :::
 
 **Step 4: Set the `symbol` parameter**
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/java-user-defined-function.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/java-user-defined-function.md
index 93bc319885b..3311653e554 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/java-user-defined-function.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/java-user-defined-function.md
@@ -141,6 +141,10 @@ insert into test_table values (6, 666.66, "d,e");
     );
     ```
 
+:::caution Note
+使用 `file://` 时,Doris 会在 `CREATE FUNCTION` 阶段从 FE 节点读取 JAR 文件并计算 
checksum,在执行阶段从 BE 节点读取 JAR 文件。因此,同一个 JAR 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,`CREATE FUNCTION` 会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 
checksum 不匹配失败。
+:::
+
 3. 调用 UDF。使用 UDF 必须拥有对应数据库的 `SELECT` 权限。如需查看注册成功的 UDF,可使用 [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) 命令。
 
     ```sql
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/python-user-defined-function.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/python-user-defined-function.md
index 9f402640451..d35d539cd0b 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/python-user-defined-function.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/query-data/udf/python-user-defined-function.md
@@ -197,6 +197,7 @@ zip python_udf_scalar_ops.zip python_udf_scalar_ops.py 
utils.py helper.py ...
 - 使用远程下载方式时,需确保所有 BE 节点都能访问该 URL。
 - 首次调用时会下载文件,可能有一定延迟。
 - 文件会被缓存,后续调用无需重复下载。
+- 使用 `file://` 时,Doris 会在 `CREATE FUNCTION` 阶段从 FE 节点读取该包并计算 checksum,在执行阶段从 
BE 节点读取该包。因此,同一个 `.zip` 文件必须以相同绝对路径存在于所有 FE 和 BE 节点,并且文件内容必须完全一致。如果文件只存在于 BE 
节点,`CREATE FUNCTION` 会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 checksum 不匹配失败。
 :::
 
 **步骤 4:设置 `symbol` 参数**
@@ -1389,6 +1390,7 @@ zip stats_udaf.zip stats_udaf.py
 > - 使用远程下载方式时,需确保所有 BE 节点都能访问该 URL。
 > - 首次调用时会下载文件,可能有一定延迟。
 > - 文件会被缓存,后续调用无需重复下载。
+> - 使用 `file://` 时,Doris 会在 `CREATE AGGREGATE FUNCTION` 阶段从 FE 节点读取该包并计算 
checksum,在执行阶段从 BE 节点读取该包。同一个 `.zip` 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,函数创建会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 checksum 
不匹配失败。
 
 **步骤 4:设置 `symbol` 参数**
 
@@ -2340,6 +2342,7 @@ zip text_udtf.zip text_udtf.py
 - 使用远程下载方式时,需确保所有 BE 节点都能访问该 URL。
 - 首次调用时会下载文件,可能有一定延迟。
 - 文件会被缓存,后续调用无需重复下载。
+- 使用 `file://` 时,Doris 会在 `CREATE TABLES FUNCTION` 阶段从 FE 节点读取该包并计算 
checksum,在执行阶段从 BE 节点读取该包。因此,同一个 `.zip` 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,函数创建会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 checksum 
不匹配失败。
 :::
 
 **步骤 4:设置 `symbol` 参数**
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/query-data/udf/java-user-defined-function.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/query-data/udf/java-user-defined-function.md
index c277f92f100..1f3a0d95b5f 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/query-data/udf/java-user-defined-function.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/query-data/udf/java-user-defined-function.md
@@ -39,7 +39,7 @@ Doris 支持使用 JAVA 编写 UDF、UDAF 和 UDTF。下文如无特殊说明,
 `array`、`map`、`struct` 类型可以嵌套其它类型。例如,Doris 中的 `array<array<int>>` 对应 Java UDF 
参数类型为 `ArrayList<ArrayList<Integer>>`,其他类型依此类推。
 :::
 
-:::caution 注意
+:::caution Note
 在创建函数时,请务必使用 `string` 类型而不是 `varchar`,否则可能会导致函数执行失败。
 :::
 
@@ -98,6 +98,10 @@ insert into test_table values (6, 666.66, "d,e");
     );
     ```
 
+:::caution Note
+使用 `file://` 时,Doris 会在 `CREATE FUNCTION` 阶段从 FE 节点读取 JAR 文件并计算 
checksum,在执行阶段从 BE 节点读取 JAR 文件。因此,同一个 JAR 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,`CREATE FUNCTION` 会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 
checksum 不匹配失败。
+:::
+
 3. 用户使用 UDF 必须拥有对应数据库的 `SELECT` 权限。
     如果想查看注册成功的对应 UDF 函数,可以使用[SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) 命令。
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/query-data/udf/java-user-defined-function.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/query-data/udf/java-user-defined-function.md
index 2e6eda139d2..5ef84b4f9fc 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/query-data/udf/java-user-defined-function.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/query-data/udf/java-user-defined-function.md
@@ -41,7 +41,7 @@ Doris 支持使用 JAVA 编写 UDF、UDAF 和 UDTF。下文如无特殊说明,
 `List<Type>` 和 `Map<Type1,Type2>` 类的支持从3.1.0 版本开始
 :::
 
-:::caution 注意
+:::caution Note
 在创建函数时,请务必使用 `string` 类型而不是 `varchar`,否则可能会导致函数执行失败。
 :::
 
@@ -104,6 +104,10 @@ insert into test_table values (6, 666.66, "d,e");
     );
     ```
 
+:::caution Note
+使用 `file://` 时,Doris 会在 `CREATE FUNCTION` 阶段从 FE 节点读取 JAR 文件并计算 
checksum,在执行阶段从 BE 节点读取 JAR 文件。因此,同一个 JAR 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,`CREATE FUNCTION` 会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 
checksum 不匹配失败。
+:::
+
 3. 用户使用 UDF 必须拥有对应数据库的 `SELECT` 权限。
     如果想查看注册成功的对应 UDF 函数,可以使用[SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) 命令。
 
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/query-data/udf/java-user-defined-function.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/query-data/udf/java-user-defined-function.md
index 93bc319885b..3311653e554 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/query-data/udf/java-user-defined-function.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/query-data/udf/java-user-defined-function.md
@@ -141,6 +141,10 @@ insert into test_table values (6, 666.66, "d,e");
     );
     ```
 
+:::caution Note
+使用 `file://` 时,Doris 会在 `CREATE FUNCTION` 阶段从 FE 节点读取 JAR 文件并计算 
checksum,在执行阶段从 BE 节点读取 JAR 文件。因此,同一个 JAR 文件必须以相同绝对路径存在于所有 FE 和 BE 
节点,并且文件内容必须完全一致。如果文件只存在于 BE 节点,`CREATE FUNCTION` 会失败;如果 FE 和 BE 上的文件内容不一致,执行时会因 
checksum 不匹配失败。
+:::
+
 3. 调用 UDF。使用 UDF 必须拥有对应数据库的 `SELECT` 权限。如需查看注册成功的 UDF,可使用 [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) 命令。
 
     ```sql
diff --git 
a/versioned_docs/version-2.1/query-data/udf/java-user-defined-function.md 
b/versioned_docs/version-2.1/query-data/udf/java-user-defined-function.md
index 3348a01c168..5feeeadd6cf 100644
--- a/versioned_docs/version-2.1/query-data/udf/java-user-defined-function.md
+++ b/versioned_docs/version-2.1/query-data/udf/java-user-defined-function.md
@@ -105,6 +105,10 @@ When writing a UDF in Java, the main entry point must be 
the `evaluate` function
     );
     ```
 
+:::caution Note
+When using `file://`, Doris reads the JAR file on the FE node during `CREATE 
FUNCTION` to compute the checksum, and reads the JAR file on BE nodes during 
execution. Therefore, the same JAR file must exist at the same absolute path on 
all FE and BE nodes, and the file content must be identical. If the file exists 
only on BE nodes, `CREATE FUNCTION` fails. If the file content differs between 
FE and BE nodes, execution fails with a checksum mismatch.
+:::
+
 3. To utilize UDFs, users must possess the `SELECT` privilege for the 
corresponding database. And to verify the successful registration of the UDF, 
you can use the [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) command.
 
     ``` sql
@@ -512,4 +516,4 @@ mysql [test_query_qa]>select print_12();
 +------------+
 1 row in set (0.04 sec)
 
-```
\ No newline at end of file
+```
diff --git 
a/versioned_docs/version-3.x/query-data/udf/java-user-defined-function.md 
b/versioned_docs/version-3.x/query-data/udf/java-user-defined-function.md
index 5b1036f9c89..6fa1381f229 100644
--- a/versioned_docs/version-3.x/query-data/udf/java-user-defined-function.md
+++ b/versioned_docs/version-3.x/query-data/udf/java-user-defined-function.md
@@ -112,6 +112,10 @@ When writing a UDF in Java, the main entry point must be 
the `evaluate` function
     );
     ```
 
+:::caution Note
+When using `file://`, Doris reads the JAR file on the FE node during `CREATE 
FUNCTION` to compute the checksum, and reads the JAR file on BE nodes during 
execution. Therefore, the same JAR file must exist at the same absolute path on 
all FE and BE nodes, and the file content must be identical. If the file exists 
only on BE nodes, `CREATE FUNCTION` fails. If the file content differs between 
FE and BE nodes, execution fails with a checksum mismatch.
+:::
+
 3. To utilize UDFs, users must possess the `SELECT` privilege for the 
corresponding database. And to verify the successful registration of the UDF, 
you can use the [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) command.
 
     ``` sql
diff --git 
a/versioned_docs/version-4.x/query-data/udf/java-user-defined-function.md 
b/versioned_docs/version-4.x/query-data/udf/java-user-defined-function.md
index 6c18a25c9e3..96e1fe99e7c 100644
--- a/versioned_docs/version-4.x/query-data/udf/java-user-defined-function.md
+++ b/versioned_docs/version-4.x/query-data/udf/java-user-defined-function.md
@@ -141,6 +141,10 @@ When writing a UDF in Java, the main entry point must be 
the `evaluate` function
     );
     ```
 
+:::caution Note
+When using `file://`, Doris reads the JAR file on the FE node during `CREATE 
FUNCTION` to compute the checksum, and reads the JAR file on BE nodes during 
execution. Therefore, the same JAR file must exist at the same absolute path on 
all FE and BE nodes, and the file content must be identical. If the file exists 
only on BE nodes, `CREATE FUNCTION` fails. If the file content differs between 
FE and BE nodes, execution fails with a checksum mismatch.
+:::
+
 3. Call the UDF. Calling a UDF requires the `SELECT` privilege on the 
corresponding database. To view registered UDFs, use the [SHOW 
FUNCTIONS](../../sql-manual/sql-statements/function/SHOW-FUNCTIONS) command.
 
     ```sql


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to