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

philo-he pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new cfbc08e48e [DOC] Polish wording and fix inaccuracies in docs (#12675)
cfbc08e48e is described below

commit cfbc08e48ee40ae3175c66ff653869c09190520b
Author: Philo He <[email protected]>
AuthorDate: Thu Aug 6 02:19:33 2026 +0800

    [DOC] Polish wording and fix inaccuracies in docs (#12675)
---
 README.md                                         | 16 +++++-----
 docs/developers/ProfileMemoryOfGlutenWithVelox.md |  6 ++--
 docs/developers/velox-backend-CI.md               | 38 +++++++++++------------
 docs/get-started/Velox.md                         | 38 +++++++++++------------
 docs/get-started/VeloxLocalCache.md               | 25 +++++++++------
 docs/velox-backend-limitations.md                 | 19 ++++--------
 docs/velox-backend-scalar-function-support.md     |  7 +++--
 7 files changed, 76 insertions(+), 73 deletions(-)

diff --git a/README.md b/README.md
index ea54568d33..b20be1ce37 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
-<img src="docs/image/gluten-logo.svg" alt="Gluten" width="200">
+<img src="docs/image/gluten-logo.svg" alt="Gluten" width="260">
 
-# Apache Gluten
 
-**A Middle Layer for Offloading JVM-based SQL Engines' Execution to Native 
Engines**
+**A Middle Layer for Offloading JVM-Based SQL Execution to Native Engines**
 
 [![OpenSSF Best 
Practices](https://www.bestpractices.dev/projects/8452/badge)](https://www.bestpractices.dev/projects/8452)
 
@@ -27,7 +26,7 @@ data processing, these engines can outperform Spark’s 
JVM-based SQL engine. Ho
 
 The basic design principle is to reuse Spark’s control flow, while offloading 
compute-intensive data processing to the native side. More specifically:
 
-* Transform Spark’s physical plan to Substrait plan, then transform it to 
native engine's plan.
+* Transform Spark’s physical plan into a Substrait plan, then transform it 
into the native engine's plan.
 * Offload performance-critical data processing to native engine.
 * Define clear JNI interfaces for native SQL engines.
 * Allow easy switching between available native backends.
@@ -47,7 +46,7 @@ and Spark’s Columnar API (introduced in Spark 3.0) is used 
during execution. G
 <p align="center">
 <img 
src="https://user-images.githubusercontent.com/47296334/199617207-1140698a-4d53-462d-9bc7-303d14be060b.png";
 width="700">
 </p>
-Currently, Gluten supports only ClickHouse and Velox backends. Velox is a C++ 
database acceleration library which provides reusable, extensible and 
high-performance data processing components. In addition, Gluten is designed to 
be extensible,
+Currently, Gluten supports only the ClickHouse and Velox backends. Velox is a 
C++ database acceleration library that provides reusable, extensible, and 
high-performance data processing components. In addition, Gluten is designed to 
be extensible,
 allowing support for additional backends in the future.
 
 Gluten's key components:
@@ -79,7 +78,7 @@ There are two ways to acquire Gluten jar for the above 
configuration.
 
 ### Use Released JAR
 
-Please download the tar package [here](https://gluten.apache.org/downloads/), 
then extract Gluten JAR from it.
+Please download the tar package [here](https://gluten.apache.org/downloads/), 
then extract the Gluten JAR from it.
 Additionally, Gluten provides nightly builds based on the main branch for 
early testing. The nightly build JARs are available at [Apache Gluten 
Nightlies](https://nightlies.apache.org/gluten/).
 They have been verified on Centos 7/8/9, Ubuntu 20.04/22.04.
 
@@ -113,7 +112,7 @@ Welcome to contribute to the Gluten project! See 
[CONTRIBUTING.md](CONTRIBUTING.
 
 ## 6. Community
 
-Gluten successfully became an Apache Incubator project in March 2024 and 
graduated as an Apache Top-Level Project in March 2026. Here are several ways 
to connect with the community.
+Here are several ways to connect with the community.
 
 ### GitHub
 
@@ -164,7 +163,8 @@ Gluten is licensed under [Apache License Version 
2.0](https://www.apache.org/lic
 
 ## 10. Acknowledgements
 
-Gluten was initiated by Intel and Kyligence in 2022. Several other companies 
are also actively contributing to its development, including BIGO, Meituan, 
Alibaba Cloud, NetEase, Baidu, Microsoft, IBM, Google, etc.
+Gluten was initiated by Intel and Kyligence in 2022 and became an Apache 
Top-Level Project in March 2026.
+Several other companies are also actively contributing to its development, 
including BIGO, Meituan, Alibaba Cloud, NetEase, Baidu, Microsoft, IBM, Google, 
and others.
 
 <a href="https://github.com/apache/gluten/graphs/contributors";>
   <img src="https://contrib.rocks/image?repo=apache/gluten&columns=25"; />
diff --git a/docs/developers/ProfileMemoryOfGlutenWithVelox.md 
b/docs/developers/ProfileMemoryOfGlutenWithVelox.md
index 4705e4f592..82eda3fa49 100644
--- a/docs/developers/ProfileMemoryOfGlutenWithVelox.md
+++ b/docs/developers/ProfileMemoryOfGlutenWithVelox.md
@@ -113,10 +113,12 @@ spark.files /path/to/jemalloc/libjemalloc.so
 Example of enabling heap profile in spark executor:
 
 ```
-spark.executorEnv.LD_PRELOAD  ./libjemalloc.so
-spark.executorEnv.MALLOC_CONF 
prof:true,lg_prof_interval:30,prof_prefix:/tmp/gluten_heap_perf
+spark.executorEnv.LD_PRELOAD /path/to/jemalloc/libjemalloc.so
+spark.executorEnv.MALLOC_CONF 
prof:true,prof_final:true,lg_prof_interval:30,prof_prefix:/tmp/gluten_heap_perf
 ```
 
+Note: `lg_prof_interval:30` only dumps a profile after every 2^30 bytes (1GB) 
of cumulative allocation activity, so a short-running or low-allocation job may 
never trigger it. `prof_final:true` ensures a profile is dumped when the 
process exits, regardless of the interval.
+
 Finally, profiling files prefixed with `/tmp/gluten_heap_perf.${PID}` will be 
generated for each spark executor.
 
 ## Memory dump on spark executor exit
diff --git a/docs/developers/velox-backend-CI.md 
b/docs/developers/velox-backend-CI.md
index a0af0b0f39..d35e5d9b31 100644
--- a/docs/developers/velox-backend-CI.md
+++ b/docs/developers/velox-backend-CI.md
@@ -6,36 +6,36 @@ parent: Developer Overview
 ---
 # Velox Backend CI
 
-GHA workflows are defined under `.github/workflows/`.
+GitHub Actions (GHA) workflows are defined under `.github/workflows/`.
 
 ## Docker Build
-We have a weekly job defined in `docker_image.yml` to build docker images for 
CI verification. The docker files and images are listed below:
+A weekly job defined in `docker_image.yml` builds the Docker images used for 
CI verification. The Dockerfiles (under `dev/docker/`) and their corresponding 
images are listed below:
 
 file | images | comments
 -- | -- | --
-dev/docker/Dockerfile.centos7-static-build | apache/gluten:vcpkg-centos-7 | 
centos 7, static link, jdk8
-dev/docker/Dockerfile.centos8-static-build | apache/gluten:vcpkg-centos-8 | 
centos 8, static link, jdk8
-dev/docker/Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk8 | 
centos 8, dynamic link, jdk8
-dev/docker/Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk11 | 
centos 8, dynamic link, jdk11
-dev/docker/Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk17 | 
centos 8, dynamic link, jdk17
-dev/docker/cudf/Dockerfile | apache/gluten:centos-9-jdk8-cudf | centos 9, 
dynamic link, jdk8
+Dockerfile.centos7-gcc13-static-build | apache/gluten:vcpkg-centos-7-gcc13 | 
centos 7, static link, jdk8
+Dockerfile.centos8-gcc13-static-build | apache/gluten:vcpkg-centos-8-gcc13 | 
centos 8, static link, jdk8
+Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk8 | centos 8, 
dynamic link, jdk8
+Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk11 | centos 8, 
dynamic link, jdk11
+Dockerfile.centos8-dynamic-build | apache/gluten:centos-8-jdk17 | centos 8, 
dynamic link, jdk17
+cudf/Dockerfile | apache/gluten:centos-9-jdk8-cudf | centos 9, dynamic link, 
jdk8
 
-Docker images can be found from https://hub.docker.com/r/apache/gluten/tags
+The Docker images can be found at 
[https://hub.docker.com/r/apache/gluten/tags](https://hub.docker.com/r/apache/gluten/tags).
 
 ## Vcpkg Caching
-Gluten main branch is pulled down during static build in docker. And vcpkg 
will cache binary data of all dependencies defined under dev/vcpkg.
-These binary data is cached into `/var/cache/vcpkg` and CI job can re-use them 
in new build. By setting `VCPKG_BINARY_SOURCES=clear` in env.,
-reusing vcpkg cache can be disabled.
+The Gluten main branch is pulled during the static build in Docker, and vcpkg 
caches binary data for all dependencies defined under `dev/vcpkg`.
+This binary data is cached into `/var/cache/vcpkg`, and CI jobs can reuse it 
in later builds. Setting `VCPKG_BINARY_SOURCES=clear` in the
+environment disables reuse of the vcpkg cache.
 
 ## Arrow Libs Pre-installation
-Arrow libs are pre-installed in docker, assuming they are not actively 
changed, then not necessarily to be re-built every time.
+Arrow libs are pre-installed in the Docker image, since they don't change 
often and don't need to be rebuilt on every run.
 
-## .M2 cache
-The dependency libraries are pre installed in to /root/.m2 by `mvn 
dependency:go-offline` Spark is set to 3.5 by default.
+## .M2 Cache
+Dependency libraries are pre-installed into `/root/.m2` via `mvn 
dependency:go-offline`. Spark is set to 3.5 by default.
 
 ## Ccache
-Since the docker image is rebuilt weekly, the ccache mostly are outdated. So 
the cache is removed from the image.
+Since the Docker image is rebuilt weekly, the ccache is mostly outdated, so it 
is removed from the image.
 
-## Updating Docker Image
-Two GitHub secrets `DOCKERHUB_USER` & `DOCKERHUB_TOKEN` can be used to push 
docker image to docker hub: https://hub.docker.com/r/apache/gluten/tags.
-Note GitHub secrets are not retrievable in PR from forked repo.
\ No newline at end of file
+## Updating the Docker Image
+The GitHub secrets `DOCKERHUB_USER` and `DOCKERHUB_TOKEN` are used to push 
Docker images to [Docker Hub](https://hub.docker.com/r/apache/gluten/tags).
+Note that GitHub secrets are not accessible in PRs from forked repos.
\ No newline at end of file
diff --git a/docs/get-started/Velox.md b/docs/get-started/Velox.md
index 5c504607fb..9eead57d0d 100644
--- a/docs/get-started/Velox.md
+++ b/docs/get-started/Velox.md
@@ -18,7 +18,7 @@ Note: Spark 4.0 and 4.1 require JDK 17+ and Scala 2.13 (build 
with `-Pspark-4.0`
 
 # Prerequisite
 
-Currently, with static build Gluten+Velox backend supports all the Linux OSes, 
but is only tested on **Ubuntu20.04/Ubuntu22.04/Centos7/Centos8**. With dynamic 
build, Gluten+Velox backend support **Ubuntu20.04/Ubuntu22.04/Centos7/Centos8** 
and their variants.
+Currently, the statically built Gluten+Velox backend supports all Linux OSes 
but is only tested on **Ubuntu 20.04/22.04/CentOS 7/8**. The dynamically built 
backend supports **Ubuntu 20.04/22.04/CentOS 7/8** and their variants.
 
 Currently, the officially supported Spark versions are 3.3.1, 3.4.4, 3.5.5, 
4.0.2 and 4.1.1.
 
@@ -79,8 +79,8 @@ export CPU_TARGET="aarch64"
 
 **Step-by-step build**
 
-Alternative to the above one-step build, you can follow the below guide for 
step-by-step build.
-Currently, Gluten is using a [IBM Velox](https://github.com/IBM/velox) which 
is daily updated based on [upstream 
Velox](https://github.com/facebookincubator/velox).
+As an alternative to the above one-step build, you can follow the step-by-step 
guide below.
+Currently, Gluten uses an [IBM Velox fork](https://github.com/IBM/velox), 
which is updated daily based on [upstream 
Velox](https://github.com/facebookincubator/velox).
 
 ```bash
 
@@ -108,7 +108,7 @@ mvn clean package -Pbackends-velox -Pspark-4.1 -Pjava-17 
-Pscala-2.13 -DskipTest
 
 Notes: Building Velox may fail caused by OOM. You can prevent this failure by 
adjusting `NUM_THREADS` (e.g., `export NUM_THREADS=4`) before building 
Gluten/Velox. The recommended minimal memory size is 64G.
 
-After the above build process, the Jar file will be generated under 
`package/target/`.
+After the above build process, the jar file will be generated under 
`package/target/`.
 
 Alternatively you may refer to [build in 
docker](../developers/velox-backend-build-in-docker.md) to build the gluten jar 
in docker.
 
@@ -151,8 +151,9 @@ This enables OpenSSL with FIPS features and requires 
OpenSSL shared libraries to
 
 ## HDFS support
 
-Gluten supports dynamically loading both libhdfs.so and libhdfs3.so at runtime 
by using dlopen, allowing the JVM to load the appropriate shared library file 
as needed. This means you do not need to set the library path during the 
compilation phase.
-To enable this functionality, you must set the JAVA_HOME and HADOOP_HOME 
environment variables. Gluten will then locate and load the 
${HADOOP_HOME}/lib/native/libhdfs.so file at runtime. If you prefer to use 
libhdfs3.so instead, simply replace the ${HADOOP_HOME}/lib/native/libhdfs.so 
file with libhdfs3.so.
+Gluten supports dynamically loading libhdfs.so or libhdfs3.so at runtime via 
dlopen, so the library path does not need to be set at compile time.
+To enable this, set the JAVA_HOME and HADOOP_HOME environment variables. 
Gluten will then locate and load `${HADOOP_HOME}/lib/native/libhdfs.so` at 
runtime.
+To use libhdfs3.so instead, replace that path with libhdfs3.so.
 
 ### Build libhdfs3
 
@@ -382,13 +383,13 @@ Gluten with velox backend supports 
[Iceberg](https://iceberg.apache.org/) table.
 
 ### How to use
 
-First of all, compile gluten-iceberg module by a `iceberg` profile, as follows:
+First, compile the gluten-iceberg module with the `iceberg` profile, as 
follows:
 
 ```
 mvn clean package -Pbackends-velox -Pspark-3.3 -Piceberg -DskipTests
 ```
 
-Once built successfully, iceberg features will be included in 
gluten-velox-bundle-X jar. Then you can query iceberg table by gluten/velox 
without scan's fallback.
+Once built successfully, iceberg features will be included in the 
gluten-velox-bundle-X jar. You can then query iceberg tables via Gluten/Velox 
without falling back on scan.
 
 ## Hudi Support
 
@@ -406,17 +407,17 @@ Compile gluten-paimon module by a `paimon` profile, as 
follows:
 mvn clean package -Pbackends-velox -Pspark-3.5 -Ppaimon -DskipTests
 ```
 
-Once built successfully, paimon features will be included in 
gluten-velox-bundle-X jar. Then you can query paimon non-pk table by 
gluten/velox without scan's fallback.
+Once built successfully, paimon features will be included in the 
gluten-velox-bundle-X jar. You can then query paimon non-pk tables via 
Gluten/Velox without falling back on scan.
 
 ### How to use
 
-First of all, compile gluten-hudi module by a `hudi` profile, as follows:
+First, compile the gluten-hudi module with the `hudi` profile, as follows:
 
 ```
 mvn clean package -Pbackends-velox -Pspark-3.3 -Phudi -DskipTests
 ```
 
-Once built successfully, hudi features will be included in 
gluten-velox-bundle-X jar. Then you can query hudi **COW** table by 
gluten/velox without scan's fallback.
+Once built successfully, hudi features will be included in the 
gluten-velox-bundle-X jar. You can then query hudi **COW** tables via 
Gluten/Velox without falling back on scan.
 
 # Coverage
 
@@ -424,7 +425,7 @@ Spark3.5 has 400+ functions in total. ~240 are commonly 
used. To get the support
 
 > Velox doesn't support [ANSI 
 > mode](https://spark.apache.org/docs/latest/sql-ref-ansi-compliance.html)), 
 > so as Gluten. Once ANSI mode is enabled in Spark config, Gluten will 
 > fallback to Vanilla Spark.
 
-To identify what can be offloaded in a query and detailed fallback reasons, 
user can follow below steps to retrieve corresponding logs.
+To identify what can be offloaded in a query and see the detailed fallback 
reasons, follow the steps below to retrieve the corresponding logs.
 
 ```
 1) Enable Gluten by proper 
[configuration](https://github.com/apache/gluten/blob/main/docs/Configuration.md).
@@ -455,8 +456,8 @@ With above steps, you will get a physical plan output like:
 native validation failed due to: in ProjectRel, Scalar function name not 
registered: get_struct_field, called with arguments: 
(ROW<col_0:INTEGER,col_1:BIGINT,col_2:BIGINT>, INTEGER).
 ```
 
-In the above, the symbol `^` indicates a plan is offloaded to Velox in a 
stage. In Spark DAG, all such pipelined plans (consecutive plans marked with 
`^`) are plotted
-inside an umbrella node named `WholeStageCodegenTransformer` (It's not codegen 
node. The naming is just for making it well plotted like Spark Whole Stage 
Codegen).
+In the above, the symbol `^` indicates a plan is offloaded to Velox in a 
stage. In the Spark DAG, all such pipelined plans (consecutive plans marked 
with `^`) are plotted
+inside an umbrella node named `WholeStageCodegenTransformer`. Despite the 
name, this is not a codegen node; it's named this way simply to display 
similarly to Spark's Whole Stage Codegen.
 
 # Spill
 
@@ -535,8 +536,7 @@ Refer to [Gluten configuration](../Configuration.md) for 
more details.
 
 ## Performance
 
-Below table shows the TPC-H Q1 and Q6 Performance in a multiple-thread test 
(--num-executors 6 --executor-cores 6) for Velox and vanilla Spark.
-Both Parquet and ORC datasets are sf1024.
+The table below shows TPC-H Q1 and Q6 performance for Velox and vanilla Spark 
in a multi-thread test (`--num-executors 6 --executor-cores 6`), using scale 
factor 1024 datasets in both Parquet and ORC formats.
 
 | Query Performance (s) | Velox (ORC) | Vanilla Spark (Parquet) | Vanilla 
Spark (ORC) |
 |---------------- | ----------- | ------------- | ------------- |
@@ -564,8 +564,8 @@ cause the inconsistent results with a materialized query. 
However, we have no ch
 
 ## Native Plan in Spark's Explain Output
 
-Gluten supports inject native plan string into Spark explain with formatted 
mode by setting `--conf spark.gluten.sql.injectNativePlanStringToExplain=true`.
-Here is an example, how Gluten shows the native plan string.
+Gluten supports injecting the native plan string into Spark's explain output 
in formatted mode by setting `--conf 
spark.gluten.sql.injectNativePlanStringToExplain=true`.
+Here is an example of how Gluten shows the native plan string.
 
 ```
 (9) WholeStageCodegenTransformer (2)
@@ -612,7 +612,7 @@ To enable this feature, you can set the following Spark 
configuration:
 
 | Property                                                    | Default | 
Description                                                       |
 
|-------------------------------------------------------------|---------|-------------------------------------------------------------------|
-| `spark.gluten.velox.offHeapBroadcastBuildRelation.enabled`  | `false` | 
Enable/disable off-heap storage for broadcast build relations.    |
+| `spark.gluten.velox.offHeapBroadcastBuildRelation.enabled`  | `false` | 
Whether to store broadcast build relations off-heap.              |
 
 This feature has been tested through a series of tests, and we are collecting 
more feedback from users. If you have memory problem on broadcast build 
relations, please try this feature and give more feedbacks.
 
diff --git a/docs/get-started/VeloxLocalCache.md 
b/docs/get-started/VeloxLocalCache.md
index 432bfc38d2..93a4d8d0f5 100644
--- a/docs/get-started/VeloxLocalCache.md
+++ b/docs/get-started/VeloxLocalCache.md
@@ -5,16 +5,23 @@ nav_order: 7
 parent: Getting-Started
 ---
 
-Velox supports a local cache when reading data from HDFS/S3/ABFS. With this 
feature, Velox can asynchronously cache the data on local disk when reading 
from remote storage and future read requests on previously cached blocks will 
be serviced from local cache files. To enable the local caching feature, the 
following configurations are required:
+Velox supports local caching when reading data from HDFS/S3/ABFS. With this 
feature, Velox asynchronously caches data on
+local disk when reading from remote storage, and future read requests for 
previously cached blocks are served from the
+local cache files. To enable local caching, the following configurations are 
required:
 
 ```
-spark.gluten.sql.columnar.backend.velox.cacheEnabled      // enable or disable 
velox cache, default false.
-spark.gluten.sql.columnar.backend.velox.memCacheSize      // the total size of 
in-mem cache, default is 128MB.
-spark.gluten.sql.columnar.backend.velox.ssdCachePath      // the folder to 
store the cache files, default is "/tmp".
-spark.gluten.sql.columnar.backend.velox.ssdCacheSize      // the total size of 
the SSD cache, default is 128MB. Velox will do in-mem cache only if this value 
is 0.
-spark.gluten.sql.columnar.backend.velox.ssdCacheShards    // the shards of the 
SSD cache, default is 1.
-spark.gluten.sql.columnar.backend.velox.ssdCacheIOThreads // the number of IO 
threads for SSD cache read/write operations, default is 4. Velox will try to do 
"read-ahead" if this value is bigger than 1
-spark.gluten.sql.columnar.backend.velox.ssdODirect        // enable or disable 
O_DIRECT on cache write, default false.
+spark.gluten.sql.columnar.backend.velox.cacheEnabled      // Enable Velox 
cache. Default: false.
+spark.gluten.sql.columnar.backend.velox.memCacheSize      // In-memory cache 
size. Default: 128MB.
+spark.gluten.sql.columnar.backend.velox.ssdCachePath      // Folder to store 
cache files, preferably on SSD. Default: "/tmp".
+spark.gluten.sql.columnar.backend.velox.ssdCacheSize      // SSD cache size. 
Memory-only caching is used when set to 0. Default: 128MB.
+spark.gluten.sql.columnar.backend.velox.ssdCacheShards    // Number of SSD 
cache shards. Default: 1.
+spark.gluten.sql.columnar.backend.velox.ssdCacheIOThreads // Number of IO 
threads for SSD cache read/write. Enables read-ahead when > 1. Default: 4.
+spark.gluten.sql.columnar.backend.velox.loadQuantum       // Load quantum 
size. Must be at most 8MB when Velox cache is enabled, otherwise Velox fails. 
Default: 256MB.
+spark.gluten.sql.columnar.backend.velox.ssdODirect        // Enable O_DIRECT 
on cache write. Currently causes SSD cache writes to fail if enabled; see Velox 
issue #10597. Default: false.
+spark.gluten.soft-affinity.enabled                        // Enable Soft 
Affinity scheduling. Should be enabled together with Velox cache. Default: 
false.
 ```
 
-It's recommended to mount SSDs to the cache path to get the best performance 
of local caching. Cache files will be written to 
"spark.gluten.sql.columnar.backend.velox.cachePath", with UUID based suffix, 
e.g. "/tmp/cache.13e8ab65-3af4-46ac-8d28-ff99b2a9ec9b0". Gluten cannot reuse 
older caches for now, and the old cache files are left after Spark context 
shutdown.
+It's recommended to mount SSDs to the cache path to get the best performance 
of local caching. Cache files will be written
+to "spark.gluten.sql.columnar.backend.velox.ssdCachePath", with UUID based 
suffix,
+e.g. "/tmp/cache.13e8ab65-3af4-46ac-8d28-ff99b2a9ec9b0". Gluten cannot reuse 
older caches for now, and the old cache files
+are left after Spark context shutdown.
diff --git a/docs/velox-backend-limitations.md 
b/docs/velox-backend-limitations.md
index 22e7b3de59..a39f2a40fb 100644
--- a/docs/velox-backend-limitations.md
+++ b/docs/velox-backend-limitations.md
@@ -144,17 +144,10 @@ Gluten's.
 
   Only reading with INT96 and dictionary encoding is supported. When reading 
INT64 represented millisecond/microsecond timestamps, or INT96 represented 
timestamps of other encodings, exceptions can occur.
 
-- Complex types
-  - Parquet scan of nested array with struct or array as element type is not 
supported in Velox (fallback behavior).
-  - Parquet scan of nested map with struct as key type, or array type as value 
type is not supported in Velox (fallback behavior).
-
-### CSV Read
-The header option should be true. And now we only support DatasourceV1, i.e., 
user should set `spark.sql.sources.useV1SourceList=csv`. User defined read 
option is not supported, which will make CSV read fall back to vanilla Spark in 
most case.
-CSV read will also fall back to vanilla Spark and log warning when user 
specifies schema is different with file schema.
-
 ### Utilizing Map Type as Hash Keys in ColumnarShuffleExchange
-Spark uses the `spark.sql.legacy.allowHashOnMapType` configuration to support 
hash map key functions. 
-Gluten enables this configuration during the creation of 
ColumnarShuffleExchange, as shown in the code 
[link](https://github.com/apache/gluten/blob/0dacac84d3bf3d2759a5dd7e0735147852d2845d/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala#L355-L363).
 
-This method bypasses Spark's unresolved checks and creates projects with the 
hash(mapType) operator before ColumnarShuffleExchange. 
-However, if `spark.sql.legacy.allowHashOnMapType` is disabled in a test 
environment, projects using the hash(mapType) expression may throw an `Invalid 
call to dataType on unresolved object` exception during validation, causing 
them to fallback to vanilla Spark, as referenced in the code 
[link](https://github.com/apache/spark/blob/de5fa426e23b84fc3c2bddeabcd2e1eda515abd5/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/hash.scala#L291-L296).
- Enabling this configuration allows the project to be offloaded to Velox.
+Spark's `spark.sql.legacy.allowHashOnMapType` configuration controls whether 
hashing is allowed on map-type keys.
+Gluten enables this configuration when creating `ColumnarShuffleExchange`, as 
shown 
[here](https://github.com/apache/gluten/blob/0dacac84d3bf3d2759a5dd7e0735147852d2845d/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala#L355-L363).
+This bypasses Spark's unresolved-expression checks and lets projects using the 
`hash(mapType)` operator be created before `ColumnarShuffleExchange`.
+However, if `spark.sql.legacy.allowHashOnMapType` is disabled in a test 
environment, projects using the `hash(mapType)` expression may throw an
+`Invalid call to dataType on unresolved object` exception during validation, 
causing them to fall back to vanilla Spark, as referenced 
[here](https://github.com/apache/spark/blob/de5fa426e23b84fc3c2bddeabcd2e1eda515abd5/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/hash.scala#L291-L296).
+Enabling this configuration allows the project to be offloaded to Velox.
diff --git a/docs/velox-backend-scalar-function-support.md 
b/docs/velox-backend-scalar-function-support.md
index e16baf3701..f86af55484 100644
--- a/docs/velox-backend-scalar-function-support.md
+++ b/docs/velox-backend-scalar-function-support.md
@@ -1,6 +1,6 @@
 # Scalar Functions Support Status
 
-**Out of 357 scalar functions in Spark 3.5, Gluten currently fully supports 
242 functions and partially supports 25 functions.**
+**Out of 357 scalar functions in Spark 3.5, Gluten currently fully supports 
245 functions and partially supports 27 functions.**
 
 ## Array Functions
 
@@ -220,6 +220,7 @@
 
 ## Mathematical Functions
 
+
 | Spark Functions   | Spark Expressions      | Status   | Restrictions   |
 |-------------------|------------------------|----------|----------------|
 | %                 | Remainder              | S        |                |
@@ -281,8 +282,8 @@
 | sin               | Sin                    |          |                |
 | sinh              | Sinh                   | S        |                |
 | sqrt              | Sqrt                   | S        |                |
-| tan               | Tan                    |          |                |
-| tanh              | Tanh                   |          |                |
+| tan               | Tan                    | S        |                |
+| tanh              | Tanh                   | S        |                |
 | try_add           | TryAdd                 | PS       |                |
 | try_divide        | TryDivide              |          |                |
 | try_multiply      | TryMultiply            |          |                |


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

Reply via email to