Skip to content

[feat](streaming-job) support SSL and align MySQL CDC source with PG#3

Open
JNSimba wants to merge 29 commits into
masterfrom
feat/mysql-cdc-ssl-align-pg
Open

[feat](streaming-job) support SSL and align MySQL CDC source with PG#3
JNSimba wants to merge 29 commits into
masterfrom
feat/mysql-cdc-ssl-align-pg

Conversation

@JNSimba

@JNSimba JNSimba commented Apr 22, 2026

Copy link
Copy Markdown
Owner

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

The MySQL CDC streaming source currently lacks several configuration knobs that the PostgreSQL path already supports. This PR brings the MySQL side up to parity:

  1. SSL encryption with CA verificationssl_mode and ssl_rootcert properties are now wired from job config into Debezium's database.ssl.{mode,truststore,truststore.password}. Because MySQL JDBC does not accept raw PEM, SmallFileMgr gains a getPkcs12TruststorePath() helper that converts the uploaded PEM CA cert into a PKCS12 truststore on first use, reusing the same content-addressed md5 cache as the PG path. The truststore password is a fixed changeit placeholder (public-CA-only truststore; password is not a security boundary, just a JCA API requirement).
  2. MySQL docker test environmentmysql-5.7.yaml.tpl now mounts the same root CA / server cert / key as PG and starts mysqld with --ssl-ca/cert/key. require_secure_transport is intentionally NOT set so existing useSSL=false tests keep working.
  3. Regression tests — mirror PG's suites for MySQL: test_streaming_mysql_job_ssl, test_streaming_mysql_job_table_mapping, test_streaming_mysql_job_col_filter.
  4. Unit testsSmallFileMgrTest covers the new PEM → PKCS12 conversion: single cert, chain alias safety (so ca0/ca1 don't overwrite each other), memory cache hit, invalid PEM rejection.

Release note

Support SSL (`ssl_mode`, `ssl_rootcert`) for MySQL CDC streaming insert jobs.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes. MySQL CDC streaming jobs now accept `ssl_mode` and `ssl_rootcert` properties. Existing jobs without these properties are unaffected.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@github-actions

Copy link
Copy Markdown

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck ' returned error 1 finding the following syntactical issues:

----------

In bin/flight_record_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In bin/profile_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In build-support/clang-format.sh line 43:
    export PATH=$(brew --prefix llvm@16)/bin:$PATH
           ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                                             ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    export PATH=$(brew --prefix llvm@16)/bin:${PATH}


In build-support/run-clang-tidy.sh line 187:
    if [[ -z "$f" ]]; then
              ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ -z "${f}" ]]; then


In build-support/run-clang-tidy.sh line 190:
    if ! echo "$f" | grep -qE "\.(${CPP_EXTENSIONS})$"; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if ! echo "${f}" | grep -qE "\.(${CPP_EXTENSIONS})$"; then


In build-support/run-clang-tidy.sh line 195:
        if [[ "$f" == *"${pattern}"* ]]; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${f}" == *"${pattern}"* ]]; then


In build-support/run-clang-tidy.sh line 200:
    if [[ "${excluded}" == "false" && -f "$f" ]]; then
                                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${excluded}" == "false" && -f "${f}" ]]; then


In build-support/run-clang-tidy.sh line 201:
        FILTERED_FILES+=("$f")
                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        FILTERED_FILES+=("${f}")


In build-support/run-clang-tidy.sh line 246:
        if [[ "$line" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${line}" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then


In build-support/run-clang-tidy.sh line 248:
        elif [[ "$line" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        elif [[ "${line}" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then


In build-support/run-clang-tidy.sh line 310:
    OUTPUT=$("${CLANG_TIDY}" "${TIDY_ARGS[@]}" "${f}" 2>&1) || TIDY_EXIT=$?
                                                               ^-------^ SC2034 (warning): TIDY_EXIT appears unused. Verify use (or export if used externally).


In build-support/run-clang-tidy.sh line 341:
                if [[ "$wline" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then
                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
                if [[ "${wline}" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then


In build.sh line 42:
if [[ "${DORIS_BUILD_PROFILE}" == "1" ]]; then
       ^--------------------^ SC2154 (warning): DORIS_BUILD_PROFILE is referenced but not assigned.


In build.sh line 264:
            BUILD_SPARK_DPP=1
            ^-------------^ SC2034 (warning): BUILD_SPARK_DPP appears unused. Verify use (or export if used externally).


In build.sh line 586:
FEAT+=($([[ -n "${WITH_TDE_DIR}" ]] && echo "+TDE" || echo "-TDE"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 587:
FEAT+=($([[ "${ENABLE_HDFS_STORAGE_VAULT:-OFF}" == "ON" ]] && echo "+HDFS_STORAGE_VAULT" || echo "-HDFS_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 588:
FEAT+=($([[ ${BUILD_UI} -eq 1 ]] && echo "+UI" || echo "-UI"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 589:
FEAT+=($([[ "${BUILD_AZURE}" == "ON" ]] && echo "+AZURE_BLOB,+AZURE_STORAGE_VAULT" || echo "-AZURE_BLOB,-AZURE_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 590:
FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 591:
FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 593:
export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
       ^----------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In build.sh line 757:
        "${CMAKE_USE_CCACHE}" \
         ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
         ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In build.sh line 759:
        -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                    ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In build.sh line 917:
        if [ ! -d "${fs_module_dir}" ]; then
           ^-------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
        if [[ ! -d "${fs_module_dir}" ]]; then


In build.sh line 929:
    if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                            ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ "${TARGET_SYSTEM}" = "Darwin" ]] || [[ "${TARGET_SYSTEM}" = "Linux" ]]; then


In build_profile.sh line 53:
        [[ -z "$f" || ! -f "$f" ]] && continue
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ -z "${f}" || ! -f "${f}" ]] && continue


In build_profile.sh line 56:
            mtime=$(stat -f %m "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -f %m "${f}")


In build_profile.sh line 58:
            mtime=$(stat -c %Y "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -c %Y "${f}")


In build_profile.sh line 60:
        [[ "$mtime" -gt "$last_time" ]] && echo "$f"
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${mtime}" -gt "${last_time}" ]] && echo "${f}"


In build_profile.sh line 124:
        [[ "$key" == "===FILES===" ]] && break
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == "===FILES===" ]] && break


In build_profile.sh line 125:
        [[ "$key" == _BP_* ]] || continue
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == _BP_* ]] || continue


In cloud/script/build_fdb.sh line 17:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In cloud/script/build_fdb.sh line 221:
if [ "$FDB_ENABLE_JAVA" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_JAVA is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_JAVA}" = "true" ]]; then


In cloud/script/build_fdb.sh line 224:
if [ "$FDB_ENABLE_GO" = "true" ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------^ SC2154 (warning): FDB_ENABLE_GO is referenced but not assigned.
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_GO}" = "true" ]]; then


In cloud/script/build_fdb.sh line 227:
if [ "$FDB_ENABLE_SWIFT" = "true" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2154 (warning): FDB_ENABLE_SWIFT is referenced but not assigned.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_SWIFT}" = "true" ]]; then


In cloud/script/build_fdb.sh line 230:
if [ "$FDB_ENABLE_RUBY" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_RUBY is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_RUBY}" = "true" ]]; then


In cloud/script/build_fdb.sh line 243:
if [ "$USE_JEMALLOC" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_JEMALLOC}" = true ]]; then


In cloud/script/build_fdb.sh line 249:
if [ "$USE_LTO" = true ]; then
   ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_LTO}" = true ]]; then


In cloud/script/build_fdb.sh line 255:
if [ "$FULL_DEBUG_SYMBOLS" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FULL_DEBUG_SYMBOLS}" = true ]]; then


In cloud/script/build_fdb.sh line 259:
if [ "$BUILD_DOCUMENTATION" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_DOCUMENTATION}" = true ]]; then


In cloud/script/build_fdb.sh line 263:
if [ "$WITH_ROCKSDB" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_ROCKSDB}" = true ]]; then


In cloud/script/build_fdb.sh line 267:
if [ "$WITH_GRPC" = true ]; then
   ^---------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_GRPC}" = true ]]; then


In cloud/script/build_fdb.sh line 272:
if [ "$BUILD_AWS_BACKUP" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AWS_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 276:
if [ "$BUILD_AZURE_BACKUP" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AZURE_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 281:
if [ "$BUILD_C_BINDING" = true ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_C_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 285:
if [ "$BUILD_PYTHON_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_PYTHON_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 289:
if [ "$BUILD_JAVA_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_JAVA_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 293:
if [ "$BUILD_GO_BINDING" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_GO_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 297:
if [ "$BUILD_SWIFT_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_SWIFT_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 301:
if [ "$BUILD_RUBY_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_RUBY_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 308:
echo "  Version:      $VERSION"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Version:      ${VERSION}"


In cloud/script/build_fdb.sh line 309:
echo "  Build Dir:    $BUILD_DIR"
                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Build Dir:    ${BUILD_DIR}"


In cloud/script/build_fdb.sh line 310:
echo "  Source Dir:   $SRC_DIR"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Source Dir:   ${SRC_DIR}"


In cloud/script/build_fdb.sh line 311:
echo "  Docker Image: $DOCKER_IMAGE"
                      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Docker Image: ${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 312:
echo "  Update Repo:  $UPDATE_REPO"
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Update Repo:  ${UPDATE_REPO}"


In cloud/script/build_fdb.sh line 316:
echo "  JEMALLOC:       $USE_JEMALLOC"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  JEMALLOC:       ${USE_JEMALLOC}"


In cloud/script/build_fdb.sh line 317:
echo "  LTO:            $USE_LTO"
                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  LTO:            ${USE_LTO}"


In cloud/script/build_fdb.sh line 318:
echo "  Debug Symbols:  $FULL_DEBUG_SYMBOLS"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Debug Symbols:  ${FULL_DEBUG_SYMBOLS}"


In cloud/script/build_fdb.sh line 319:
echo "  Documentation:  $BUILD_DOCUMENTATION"
                        ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Documentation:  ${BUILD_DOCUMENTATION}"


In cloud/script/build_fdb.sh line 320:
echo "  RocksDB:        $WITH_ROCKSDB"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  RocksDB:        ${WITH_ROCKSDB}"


In cloud/script/build_fdb.sh line 321:
echo "  gRPC:           $WITH_GRPC"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  gRPC:           ${WITH_GRPC}"


In cloud/script/build_fdb.sh line 322:
echo "  AWS Backup:     $BUILD_AWS_BACKUP"
                        ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  AWS Backup:     ${BUILD_AWS_BACKUP}"


In cloud/script/build_fdb.sh line 323:
echo "  Azure Backup:   $BUILD_AZURE_BACKUP"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Azure Backup:   ${BUILD_AZURE_BACKUP}"


In cloud/script/build_fdb.sh line 327:
echo "  C:      $BUILD_C_BINDING"
                ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  C:      ${BUILD_C_BINDING}"


In cloud/script/build_fdb.sh line 328:
echo "  Python: $BUILD_PYTHON_BINDING"
                ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Python: ${BUILD_PYTHON_BINDING}"


In cloud/script/build_fdb.sh line 329:
echo "  Java:   $BUILD_JAVA_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Java:   ${BUILD_JAVA_BINDING}"


In cloud/script/build_fdb.sh line 330:
echo "  Go:     $BUILD_GO_BINDING"
                ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Go:     ${BUILD_GO_BINDING}"


In cloud/script/build_fdb.sh line 331:
echo "  Swift:  $BUILD_SWIFT_BINDING"
                ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Swift:  ${BUILD_SWIFT_BINDING}"


In cloud/script/build_fdb.sh line 332:
echo "  Ruby:   $BUILD_RUBY_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Ruby:   ${BUILD_RUBY_BINDING}"


In cloud/script/build_fdb.sh line 336:
echo "$CMAKE_OPTIONS" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${CMAKE_OPTIONS}" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'


In cloud/script/build_fdb.sh line 341:
docker pull "$DOCKER_IMAGE"
             ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
docker pull "${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 344:
if [ -d "$SRC_DIR" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -d "${SRC_DIR}" ]]; then


In cloud/script/build_fdb.sh line 346:
    if [ "$UPDATE_REPO" = true ]; then
       ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${UPDATE_REPO}" = true ]]; then


In cloud/script/build_fdb.sh line 348:
        cd "$SRC_DIR"
            ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 357:
    git clone "$REPO_URL" "$SRC_DIR"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    git clone "${REPO_URL}" "${SRC_DIR}"


In cloud/script/build_fdb.sh line 361:
echo -e "${YELLOW}Checking out version: $VERSION${NC}"
                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo -e "${YELLOW}Checking out version: ${VERSION}${NC}"


In cloud/script/build_fdb.sh line 362:
cd "$SRC_DIR"
    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 363:
git checkout "$VERSION"
              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
git checkout "${VERSION}"


In cloud/script/build_fdb.sh line 367:
mkdir -p "$BUILD_DIR"
          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
mkdir -p "${BUILD_DIR}"


In cloud/script/build_fdb.sh line 372:
    -v "$(pwd)/$SRC_DIR:/foundationdb/src:ro" \
               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${SRC_DIR}:/foundationdb/src:ro" \


In cloud/script/build_fdb.sh line 373:
    -v "$(pwd)/$BUILD_DIR:/foundationdb/build" \
               ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${BUILD_DIR}:/foundationdb/build" \


In cloud/script/build_fdb.sh line 374:
    "$DOCKER_IMAGE" \
     ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "${DOCKER_IMAGE}" \


In cloud/script/build_fdb.sh line 378:
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja $CMAKE_OPTIONS /foundationdb/src && \
                                                                                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja ${CMAKE_OPTIONS} /foundationdb/src && \


In cloud/script/build_fdb.sh line 384:
echo "Artifacts location: $(pwd)/$BUILD_DIR"
                                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Artifacts location: $(pwd)/${BUILD_DIR}"


In cloud/script/run_all_tests.sh line 175:
exit ${ret}
     ^----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
exit "${ret}"


In cloud/script/start.sh line 59:
  source "${custom_start}" 
         ^---------------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.


In docker/thirdparties/docker-compose/common/hive-configure.sh line 22:
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
                                                               ^-----------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean: 
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}


In docker/thirdparties/docker-compose/common/hive-configure.sh line 29:
  local entry="<property><name>$name</name><value>${value}</value></property>"
                               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local entry="<property><name>${name}</name><value>${value}</value></property>"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 30:
  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
        ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local escapedEntry=$(echo "${entry}" | sed 's/\//\\\//g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 31:
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
                                                        ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" "${path}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 42:
    echo "Configuring $module"
                      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Configuring ${module}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 43:
    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                                                                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix="${envPrefix}"); do 


In docker/thirdparties/docker-compose/common/hive-configure.sh line 44:
        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        name=$(echo "${c}" | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 47:
        echo " - Setting $name=$  "
                         ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo " - Setting ${name}=$  "


In docker/thirdparties/docker-compose/common/hive-configure.sh line 48:
        addProperty $path $name "$value"
                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        addProperty "${path}" "${name}" "${value}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 27:
    echo "" > "$output_file"
               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "" > "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 31:
        if [ -n "$type_value" ]; then
           ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ -n "${type_value}" ]]; then


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 32:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_type\": \"${type_value}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 34:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 36:
        echo "$line"  >> "$output_file"
              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "${line}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 38:
    done < "$data_file"
            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    done < "${data_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 79:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 80:
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 119:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 120:
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 126:
curl "http://${ES_7_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_7_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 172:
generate_bulk_request "composite_type_array" "_doc" "item_" "$array_data_file" "$bulk_request_file"
                                                             ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "_doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 173:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 182:
generate_bulk_request "test_keyword_array" "_doc" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                           ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "_doc" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 183:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 187:
curl "http://${ES_8_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_8_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 223:
generate_bulk_request "composite_type_array" "" "item_" "$array_data_file" "$bulk_request_file"
                                                         ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                            ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 224:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 233:
generate_bulk_request "test_keyword_array" "" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                       ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                  ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 234:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 21:
. /mnt/scripts/bootstrap/bootstrap-groups.sh
  ^-- SC1091 (info): Not following: /mnt/scripts/bootstrap/bootstrap-groups.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 27:
    [ -e "$file" ] || continue
    ^------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    [[ -e "${file}" ]] || continue


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 28:
    tar -xzvf "$file" -C "$AUX_LIB"
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    tar -xzvf "${file}" -C "${AUX_LIB}"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 53:
while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
        ^-- SC2091 (warning): Remove surrounding $() to avoid executing output (or use eval if intentional).


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 57:
if [[ ${NEED_LOAD_DATA} = "0" ]]; then
      ^---------------^ SC2154 (warning): NEED_LOAD_DATA is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 64:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 69:
    echo "Script: create_paimon_table.hql executed in $EXECUTION_TIME seconds"
                                                      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Script: create_paimon_table.hql executed in ${EXECUTION_TIME} seconds"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 88:
    printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                     ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                      ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 164:
    printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                                                            ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 28:
    relative_archive_path="${archive_path#${CUR_DIR}/}"
                                          ^--------^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns.

Did you mean: 
    relative_archive_path="${archive_path#"${CUR_DIR}"/}"


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 35:
    printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
                                                             ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                       ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 56:
        curl -O "https://${s3BucketName}.${s3Endpoint}/regression/datalake/pipeline_data/${remote_path}"
                         ^-------------^ SC2154 (warning): s3BucketName is referenced but not assigned.
                                         ^-----------^ SC2154 (warning): s3Endpoint is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 108:
cd ${CUR_DIR}/auxlib
   ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
cd "${CUR_DIR}"/auxlib


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 85:
METASTORE_HOST=$(echo "${HIVE_METASTORE_URIS}" | sed 's|thrift://||' | cut -d: -f1)
                       ^--------------------^ SC2154 (warning): HIVE_METASTORE_URIS is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 90:
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
while [[ "${RETRY_COUNT}" -lt "${MAX_RETRIES}" ]]; do


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 103:
    if [ $RETRY_COUNT -eq 0 ]; then
       ^--------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${RETRY_COUNT}" -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 111:
  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
     ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
  if [[ $((RETRY_COUNT % 10)) -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 117:
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${RETRY_COUNT}" -ge "${MAX_RETRIES}" ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 127:
    <value>${S3_ENDPOINT}</value>
           ^------------^ SC2154 (warning): S3_ENDPOINT is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 131:
    <value>${MINIO_ROOT_USER}</value>
           ^----------------^ SC2154 (warning): MINIO_ROOT_USER is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 135:
    <value>${MINIO_ROOT_PASSWORD}</value>
           ^--------------------^ SC2154 (warning): MINIO_ROOT_PASSWORD is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 165:
    <value>s3a://${HUDI_BUCKET}/warehouse</value>
                 ^------------^ SC2154 (warning): HUDI_BUCKET is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 171:
HUDI_BUNDLE_JAR_FILE=$(download_jar "hudi-spark3.5-bundle_2.12" "${HUDI_BUNDLE_VERSION}" "${HUDI_BUNDLE_URL}")
                                                                 ^--------------------^ SC2154 (warning): HUDI_BUNDLE_VERSION is referenced but not assigned.
                                                                                          ^----------------^ SC2154 (warning): HUDI_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 176:
HADOOP_AWS_JAR=$(download_jar "hadoop-aws" "${HADOOP_AWS_VERSION}" "${HADOOP_AWS_URL}")
                                            ^-------------------^ SC2154 (warning): HADOOP_AWS_VERSION is referenced but not assigned.
                                                                    ^---------------^ SC2154 (warning): HADOOP_AWS_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 181:
AWS_SDK_BUNDLE_JAR=$(download_jar "aws-java-sdk-bundle" "${AWS_SDK_BUNDLE_VERSION}" "${AWS_SDK_BUNDLE_URL}")
                                                         ^-----------------------^ SC2154 (warning): AWS_SDK_BUNDLE_VERSION is referenced but not assigned.
                                                                                     ^-------------------^ SC2154 (warning): AWS_SDK_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 185:
POSTGRESQL_JDBC_JAR=$(download_jar "postgresql" "${POSTGRESQL_JDBC_VERSION}" "${POSTGRESQL_JDBC_URL}")
                                                 ^------------------------^ SC2154 (warning): POSTGRESQL_JDBC_VERSION is referenced but not assigned.
                                                                              ^--------------------^ SC2154 (warning): POSTGRESQL_JDBC_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 209:
  ${SPARK_HOME}/bin/spark-sql \
  ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
  "${SPARK_HOME}"/bin/spark-sql \


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 229:
touch ${SUCCESS_FILE}
      ^-------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
touch "${SUCCESS_FILE}"


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 19:
source /usr/local/common/hive-configure.sh
       ^-- SC1091 (info): Not following: /usr/local/common/hive-configure.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 20:
source /usr/local/common/event-hook.sh
       ^-----------------------------^ SC1091 (info): Not following: /usr/local/common/event-hook.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 34:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 36:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 75:
if [ $i -eq 60 ]; then
   ^-----------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
     ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${i}" -eq 60 ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 82:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 84:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 91:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh line 34:
if [ "$FAILED" == "" ]; then
   ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FAILED}" == "" ]]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 27:
echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
                                                                ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Waiting for Polaris health check at http://${HOST}:${PORT}/q/health ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 28:
for i in $(seq 1 120); do
^-^ SC2034 (warning): i appears unused. Verify use (or export if used externally).


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 29:
  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if curl -sSf "http://${HOST}:8182/q/health" >/dev/null; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 38:
  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/catalog/v1/oauth/tokens" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 40:
  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "grant_type=client_credentials&client_id=${USER}&client_secret=${PASS}&scope=PRINCIPAL_ROLE:ALL")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 43:
TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
                     ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
TOKEN=$(printf "%s" "${TOKEN_JSON}" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 45:
if [ -z "$TOKEN" ]; then
         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ -z "${TOKEN}" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 46:
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
                                                                      ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: ${TOKEN_JSON}" >&2


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 50:
echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
                                       ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                            ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Creating catalog '${CATALOG}' with base '${BASE_LOCATION}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 53:
  "name": "$CATALOG",
           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  "name": "${CATALOG}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 56:
    "default-base-location": "$BASE_LOCATION",
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "default-base-location": "${BASE_LOCATION}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 66:
    "allowedLocations": ["$BASE_LOCATION"]
                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "allowedLocations": ["${BASE_LOCATION}"]


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 74:
  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/catalogs" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 75:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 77:
  -d "$CREATE_PAYLOAD")
      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "${CREATE_PAYLOAD}")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 79:
if [ "$HTTP_CODE" = "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" = "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 81:
elif [ "$HTTP_CODE" = "409" ]; then
        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
elif [ "${HTTP_CODE}" = "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 84:
  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
                                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Create catalog failed (HTTP ${HTTP_CODE}):"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 89:
echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Setting up permissions for catalog '${CATALOG}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 94:
  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/catalogs/${CATALOG}/catalog-roles/catalog_admin/grants" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 95:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 99:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 100:
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 107:
  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 108:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 112:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ] && [ "${HTTP_CODE}" != "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 113:
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
                                                                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 120:
  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principal-roles/data_engineer/catalog-roles/${CATALOG}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 121:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 125:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 126:
  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
                                                              ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to connect roles (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 133:
  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principals/root/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 134:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 138:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 139:
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
                                                                                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/ranger/ranger-admin/ranger-entrypoint.sh line 24:
cd $RANGER_HOME
   ^----------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.
   ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${RANGER_HOME}"


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 16:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 19:
if [ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^------------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.

Did you mean: 
if [[ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]]; then


In docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh line 15:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/jindofs-helpers.sh line 29:
    local target_system="$1"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 30:
    local target_arch="$2"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 50:
    local jar_name="$1"
    ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 51:
    local pattern
    ^-----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 53:
        case "${jar_name}" in
        ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In docker/thirdparties/jindofs-helpers.sh line 54:
            ${pattern})
            ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob.


In docker/thirdparties/jindofs-helpers.sh line 63:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 64:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 74:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 75:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 76:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 77:
    local count=0
    ^---------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 90:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 91:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 92:
    local target_system="$3"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 93:
    local target_arch="$4"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 94:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 95:
    local platform_jar_pattern
    ^------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/run-thirdparties-docker.sh line 58:
export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
       ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 135:
    echo ${COMPONENTS}
         ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    echo "${COMPONENTS}"


In docker/thirdparties/run-thirdparties-docker.sh line 167:
RUN_OCENABASE=0
^-----------^ SC2034 (warning): RUN_OCENABASE appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 538:
        local backup_dir=/home/work/pipline/backup_center
              ^--------^ SC2034 (warning): backup_dir appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 543:
            echo "docker exec "${container_id}" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"
                               ^-------------^ SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them.
                               ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
            echo "docker exec ""${container_id}"" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"


In docker/thirdparties/run-thirdparties-docker.sh line 571:
    sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 573:
        sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 591:
    sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 593:
        sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 629:
    . "${HUDI_DIR}"/hudi.env
      ^--------------------^ SC1091 (info): Not following: ./hudi.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 673:
        mv *.tbl ../lakesoul/test_files/tpch/data
           ^-- SC2035 (info): Use ./*glob* or -- *glob* so names with dashes won't become options.


In docker/thirdparties/run-thirdparties-docker.sh line 675:
        export TPCH_DATA=$(realpath lakesoul/test_files/tpch/data)
               ^-------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 691:
        . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
          ^-- SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.
                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        . "${ROOT}"/docker-compose/kerberos/kerberos"${i}"_settings.env


In docker/thirdparties/run-thirdparties-docker.sh line 692:
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
                                                                                                                       ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-"${i}".env


In docker/thirdparties/run-thirdparties-docker.sh line 693:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/my.cnf


In docker/thirdparties/run-thirdparties-docker.sh line 694:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf


In docker/thirdparties/run-thirdparties-docker.sh line 695:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf


In docker/thirdparties/run-thirdparties-docker.sh line 731:
    . "${POLARIS_DIR}/polaris_settings.env"
      ^-- SC1091 (info): Not following: ./polaris_settings.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 780:
if [[ "$NEED_LOAD_DATA" -eq 1 ]]; then
       ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${NEED_LOAD_DATA}" -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 786:
if [[ $need_prepare_hive_data -eq 1 ]]; then
      ^---------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ ${need_prepare_hive_data} -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 794:
    export HIVE_BOOTSTRAP_GROUPS="$(bootstrap_merge_groups "${prepare_hive_bootstrap_groups[@]}")"
           ^-------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 912:
    wait "${pids[$compose]}" || status=$?
                 ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    wait "${pids[${compose}]}" || status=$?


In docker/thirdparties/run-thirdparties-docker.sh line 913:
    if [ $status -ne 0 ] && [ $compose != "db2" ]; then
       ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                              ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${status}" -ne 0 ]] && [[ "${compose}" != "db2" ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 914:
        echo "docker $compose started failed with status $status"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "docker ${compose} started failed with status ${status}"


In docker/thirdparties/run-thirdparties-docker.sh line 916:
        cat start_${compose}.log || true
                  ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        cat start_"${compose}".log || true


In env.sh line 369:
    CMAKE_USE_CCACHE_C="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
    ^----------------^ SC2034 (warning): CMAKE_USE_CCACHE_C appears unused. Verify use (or export if used externally).


In hooks/setup_worktree.sh line 21:
cp "$ROOT_WORKSPACE_PATH/custom_env.sh" custom_env.sh
    ^------------------^ SC2154 (warning): ROOT_WORKSPACE_PATH is referenced but not assigned.
    ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp "${ROOT_WORKSPACE_PATH}/custom_env.sh" custom_env.sh


In hooks/setup_worktree.sh line 24:
cp -r "$ROOT_WORKSPACE_PATH/thirdparty/installed" thirdparty/
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -r "${ROOT_WORKSPACE_PATH}/thirdparty/installed" thirdparty/


In hooks/setup_worktree.sh line 27:
cp -f "$ROOT_WORKSPACE_PATH/build.sh" build.sh
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -f "${ROOT_WORKSPACE_PATH}/build.sh" build.sh


In post-build.sh line 196:
    if [[ "$(echo "${DISABLE_BUILD_JUICEFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JUICEFS is referenced but not assigned.


In post-build.sh line 203:
    if [[ "$(echo "${DISABLE_BUILD_JINDOFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JINDOFS is referenced but not assigned.


In regression-test/pipeline/cloud_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 67:
        echo "regressionAliyunStsRegion='${regressionAliyunStsRegion:-cn-hongkong}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 68:
        echo "regressionAliyunStsRoleArn='${regressionAliyunStsRoleArn:-}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 70:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 73:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 74:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 75:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh --stop; then echo; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 76:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c kafka; then echo; else echo "ERROR: start kafka docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                          ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                                     ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 77:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 78:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 79:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 87:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 89:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 93:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 94:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 97:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 98:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 99:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 100:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 101:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 102:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 104:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/common/doris-utils.sh line 1013:
    local fe_pid=$(pgrep -f "org.apache.doris.DorisFE")
          ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In regression-test/pipeline/common/doris-utils.sh line 1015:
    jstack $fe_pid >${DORIS_HOME}/fe/log/fe_stack.txt
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack ${fe_pid} >${DORIS_HOME}/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1016:
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof $fe_pid
                                                            ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof ${fe_pid}


In regression-test/pipeline/common/doris-utils.sh line 1018:
    jstack $fe_pid >"${DORIS_HOME}"/fe/log/fe_stack.txt
           ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack "${fe_pid}" >"${DORIS_HOME}"/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1019:
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof $fe_pid
                                                              ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                              ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof "${fe_pid}"


In regression-test/pipeline/common/stage-timer.sh line 59:
            "${STAGE_TIMER_STAGE_NAMES[$index]}" \
                                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_NAMES[${index}]}" \


In regression-test/pipeline/common/stage-timer.sh line 60:
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[$index]}")" \
                                                                        ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[${index}]}")" \


In regression-test/pipeline/common/stage-timer.sh line 61:
            "${STAGE_TIMER_STAGE_SECONDS[$index]}"
                                         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_SECONDS[${index}]}"


In regression-test/pipeline/external/external-stage-timer.sh line 21:
    return 1 2>/dev/null || exit 1
                            ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/external/external-stage-timer.sh line 52:
    case "${current_command}" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In regression-test/pipeline/external/external-stage-timer.sh line 78:
    local current_command="${1:-$BASH_COMMAND}"
                                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    local current_command="${1:-${BASH_COMMAND}}"


In regression-test/pipeline/vault_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 68:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 72:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 73:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 74:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio ||
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 75:
        bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 76:
        echo "INFO: start minio docker success"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 78:
        echo "ERROR: start minio docker twice failed" && return 1
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                         ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 82:
    docker_compose_hdfs_yaml='
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 116:
    if echo "${docker_compose_hdfs_yaml}" >docker-compose.yaml && docker-compose up -d; then echo; else echo "ERROR: start hdfs docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                  ^------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                             ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 117:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 118:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 119:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 127:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 129:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 133:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 134:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 137:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 138:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 139:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 140:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 141:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 142:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 144:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In run-be-ut.sh line 150:
    WITH_TDE_DIR        -- ${WITH_TDE_DIR}
                           ^-------------^ SC2154 (warning): WITH_TDE_DIR is referenced but not assigned.


In run-cloud-ut.sh line 199:
    -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In run-cloud-ut.sh line 204:
    "${CMAKE_USE_CCACHE}" \
     ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
     ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In run-fs-env-test.sh line 44:
    case "$arg" in
          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${arg}" in


In run-fs-env-test.sh line 74:
        *) echo "Unknown option: $arg"; exit 1 ;;
                                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        *) echo "Unknown option: ${arg}"; exit 1 ;;


In run-fs-env-test.sh line 80:
case "$SERVICE" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${SERVICE}" in


In run-fs-env-test.sh line 94:
    *) echo "Unknown service: $SERVICE"; exit 1 ;;
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    *) echo "Unknown service: ${SERVICE}"; exit 1 ;;


In run-fs-env-test.sh line 98:
echo "Running filesystem environment tests for: $TAG (modules: $MODULES)"
                                                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Running filesystem environment tests for: ${TAG} (modules: ${MODULES})"


In run-fs-env-test.sh line 101:
    -Dgroups="$TAG" \
              ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -Dgroups="${TAG}" \


In thirdparty/build-thirdparty.sh line 1386:
    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
                       ^--------------^ SC2154 (warning): CMAKE_CXX_FLAGS is referenced but not assigned.
                       ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base" \


In thirdparty/build-thirdparty.sh line 1977:
    cp -r ${TP_SOURCE_DIR}/${JINDOFS_SOURCE}/* "${TP_INSTALL_DIR}/jindofs_libs/"
          ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    cp -r "${TP_SOURCE_DIR}"/"${JINDOFS_SOURCE}"/* "${TP_INSTALL_DIR}/jindofs_libs/"


In thirdparty/build-thirdparty.sh line 2051:
    if [ -d "arrow_ep-install/lib" ]; then
       ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -d "arrow_ep-install/lib" ]]; then


In thirdparty/build-thirdparty.sh line 2059:
            if [ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]; then
               ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
            if [[ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]]; then


In thirdparty/build-thirdparty.sh line 2068:
    if [ -f "release/libroaring_bitmap.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libroaring_bitmap.a" ]]; then


In thirdparty/build-thirdparty.sh line 2073:
    if [ -f "release/libxxhash.a" ]; then
       ^--------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libxxhash.a" ]]; then


In thirdparty/build-thirdparty.sh line 2078:
    if [ -f "fmt_ep-install/lib/libfmt.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "fmt_ep-install/lib/libfmt.a" ]]; then


In thirdparty/build-thirdparty.sh line 2083:
    if [ -f "tbb_ep-install/lib/libtbb.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "tbb_ep-install/lib/libtbb.a" ]]; then


In thirdparty/build-thirdparty.sh line 2207:
                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
                       ^-- SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2251:
                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
                           ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2287:
        rm -rf "${TP_SOURCE_DIR}/${src_dir}"
               ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/download-prebuild-thirdparty.sh line 30:
if [ -z "$VERSION" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -z "${VERSION}" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 41:
case "$OS" in
      ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${OS}" in


In thirdparty/download-prebuild-thirdparty.sh line 49:
    echo "Unsupported OS: $OS"
                          ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported OS: ${OS}"


In thirdparty/download-prebuild-thirdparty.sh line 57:
case "$ARCH" in
      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${ARCH}" in


In thirdparty/download-prebuild-thirdparty.sh line 65:
    echo "Unsupported architecture: $ARCH"
                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported architecture: ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 73:
case "$VERSION" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 87:
    echo "Unsupported version: $VERSION"
                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported version: ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 97:
if [ "$PLATFORM" = "darwin" ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${PLATFORM}" = "darwin" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 100:
  if [ "$ARCH" = "arm64" ]; then
     ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if [[ "${ARCH}" = "arm64" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 101:
    case "$VERSION" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.
          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 125:
echo "Detected platform : $PLATFORM"
                          ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected platform : ${PLATFORM}"


In thirdparty/download-prebuild-thirdparty.sh line 126:
echo "Detected arch     : $ARCH"
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected arch     : ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 127:
echo "Version           : $VERSION"
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Version           : ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 128:
echo "Downloading       : $URL"
                          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Downloading       : ${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 135:
  curl -fL -o "$FILENAME" "$URL"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  curl -fL -o "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 137:
  wget -O "$FILENAME" "$URL"
           ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  wget -O "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 145:
echo "  $(pwd)/$FILENAME"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  $(pwd)/${FILENAME}"


In thirdparty/download-thirdparty.sh line 718:
    cd $TP_SOURCE_DIR/$CCTZ_SOURCE
       ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
       ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    cd "${TP_SOURCE_DIR}"/"${CCTZ_SOURCE}"


In thirdparty/download-thirdparty.sh line 719:
    if [[ ! -f "$PATCHED_MARK" ]] ; then
                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ ! -f "${PATCHED_MARK}" ]] ; then


In thirdparty/download-thirdparty.sh line 724:
        touch "$PATCHED_MARK"
               ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        touch "${PATCHED_MARK}"


In tools/export_mysql_rule_to_json.sh line 30:
echo "Database Host: $DB_HOST"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Host: ${DB_HOST}"


In tools/export_mysql_rule_to_json.sh line 31:
echo "Database User: $DB_USER"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database User: ${DB_USER}"


In tools/export_mysql_rule_to_json.sh line 32:
echo "Database Name: $DB_NAME"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Name: ${DB_NAME}"


In tools/export_mysql_rule_to_json.sh line 33:
echo "Password: $(if [ -n "$DB_PASS" ]; then echo "Set"; else echo "Not set"; fi)"
                     ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Password: $(if [[ -n "${DB_PASS}" ]]; then echo "Set"; else echo "Not set"; fi)"


In tools/export_mysql_rule_to_json.sh line 34:
echo "Table Name: $TABLE_NAME"
                  ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Table Name: ${TABLE_NAME}"


In tools/export_mysql_rule_to_json.sh line 35:
echo "Output File: $OUTPUT_FILE"
                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Output File: ${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 61:
if [ -n "$DB_PASS" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -n "${DB_PASS}" ]]; then


In tools/export_mysql_rule_to_json.sh line 62:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -N 2>/dev/null)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" -N 2>/dev/null)


In tools/export_mysql_rule_to_json.sh line 64:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER $DB_NAME -N)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" "${DB_NAME}" -N)


In tools/export_mysql_rule_to_json.sh line 68:
if [ "$JSON_DATA" = "NULL" ] || [ -z "$JSON_DATA" ]; then
   ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${JSON_DATA}" = "NULL" ]] || [[ -z "${JSON_DATA}" ]]; then


In tools/export_mysql_rule_to_json.sh line 73:
echo "$JSON_DATA" > "$OUTPUT_FILE"
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${JSON_DATA}" > "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 77:
    jq '.' "$OUTPUT_FILE" | awk '
            ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jq '.' "${OUTPUT_FILE}" | awk '


In tools/export_mysql_rule_to_json.sh line 80:
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
                                                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 83:
echo "Export completed: $OUTPUT_FILE"
                        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Export completed: ${OUTPUT_FILE}"


In tools/lzo/build.sh line 1:
# Licensed to the Apache Software Foundation (ASF) under one
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.


In tools/lzo/build.sh line 20:
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I${DORIS_THIRDPARTY}/installed/include -L${DORIS_THIRDPARTY}/installed/lib -llzo2 -std=c++17
                                             ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                     ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I"${DORIS_THIRDPARTY}"/installed/include -L"${DORIS_THIRDPARTY}"/installed/lib -llzo2 -std=c++17

For more information:
  https://www.shellcheck.net/wiki/SC1128 -- The shebang must be on the first ...
  https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
  https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt ' returned error 1 finding the following formatting issues:

----------
--- bin/start_be.sh.orig
+++ bin/start_be.sh
@@ -450,45 +450,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_fe.sh.orig
+++ bin/start_fe.sh
@@ -210,45 +210,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_file_cache_microbench.sh.orig
+++ bin/start_file_cache_microbench.sh
@@ -115,7 +115,6 @@
     exit 1
 fi
 
-
 JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:5000,dirty_decay_ms:5000,oversize_threshold:0,prof:true,lg_prof_interval:30,lg_prof_sample:19,prof_final:false,prof_active:true"
 JEMALLOC_PROF_PRFIX="jeprofile_doris_cloud"
 
--- build-support/clang-format.sh.orig
+++ build-support/clang-format.sh
@@ -36,7 +36,7 @@
         echo "Error: Homebrew is missing. Please install it first due to we use Homebrew to manage the tools which are needed to build the project."
         exit 1
     fi
-    if ! brew list llvm@16 > /dev/null 2>&1; then
+    if ! brew list llvm@16 >/dev/null 2>&1; then
         echo "Error: Please install llvm@16 firt due to we use it to format code."
         exit 1
     fi
--- build-support/run-clang-tidy.sh.orig
+++ build-support/run-clang-tidy.sh
@@ -86,36 +86,36 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --base)
-            BASE_REF="$2"
-            shift 2
-            ;;
-        --files)
+    --base)
+        BASE_REF="$2"
+        shift 2
+        ;;
+    --files)
+        shift
+        while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
+            SPECIFIC_FILES+=("$1")
             shift
-            while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
-                SPECIFIC_FILES+=("$1")
-                shift
-            done
-            ;;
-        --build-dir)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        --fix)
-            FIX_MODE="-fix"
-            shift
-            ;;
-        --full)
-            FULL_FILE_MODE=true
-            shift
-            ;;
-        -h|--help)
-            usage
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage 1
-            ;;
+        done
+        ;;
+    --build-dir)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    --fix)
+        FIX_MODE="-fix"
+        shift
+        ;;
+    --full)
+        FULL_FILE_MODE=true
+        shift
+        ;;
+    -h | --help)
+        usage
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage 1
+        ;;
     esac
 done
 
@@ -255,7 +255,7 @@
             # Append range to the file's entry (space-separated "start:end" pairs)
             CHANGED_LINES_MAP["${current_file}"]+="${start}:${end} "
         fi
-    done <<< "${diff_output}"
+    done <<<"${diff_output}"
 }
 
 # Check if a line number falls within any changed range for a file.
@@ -348,7 +348,7 @@
                         FILE_COUNT=$((FILE_COUNT + 1))
                     fi
                 fi
-            done <<< "$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
+            done <<<"$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
 
             if [[ ${FILE_COUNT} -gt 0 ]]; then
                 echo "${FILE_WARNINGS}"
--- build.sh.orig
+++ build.sh
@@ -275,11 +275,11 @@
         --be-cdc-client)
             BUILD_BE_CDC_CLIENT=1
             shift
-            ;;    
+            ;;
         --exclude-obs-dependencies)
             BUILD_OBS_DEPENDENCIES=0
             shift
-            ;; 
+            ;;
         --exclude-cos-dependencies)
             BUILD_COS_DEPENDENCIES=0
             shift
@@ -291,7 +291,7 @@
         --disable-dynamic-arch)
             ENABLE_DYNAMIC_ARCH='OFF'
             shift
-            ;;           
+            ;;
         --clean)
             CLEAN=1
             shift
@@ -340,7 +340,7 @@
         BUILD_META_TOOL='ON'
         BUILD_FILE_CACHE_MICROBENCH_TOOL='OFF'
         BUILD_INDEX_TOOL='ON'
-	    BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
+        BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
         BUILD_HIVE_UDF=1
         BUILD_BE_JAVA_EXTENSIONS=1
         BUILD_BE_CDC_CLIENT=1
@@ -590,7 +590,10 @@
 FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
 FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
 
-export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
+export DORIS_FEATURE_LIST=$(
+    IFS=','
+    echo "${FEAT[*]}"
+)
 echo "Feature List: ${DORIS_FEATURE_LIST}"
 
 # Clean and build generated code
@@ -838,8 +841,8 @@
         rm -f "${log_file}"
         return 0
     fi
-    if [[ "${thread_count}" != "${retry_thread_count}" ]] && \
-            grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
+    if [[ "${thread_count}" != "${retry_thread_count}" ]] &&
+        grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
         echo "FE Maven build hit parallel build issue (lock contention or reactor artifact race). Retrying with -T ${retry_thread_count}."
         mvn_cmd=("${mvn_cmd[@]:0:${#mvn_cmd[@]}-2}" -T "${retry_thread_count}")
         "${mvn_cmd[@]}"
@@ -927,12 +930,12 @@
     unset FS_PLUGIN_DIR fs_module fs_plugin_target fs_module_dir
 
     if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
-      mkdir -p "${DORIS_OUTPUT}/fe/arthas"
-      rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
-      unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
-      unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
-      rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
-      rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
+        mkdir -p "${DORIS_OUTPUT}/fe/arthas"
+        rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
+        unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
+        unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
+        rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
+        rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
     fi
 fi
 
@@ -1050,15 +1053,15 @@
         module_proj_jar="${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/${extensions_module}-project.jar"
         mkdir "${BE_JAVA_EXTENSIONS_DIR}"/"${extensions_module}"
         echo "Copy Be Extensions ${extensions_module} jar to ${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}"
-     if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
-          
+        if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
+
             BE_HADOOP_HDFS_DIR="${DORIS_OUTPUT}/be/lib/hadoop_hdfs/"
             echo "Copy Be Extensions hadoop deps jars to ${BE_HADOOP_HDFS_DIR}"
             rm -rf "${BE_HADOOP_HDFS_DIR}"
             mkdir "${BE_HADOOP_HDFS_DIR}"
             HADOOP_DEPS_JAR_DIR="${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}/target"
             echo "HADOOP_DEPS_JAR_DIR: ${HADOOP_DEPS_JAR_DIR}"
-            if  [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
+            if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
                 echo "WARN: lib directory missing (likely due to Maven cache). Regenerating..."
                 pushd "${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}"
                 "${MVN_CMD}" dependency:copy-dependencies -DskipTests -Dcheckstyle.skip=true
@@ -1083,7 +1086,7 @@
                 cp -r "${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/lib" "${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}/"
             fi
         fi
-    done        
+    done
 
     # Third-party filesystem jars (JuiceFS, JindoFS) are packaged by post-build.sh
     "${DORIS_HOME}/post-build.sh" --be --output "${DORIS_OUTPUT}"
--- build_profile.sh.orig
+++ build_profile.sh
@@ -58,7 +58,10 @@
             mtime=$(stat -c %Y "$f")
         fi
         [[ "$mtime" -gt "$last_time" ]] && echo "$f"
-    done < <(git diff --name-only 2>/dev/null; git ls-files --others --exclude-standard 2>/dev/null)
+    done < <(
+        git diff --name-only 2>/dev/null
+        git ls-files --others --exclude-standard 2>/dev/null
+    )
 }
 
 # Read last_build_time from log (0 for first build)
@@ -96,7 +99,7 @@
     files=$(collect_files "${last_time}")
 
     # Write state to temp file
-    cat > "${state_file}" <<EOF
+    cat >"${state_file}" <<EOF
 _BP_START=${start_time}
 _BP_USER=${user}
 _BP_DIR=${build_dir}
@@ -105,8 +108,8 @@
 _BP_ARGS=${build_args}
 EOF
     # Write files as separate lines after a marker
-    echo "===FILES==="  >> "${state_file}"
-    echo "${files}"     >> "${state_file}"
+    echo "===FILES===" >>"${state_file}"
+    echo "${files}" >>"${state_file}"
 }
 
 cmd_record() {
@@ -124,7 +127,7 @@
         [[ "$key" == "===FILES===" ]] && break
         [[ "$key" == _BP_* ]] || continue
         eval "${key}='${value}'"
-    done < "${state_file}"
+    done <"${state_file}"
 
     # Read files (everything after ===FILES=== marker)
     local files
@@ -136,17 +139,17 @@
     load_avg=$(uptime | grep -oE 'load average[s]?: .*' | sed 's/load average[s]\{0,1\}: //')
 
     # Write record via python3 (env vars + stdin for safety)
-    echo "${files}" | \
-    _BP_USER="${_BP_USER}" \
-    _BP_DIR="${_BP_DIR}" \
-    _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
-    _BP_COMMIT="${_BP_COMMIT}" \
-    _BP_ARGS="${_BP_ARGS}" \
-    _BP_START="${_BP_START}" \
-    _BP_EXIT_CODE="${exit_code}" \
-    _BP_END_TIME="${end_time}" \
-    _BP_LOAD_AVG="${load_avg}" \
-    python3 -c "
+    echo "${files}" |
+        _BP_USER="${_BP_USER}" \
+            _BP_DIR="${_BP_DIR}" \
+            _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
+            _BP_COMMIT="${_BP_COMMIT}" \
+            _BP_ARGS="${_BP_ARGS}" \
+            _BP_START="${_BP_START}" \
+            _BP_EXIT_CODE="${exit_code}" \
+            _BP_END_TIME="${end_time}" \
+            _BP_LOAD_AVG="${load_avg}" \
+            python3 -c "
 import json, os, sys
 
 files = [line.strip() for line in sys.stdin if line.strip()]
@@ -166,21 +169,21 @@
     'load_avg': os.environ['_BP_LOAD_AVG'],
 }
 print(json.dumps(record))
-" >> "${LOG_FILE}"
+" >>"${LOG_FILE}"
 
     # Clean up state file
     rm -f "${state_file}"
 }
 
 case "$1" in
-    collect)
-        cmd_collect "$2" "$3"
-        ;;
-    record)
-        cmd_record "$2" "$3"
-        ;;
-    *)
-        echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
-        exit 1
-        ;;
+collect)
+    cmd_collect "$2" "$3"
+    ;;
+record)
+    cmd_record "$2" "$3"
+    ;;
+*)
+    echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
+    exit 1
+    ;;
 esac
--- cloud/script/build_fdb.sh.orig
+++ cloud/script/build_fdb.sh
@@ -53,7 +53,7 @@
 
 # Print help message
 show_help() {
-    cat << EOF
+    cat <<EOF
 Usage: $0 [OPTIONS]
 
 Build FoundationDB using Docker.
@@ -110,110 +110,110 @@
 # Parse command line arguments
 while [[ $# -gt 0 ]]; do
     case $1 in
-        -v)
-            VERSION="$2"
-            shift 2
-            ;;
-        -o)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        -i)
-            DOCKER_IMAGE="$2"
-            shift 2
-            ;;
-        -s)
-            SRC_DIR="$2"
-            shift 2
-            ;;
-        -u)
-            UPDATE_REPO=false
-            shift
-            ;;
-        --aws)
-            BUILD_AWS_BACKUP=true
-            shift
-            ;;
-        --azure)
-            BUILD_AZURE_BACKUP=true
-            shift
-            ;;
-        --no-jemalloc)
-            USE_JEMALLOC=false
-            shift
-            ;;
-        --no-lto)
-            USE_LTO=false
-            shift
-            ;;
-        --no-debug-syms)
-            FULL_DEBUG_SYMBOLS=false
-            shift
-            ;;
-        --no-docs)
-            BUILD_DOCUMENTATION=false
-            shift
-            ;;
-        --no-rocksdb)
-            WITH_ROCKSDB=false
-            shift
-            ;;
-        --no-grpc)
-            WITH_GRPC=false
-            shift
-            ;;
-        --debug-syms)
-            FULL_DEBUG_SYMBOLS=true
-            shift
-            ;;
-        --docs)
-            BUILD_DOCUMENTATION=true
-            shift
-            ;;
-        --rocksdb)
-            WITH_ROCKSDB=true
-            shift
-            ;;
-        --grpc)
-            WITH_GRPC=true
-            shift
-            ;;
-        --java)
-            BUILD_JAVA_BINDING=true
-            shift
-            ;;
-        --go)
-            BUILD_GO_BINDING=true
-            shift
-            ;;
-        --swift)
-            BUILD_SWIFT_BINDING=true
-            shift
-            ;;
-        --ruby)
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --all-bindings)
-            BUILD_JAVA_BINDING=true
-            BUILD_GO_BINDING=true
-            BUILD_SWIFT_BINDING=true
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --minimal-bindings)
-            BUILD_PYTHON_BINDING=false
-            shift
-            ;;
-        -h)
-            show_help
-            exit 0
-            ;;
-        *)
-            echo -e "${RED}Unknown option: $1${NC}" >&2
-            show_help
-            exit 1
-            ;;
+    -v)
+        VERSION="$2"
+        shift 2
+        ;;
+    -o)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    -i)
+        DOCKER_IMAGE="$2"
+        shift 2
+        ;;
+    -s)
+        SRC_DIR="$2"
+        shift 2
+        ;;
+    -u)
+        UPDATE_REPO=false
+        shift
+        ;;
+    --aws)
+        BUILD_AWS_BACKUP=true
+        shift
+        ;;
+    --azure)
+        BUILD_AZURE_BACKUP=true
+        shift
+        ;;
+    --no-jemalloc)
+        USE_JEMALLOC=false
+        shift
+        ;;
+    --no-lto)
+        USE_LTO=false
+        shift
+        ;;
+    --no-debug-syms)
+        FULL_DEBUG_SYMBOLS=false
+        shift
+        ;;
+    --no-docs)
+        BUILD_DOCUMENTATION=false
+        shift
+        ;;
+    --no-rocksdb)
+        WITH_ROCKSDB=false
+        shift
+        ;;
+    --no-grpc)
+        WITH_GRPC=false
+        shift
+        ;;
+    --debug-syms)
+        FULL_DEBUG_SYMBOLS=true
+        shift
+        ;;
+    --docs)
+        BUILD_DOCUMENTATION=true
+        shift
+        ;;
+    --rocksdb)
+        WITH_ROCKSDB=true
+        shift
+        ;;
+    --grpc)
+        WITH_GRPC=true
+        shift
+        ;;
+    --java)
+        BUILD_JAVA_BINDING=true
+        shift
+        ;;
+    --go)
+        BUILD_GO_BINDING=true
+        shift
+        ;;
+    --swift)
+        BUILD_SWIFT_BINDING=true
+        shift
+        ;;
+    --ruby)
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --all-bindings)
+        BUILD_JAVA_BINDING=true
+        BUILD_GO_BINDING=true
+        BUILD_SWIFT_BINDING=true
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --minimal-bindings)
+        BUILD_PYTHON_BINDING=false
+        shift
+        ;;
+    -h)
+        show_help
+        exit 0
+        ;;
+    *)
+        echo -e "${RED}Unknown option: $1${NC}" >&2
+        show_help
+        exit 1
+        ;;
     esac
 done
 
--- cloud/script/start.sh.orig
+++ cloud/script/start.sh
@@ -54,9 +54,9 @@
 fi
 # echo "$@" "daemonized=${daemonized}"}
 
-custom_start="${DORIS_HOME}/bin/custom_start.sh" 
+custom_start="${DORIS_HOME}/bin/custom_start.sh"
 if [[ -f "${custom_start}" ]]; then
-  source "${custom_start}" 
+    source "${custom_start}"
 fi
 enable_hdfs=${enable_hdfs:-1}
 process_name="${process_name:-doris_cloud}"
--- docker/thirdparties/docker-compose/common/event-hook.sh.orig
+++ docker/thirdparties/docker-compose/common/event-hook.sh
--- docker/thirdparties/docker-compose/common/hive-configure.sh.orig
+++ docker/thirdparties/docker-compose/common/hive-configure.sh
@@ -19,16 +19,16 @@
 # Referenced from [docker-hive](https://github.com/big-data-europe/docker-hive)
 
 # Set some sensible defaults
-export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
+export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}
 
 function addProperty() {
-  local path=$1
-  local name=$2
-  local value=$3
+    local path=$1
+    local name=$2
+    local value=$3
 
-  local entry="<property><name>$name</name><value>${value}</value></property>"
-  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
-  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
+    local entry="<property><name>$name</name><value>${value}</value></property>"
+    local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
+    sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
 }
 
 function configure() {
@@ -38,10 +38,10 @@
 
     local var
     local value
-    
+
     echo "Configuring $module"
-    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
-        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
+    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix); do
+        name=$(echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')
         var="${envPrefix}_${c}"
         value=${!var}
         echo " - Setting $name=$  "
--- docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh.orig
+++ docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh
@@ -24,18 +24,18 @@
     local output_file=$5
 
     # clear output file
-    echo "" > "$output_file"
+    echo "" >"$output_file"
 
     local id=1
     while IFS= read -r line; do
         if [ -n "$type_value" ]; then
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         else
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         fi
-        echo "$line"  >> "$output_file"
+        echo "$line" >>"$output_file"
         id=$((id + 1))
-    done < "$data_file"
+    done <"$data_file"
 }
 
 array_data_file="/mnt/scripts/data/composite_type_array_bulk.json"
--- docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh
@@ -31,12 +31,11 @@
         return 0
     fi
 
-    IFS=',' read -r -a parsed_groups <<< "${cleaned_groups}"
+    IFS=',' read -r -a parsed_groups <<<"${cleaned_groups}"
     for group in "${parsed_groups[@]}"; do
         [[ -n "${group}" ]] || continue
         case "${group}" in
-        all|common|hive2_only|hive3_only)
-            ;;
+        all | common | hive2_only | hive3_only) ;;
         *)
             echo "Unknown hive bootstrap group: ${group}" >&2
             return 1
@@ -56,7 +55,7 @@
         deduped_groups+=("${group}")
     done
 
-    if (( ${#deduped_groups[@]} == 0 )); then
+    if ((${#deduped_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
@@ -98,11 +97,11 @@
         bootstrap_group_enabled "${normalized_groups}" "hive3_only" && include_hive3_only=1
     done
 
-    (( include_common == 1 )) && merged_groups+=("common")
-    (( include_hive2_only == 1 )) && merged_groups+=("hive2_only")
-    (( include_hive3_only == 1 )) && merged_groups+=("hive3_only")
+    ((include_common == 1)) && merged_groups+=("common")
+    ((include_hive2_only == 1)) && merged_groups+=("hive2_only")
+    ((include_hive3_only == 1)) && merged_groups+=("hive3_only")
 
-    if (( ${#merged_groups[@]} == 0 )); then
+    if ((${#merged_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
--- docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh
@@ -11,4 +11,3 @@
 hive -f "${CUR_DIR}"/create_table.hql
 
 hadoop fs -rm -r /user/doris/suites/default/hive_ignore_absent_partitions_table/country=India
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/orc_predicate_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh
@@ -3,11 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/regression/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/regression/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/some_serde_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/test/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/test/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh
@@ -19,4 +19,3 @@
 
 # # create table
 # hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh
@@ -36,7 +36,7 @@
 # Add JuiceFS jar into Hadoop classpath for `hadoop fs jfs://...`.
 shopt -s nullglob
 juicefs_jars=("${AUX_LIB}"/juicefs-hadoop-*.jar)
-if (( ${#juicefs_jars[@]} > 0 )); then
+if ((${#juicefs_jars[@]} > 0)); then
     for target in /opt/hadoop-3.2.1/share/hadoop/common/lib /opt/hadoop/share/hadoop/common/lib; do
         if [[ -d "${target}" ]]; then
             cp -f "${juicefs_jars[@]}" "${target}"/
@@ -48,7 +48,6 @@
 # start metastore
 nohup /opt/hive/bin/hive --service metastore &
 
-
 # wait metastore start
 while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
     sleep 5s
@@ -84,7 +83,7 @@
     fi
 done < <(find "${DATA_DIR}" -type f -name "run.sh" -print0)
 
-if (( ${#run_scripts[@]} > 0 )); then
+if ((${#run_scripts[@]} > 0)); then
     printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         bash -e "{}" || (echo "Failed to executing script: {}" && exit 1)
@@ -122,23 +121,20 @@
     hadoop_put_paths+=("${relative_path}")
 }
 
-
 ## put tpch1
 copy_to_hdfs_if_selected "tpch1.db"
 
 ## put paimon1
 copy_to_hdfs_if_selected "paimon1"
 
-
 ## put tvf_data
 copy_to_hdfs_if_selected "tvf_data"
 
 ## put other preinstalled data
 copy_to_hdfs_if_selected "preinstalled_data"
 
-
 # wait put finish
-if (( ${#hadoop_put_pids[@]} > 0 )); then
+if ((${#hadoop_put_pids[@]} > 0)); then
     wait "${hadoop_put_pids[@]}"
 fi
 
@@ -160,7 +156,7 @@
 done
 shopt -u nullglob
 
-if (( ${#preinstalled_hqls[@]} > 0 )); then
+if ((${#preinstalled_hqls[@]} > 0)); then
     printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         hive -f {} || (echo "Failed to executing hql: {}" && exit 1)
--- docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh
@@ -31,7 +31,7 @@
     fi
 done < <(find "${CUR_DIR}/data" -type f -name "*.tar.gz" -print0)
 
-if (( ${#extract_archives[@]} > 0 )); then
+if ((${#extract_archives[@]} > 0)); then
     printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
       f="$0"
       echo "Extracting hive data $f"
--- docker/thirdparties/docker-compose/hudi/scripts/init.sh.orig
+++ docker/thirdparties/docker-compose/hudi/scripts/init.sh
@@ -21,8 +21,8 @@
 # Remove SUCCESS file from previous run to ensure fresh initialization
 SUCCESS_FILE="/opt/hudi-scripts/SUCCESS"
 if [[ -f "${SUCCESS_FILE}" ]]; then
-  echo "Removing previous SUCCESS file to ensure fresh initialization..."
-  rm -f "${SUCCESS_FILE}"
+    echo "Removing previous SUCCESS file to ensure fresh initialization..."
+    rm -f "${SUCCESS_FILE}"
 fi
 
 SPARK_HOME=/opt/spark
@@ -34,50 +34,50 @@
 
 # Function to download a JAR file if it doesn't exist
 download_jar() {
-  local jar_name="$1"
-  local version="$2"
-  local url="$3"
-  local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
-  
-  if [[ ! -f "${jar_file}" ]]; then
-    echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
-    local download_success=false
-    if command -v curl >/dev/null 2>&1; then
-      if curl -sSfL "${url}" -o "${jar_file}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    elif command -v wget >/dev/null 2>&1; then
-      if wget -qO "${jar_file}" "${url}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    else
-      echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
-      exit 1
-    fi
-    
-    if [[ "${download_success}" == "false" ]]; then
-      echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
-      exit 1
-    fi
-    
+    local jar_name="$1"
+    local version="$2"
+    local url="$3"
+    local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
+
     if [[ ! -f "${jar_file}" ]]; then
-      echo "Error: Downloaded file ${jar_file} does not exist" >&2
-      exit 1
+        echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
+        local download_success=false
+        if command -v curl >/dev/null 2>&1; then
+            if curl -sSfL "${url}" -o "${jar_file}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        elif command -v wget >/dev/null 2>&1; then
+            if wget -qO "${jar_file}" "${url}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        else
+            echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
+            exit 1
+        fi
+
+        if [[ "${download_success}" == "false" ]]; then
+            echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
+            exit 1
+        fi
+
+        if [[ ! -f "${jar_file}" ]]; then
+            echo "Error: Downloaded file ${jar_file} does not exist" >&2
+            exit 1
+        fi
     fi
-  fi
-  echo "${jar_file}"
+    echo "${jar_file}"
 }
 
 # Function to link a JAR file to Spark jars directory
 link_jar() {
-  local jar_file="$1"
-  local jar_name="$2"
-  local version="$3"
-  ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
+    local jar_file="$1"
+    local jar_name="$2"
+    local version="$3"
+    ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
 }
 
 # Wait for Hive Metastore to be ready
@@ -88,35 +88,35 @@
 RETRY_COUNT=0
 
 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
-  if command -v nc >/dev/null 2>&1; then
-    if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+    if command -v nc >/dev/null 2>&1; then
+        if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    elif command -v timeout >/dev/null 2>&1; then
+        if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    else
+        # Fallback: just wait a bit and assume it's ready
+        if [ $RETRY_COUNT -eq 0 ]; then
+            echo "Warning: nc or timeout command not available, skipping metastore readiness check"
+            sleep 10
+            break
+        fi
     fi
-  elif command -v timeout >/dev/null 2>&1; then
-    if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+
+    RETRY_COUNT=$((RETRY_COUNT + 1))
+    if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
+        echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
     fi
-  else
-    # Fallback: just wait a bit and assume it's ready
-    if [ $RETRY_COUNT -eq 0 ]; then
-      echo "Warning: nc or timeout command not available, skipping metastore readiness check"
-      sleep 10
-      break
-    fi
-  fi
-  
-  RETRY_COUNT=$((RETRY_COUNT + 1))
-  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
-    echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
-  fi
-  sleep 2
+    sleep 2
 done
 
 if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
-  echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
-  exit 1
+    echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
+    exit 1
 fi
 
 # Write core-site for MinIO (S3A)
@@ -191,37 +191,37 @@
 TEMP_SQL_DIR="/tmp/hudi_sql"
 
 if [[ -d "${SCRIPTS_DIR}" ]]; then
-  mkdir -p "${TEMP_SQL_DIR}"
-  
-  # Process each SQL file: substitute environment variables and combine them
-  echo "Processing Hudi SQL scripts..."
-  for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
-    echo "Processing ${sql_file}..."
-    # Use sed to replace environment variables in SQL files
-    # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
-    sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-    echo "" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-  done
-  
-  # Run Spark SQL to execute all SQL scripts
-  echo "Executing Hudi SQL scripts..."
-  START_TIME=$(date +%s)
-  ${SPARK_HOME}/bin/spark-sql \
-    --master local[*] \
-    --name hudi-init \
-    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
-    --conf spark.sql.catalogImplementation=hive \
-    --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
-    --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
-    -f "${TEMP_SQL_DIR}/hudi_total.sql"
-  END_TIME=$(date +%s)
-  EXECUTION_TIME=$((END_TIME - START_TIME))
-  echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
-  
-  # Clean up temporary SQL file
-  rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    mkdir -p "${TEMP_SQL_DIR}"
+
+    # Process each SQL file: substitute environment variables and combine them
+    echo "Processing Hudi SQL scripts..."
+    for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
+        echo "Processing ${sql_file}..."
+        # Use sed to replace environment variables in SQL files
+        # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
+        sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+        echo "" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+    done
+
+    # Run Spark SQL to execute all SQL scripts
+    echo "Executing Hudi SQL scripts..."
+    START_TIME=$(date +%s)
+    ${SPARK_HOME}/bin/spark-sql \
+        --master local[*] \
+        --name hudi-init \
+        --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
+        --conf spark.sql.catalogImplementation=hive \
+        --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
+        --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
+        -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    END_TIME=$(date +%s)
+    EXECUTION_TIME=$((END_TIME - START_TIME))
+    echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
+
+    # Clean up temporary SQL file
+    rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
 else
-  echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
+    echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
 fi
 
 # Create success marker file to indicate initialization is complete
--- docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh.orig
+++ docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh
--- docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh
@@ -57,7 +57,6 @@
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/paimon-hive-connector-3.1-1.3-SNAPSHOT.jar
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/gcs-connector-hadoop3-2.2.24-shaded.jar
 
-
 /usr/local/hadoop-run.sh &
 
 # check healthy hear
@@ -87,7 +86,7 @@
     echo "Invalid index parameter. Exiting."
     exit 1
 fi
-hive  -f /usr/local/sql/create_kerberos_hive_table.sql
+hive -f /usr/local/sql/create_kerberos_hive_table.sql
 if [[ ${enablePaimonHms} == "true" ]]; then
     echo "Creating Paimon HMS catalog and table"
     hadoop fs -put /tmp/paimon_data/* /user/hive/warehouse/
--- docker/thirdparties/docker-compose/kerberos/health-checks/health.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/health.sh
@@ -29,6 +29,6 @@
 
 if test -d "${HEALTH_D}"; then
     for health_script in "${HEALTH_D}"/*; do
-        "${health_script}" &>> /var/log/container-health.log || exit 1
+        "${health_script}" &>>/var/log/container-health.log || exit 1
     done
 fi
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh
@@ -32,9 +32,9 @@
 FAILED=$(supervisorctl status | grep -v RUNNING || true)
 
 if [ "$FAILED" == "" ]; then
-  echo "All services are running"
-  exit 0
+    echo "All services are running"
+    exit 0
 else
-  echo "Some of the services are failing: ${FAILED}"
-  exit 1
+    echo "Some of the services are failing: ${FAILED}"
+    exit 1
 fi
--- docker/thirdparties/docker-compose/polaris/init-catalog.sh.orig
+++ docker/thirdparties/docker-compose/polaris/init-catalog.sh
@@ -26,29 +26,30 @@
 
 echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
 for i in $(seq 1 120); do
-  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
-    break
-  fi
-  sleep 2
+    if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
+        break
+    fi
+    sleep 2
 done
 
 echo "[polaris-init] Fetching OAuth token via client_credentials ..."
 # Try to obtain token using correct OAuth endpoint
 TOKEN_JSON=$(curl -sS \
-  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
-  -H 'Content-Type: application/x-www-form-urlencoded' \
-  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
+    -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
+    -H 'Content-Type: application/x-www-form-urlencoded' \
+    -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
 
 # Extract access_token field
 TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
 
 if [ -z "$TOKEN" ]; then
-  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
-  exit 1
+    echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
+    exit 1
 fi
 
 echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
-CREATE_PAYLOAD=$(cat <<JSON
+CREATE_PAYLOAD=$(
+    cat <<JSON
 {
   "name": "$CATALOG",
   "type": "INTERNAL",
@@ -71,19 +72,19 @@
 
 # Try create; on 409 Conflict, treat as success
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d "$CREATE_PAYLOAD")
+    -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d "$CREATE_PAYLOAD")
 
 if [ "$HTTP_CODE" = "201" ]; then
-  echo "[polaris-init] Catalog created."
+    echo "[polaris-init] Catalog created."
 elif [ "$HTTP_CODE" = "409" ]; then
-  echo "[polaris-init] Catalog already exists. Skipping."
+    echo "[polaris-init] Catalog already exists. Skipping."
 else
-  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
-  cat /tmp/resp.json || true
-  exit 1
+    echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
+    cat /tmp/resp.json || true
+    exit 1
 fi
 
 echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
@@ -91,55 +92,54 @@
 # Create a catalog admin role grants
 echo "[polaris-init] Creating catalog admin role grants ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Create a data engineer role
 echo "[polaris-init] Creating data engineer role ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole":{"name":"data_engineer"}}')
+    -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole":{"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
-  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Connect the roles
 echo "[polaris-init] Connecting roles ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"catalogRole":{"name":"catalog_admin"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"catalogRole":{"name":"catalog_admin"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Give root the data engineer role
 echo "[polaris-init] Assigning data engineer role to root ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole": {"name":"data_engineer"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole": {"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 echo "[polaris-init] Permissions setup completed."
 echo "[polaris-init] Done."
-
--- docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh
--- docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh
--- docker/thirdparties/jindofs-helpers.sh.orig
+++ docker/thirdparties/jindofs-helpers.sh
@@ -32,15 +32,15 @@
     [ "${target_system}" = "Linux" ] || return 1
 
     case "${target_arch}" in
-        x86_64)
-            printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
-            ;;
-        aarch64)
-            printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
-            ;;
-        *)
-            return 1
-            ;;
+    x86_64)
+        printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
+        ;;
+    aarch64)
+        printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
+        ;;
+    *)
+        return 1
+        ;;
     esac
 }
 
@@ -51,10 +51,10 @@
     local pattern
     jindofs_all_platform_jar_patterns | while IFS= read -r pattern; do
         case "${jar_name}" in
-            ${pattern})
-                echo "match"
-                return
-                ;;
+        ${pattern})
+            echo "match"
+            return
+            ;;
         esac
     done
 }
@@ -97,8 +97,8 @@
     [ "${target_system}" = "Linux" ] || return 0
 
     case "${target_arch}" in
-        x86_64 | aarch64) ;;
-        *) return 0 ;;
+    x86_64 | aarch64) ;;
+    *) return 0 ;;
     esac
 
     jindofs_log_source_jars "${jindofs_dir}" "${target_dir}"
--- docker/thirdparties/run-thirdparties-docker.sh.orig
+++ docker/thirdparties/run-thirdparties-docker.sh
@@ -54,7 +54,7 @@
 STOP=0
 NEED_RESERVE_PORTS=0
 export NEED_LOAD_DATA=1
-export LOAD_PARALLEL=$(( $(getconf _NPROCESSORS_ONLN) / 2 ))
+export LOAD_PARALLEL=$(($(getconf _NPROCESSORS_ONLN) / 2))
 export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
 
 if ! OPTS="$(getopt \
@@ -204,7 +204,7 @@
         RUN_MARIADB=1
     elif [[ "${element}"x == "db2"x ]]; then
         RUN_DB2=1
-    elif [[ "${element}"x == "oceanbase"x ]];then
+    elif [[ "${element}"x == "oceanbase"x ]]; then
         RUN_OCEANBASE=1
     elif [[ "${element}"x == "lakesoul"x ]]; then
         RUN_LAKESOUL=1
@@ -567,7 +567,7 @@
     . "${ROOT}"/docker-compose/hive/hive-2x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-2x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-2x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
     sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
@@ -587,7 +587,7 @@
     . "${ROOT}"/docker-compose/hive/hive-3x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-3x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-3x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
     sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
@@ -606,12 +606,12 @@
     if [[ "${STOP}" -ne 1 ]]; then
         if [[ ! -d "${ICEBERG_DIR}/data" ]]; then
             echo "${ICEBERG_DIR}/data does not exist"
-            cd "${ICEBERG_DIR}" \
-            && rm -f iceberg_data*.zip \
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip \
-            && sudo unzip iceberg_data_spark40.zip \
-            && sudo mv iceberg_data data \
-            && sudo rm -rf iceberg_data_spark40.zip
+            cd "${ICEBERG_DIR}" &&
+                rm -f iceberg_data*.zip &&
+                wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip &&
+                sudo unzip iceberg_data_spark40.zip &&
+                sudo mv iceberg_data data &&
+                sudo rm -rf iceberg_data_spark40.zip
             cd -
         else
             echo "${ICEBERG_DIR}/data exist, continue !"
@@ -690,9 +690,9 @@
     for i in {1..2}; do
         . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
         envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
     done
     sudo chmod a+w /etc/hosts
     sudo sed -i "1i${IP_HOST} hadoop-master" /etc/hosts
@@ -758,12 +758,12 @@
     echo "RUN_ICEBERG_REST"
     # iceberg-rest with multiple cloud storage backends
     ICEBERG_REST_DIR=${ROOT}/docker-compose/iceberg-rest
-    
+
     # generate iceberg-rest.yaml
     export CONTAINER_UID=${CONTAINER_UID}
     . "${ROOT}"/docker-compose/iceberg-rest/iceberg-rest_settings.env
     envsubst <"${ICEBERG_REST_DIR}/docker-compose.yaml.tpl" >"${ICEBERG_REST_DIR}/docker-compose.yaml"
-    
+
     sudo docker compose -f "${ICEBERG_REST_DIR}/docker-compose.yaml" down
     if [[ "${STOP}" -ne 1 ]]; then
         # Start all three REST catalogs (S3, OSS, COS)
@@ -806,102 +806,102 @@
 declare -A pids
 
 if [[ "${RUN_ES}" -eq 1 ]]; then
-    start_es > start_es.log  2>&1 &
+    start_es >start_es.log 2>&1 &
     pids["es"]=$!
 fi
 
 if [[ "${RUN_MYSQL}" -eq 1 ]]; then
-    start_mysql > start_mysql.log 2>&1 &
+    start_mysql >start_mysql.log 2>&1 &
     pids["mysql"]=$!
 fi
 
 if [[ "${RUN_PG}" -eq 1 ]]; then
-    start_pg > start_pg.log 2>&1 &
+    start_pg >start_pg.log 2>&1 &
     pids["pg"]=$!
 fi
 
 if [[ "${RUN_ORACLE}" -eq 1 ]]; then
-    start_oracle > start_oracle.log 2>&1 &
+    start_oracle >start_oracle.log 2>&1 &
     pids["oracle"]=$!
 fi
 
 if [[ "${RUN_DB2}" -eq 1 ]]; then
-    start_db2 > start_db2.log 2>&1 &
+    start_db2 >start_db2.log 2>&1 &
     pids["db2"]=$!
 fi
 
 if [[ "${RUN_OCEANBASE}" -eq 1 ]]; then
-    start_oceanbase > start_oceanbase.log 2>&1 &
+    start_oceanbase >start_oceanbase.log 2>&1 &
     pids["oceanbase"]=$!
 fi
 
 if [[ "${RUN_SQLSERVER}" -eq 1 ]]; then
-    start_sqlserver > start_sqlserver.log 2>&1 &
+    start_sqlserver >start_sqlserver.log 2>&1 &
     pids["sqlserver"]=$!
 fi
 
 if [[ "${RUN_CLICKHOUSE}" -eq 1 ]]; then
-    start_clickhouse > start_clickhouse.log 2>&1 &
+    start_clickhouse >start_clickhouse.log 2>&1 &
     pids["clickhouse"]=$!
 fi
 
 if [[ "${RUN_KAFKA}" -eq 1 ]]; then
-    start_kafka > start_kafka.log 2>&1 &
+    start_kafka >start_kafka.log 2>&1 &
     pids["kafka"]=$!
 fi
 
 if [[ "${RUN_HIVE2}" -eq 1 ]]; then
-    start_hive2 > start_hive2.log 2>&1 &
+    start_hive2 >start_hive2.log 2>&1 &
     pids["hive2"]=$!
 fi
 
 if [[ "${RUN_HIVE3}" -eq 1 ]]; then
-    start_hive3 > start_hive3.log 2>&1 &
+    start_hive3 >start_hive3.log 2>&1 &
     pids["hive3"]=$!
 fi
 
 if [[ "${RUN_ICEBERG}" -eq 1 ]]; then
-    start_iceberg > start_iceberg.log 2>&1 &
+    start_iceberg >start_iceberg.log 2>&1 &
     pids["iceberg"]=$!
 fi
 
 if [[ "${RUN_ICEBERG_REST}" -eq 1 ]]; then
-    start_iceberg_rest > start_iceberg_rest.log 2>&1 &
+    start_iceberg_rest >start_iceberg_rest.log 2>&1 &
     pids["iceberg-rest"]=$!
 fi
 
 if [[ "${RUN_HUDI}" -eq 1 ]]; then
-    start_hudi > start_hudi.log 2>&1 &
+    start_hudi >start_hudi.log 2>&1 &
     pids["hudi"]=$!
 fi
 
 if [[ "${RUN_MARIADB}" -eq 1 ]]; then
-    start_mariadb > start_mariadb.log 2>&1 &
+    start_mariadb >start_mariadb.log 2>&1 &
     pids["mariadb"]=$!
 fi
 
 if [[ "${RUN_LAKESOUL}" -eq 1 ]]; then
-    start_lakesoul > start_lakesoule.log 2>&1 &
+    start_lakesoul >start_lakesoule.log 2>&1 &
     pids["lakesoul"]=$!
 fi
 
 if [[ "${RUN_MINIO}" -eq 1 ]]; then
-    start_minio > start_minio.log 2>&1 &
+    start_minio >start_minio.log 2>&1 &
     pids["minio"]=$!
 fi
 
 if [[ "${RUN_POLARIS}" -eq 1 ]]; then
-    start_polaris > start_polaris.log 2>&1 &
+    start_polaris >start_polaris.log 2>&1 &
     pids["polaris"]=$!
 fi
 
 if [[ "${RUN_KERBEROS}" -eq 1 ]]; then
-    start_kerberos > start_kerberos.log 2>&1 &
+    start_kerberos >start_kerberos.log 2>&1 &
     pids["kerberos"]=$!
 fi
 
 if [[ "${RUN_RANGER}" -eq 1 ]]; then
-    start_ranger > start_ranger.log 2>&1 &
+    start_ranger >start_ranger.log 2>&1 &
     pids["ranger"]=$!
 fi
 echo "waiting all dockers starting done"
--- docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh
@@ -39,7 +39,7 @@
     local kind="$2"
     local relative_path="$3"
 
-    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" || \
+    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" ||
         fail "expected selected: groups=${groups}, kind=${kind}, path=${relative_path}"
 }
 
--- docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh
@@ -38,17 +38,17 @@
 
 docker_container_state_cmd() {
     case "$1" in
-    doris-external--hadoop2-namenode|\
-    doris-external--hadoop2-datanode|\
-    doris-external--hive2-server|\
-    doris-external--hive2-metastore|\
-    doris-external--hive2-metastore-postgresql)
+    doris-external--hadoop2-namenode | \
+        doris-external--hadoop2-datanode | \
+        doris-external--hive2-server | \
+        doris-external--hive2-metastore | \
+        doris-external--hive2-metastore-postgresql)
         echo "running|healthy"
         ;;
-    doris-stuck--hadoop3-namenode|\
-    doris-stuck--hive3-server|\
-    doris-stuck--hive3-metastore|\
-    doris-stuck--hive3-metastore-postgresql)
+    doris-stuck--hadoop3-namenode | \
+        doris-stuck--hive3-server | \
+        doris-stuck--hive3-metastore | \
+        doris-stuck--hive3-metastore-postgresql)
         echo "running|healthy"
         ;;
     doris-stuck--hadoop3-datanode)
--- hooks/setup_worktree.sh.orig
+++ hooks/setup_worktree.sh
--- post-build.sh.orig
+++ post-build.sh
@@ -157,35 +157,35 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --fe)
-            PROCESS_FE=1
-            shift
-            ;;
-        --be)
-            PROCESS_BE=1
-            shift
-            ;;
-        --output)
-            OUTPUT_DIR="$2"
-            shift 2
-            ;;
-        --juicefs)
-            BUILD_JUICEFS="ON"
-            shift
-            ;;
-        --jindofs)
-            BUILD_JINDOFS="ON"
-            shift
-            ;;
-        --help | -h)
-            usage
-            exit 0
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage
-            exit 1
-            ;;
+    --fe)
+        PROCESS_FE=1
+        shift
+        ;;
+    --be)
+        PROCESS_BE=1
+        shift
+        ;;
+    --output)
+        OUTPUT_DIR="$2"
+        shift 2
+        ;;
+    --juicefs)
+        BUILD_JUICEFS="ON"
+        shift
+        ;;
+    --jindofs)
+        BUILD_JINDOFS="ON"
+        shift
+        ;;
+    --help | -h)
+        usage
+        exit 0
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage
+        exit 1
+        ;;
     esac
 done
 
--- regression-test/pipeline/external/external-stage-timer.sh.orig
+++ regression-test/pipeline/external/external-stage-timer.sh
@@ -50,20 +50,20 @@
     fi
 
     case "${current_command}" in
-        *"bash deploy_cluster.sh "*)
-            external_regression_stage_timer__enter_if_needed "启动 Doris"
-            ;;
-        *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
-            if [[ "${current_command}" != *"--stop"* ]]; then
-                external_regression_stage_timer__enter_if_needed "启动依赖"
-            fi
-            ;;
-        *"./run-regression-test.sh --teamcity --clean --run"*)
-            external_regression_stage_timer__enter_if_needed "执行 Case"
-            ;;
-        *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
-            external_regression_stage_timer__enter_if_needed "收尾归档"
-            ;;
+    *"bash deploy_cluster.sh "*)
+        external_regression_stage_timer__enter_if_needed "启动 Doris"
+        ;;
+    *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
+        if [[ "${current_command}" != *"--stop"* ]]; then
+            external_regression_stage_timer__enter_if_needed "启动依赖"
+        fi
+        ;;
+    *"./run-regression-test.sh --teamcity --clean --run"*)
+        external_regression_stage_timer__enter_if_needed "执行 Case"
+        ;;
+    *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
+        external_regression_stage_timer__enter_if_needed "收尾归档"
+        ;;
     esac
 }
 
--- run-be-ut.sh.orig
+++ run-be-ut.sh
@@ -480,7 +480,6 @@
 profraw=${DORIS_TEST_BINARY_DIR}/doris_be_test.profraw
 profdata=${DORIS_TEST_BINARY_DIR}/doris_be_test.profdata
 
-
 if [[ ${GDB} -ge 1 ]]; then
     gdb --args "${test}" "${FILTER}"
     exit
--- run-fs-env-test.sh.orig
+++ run-fs-env-test.sh
@@ -42,56 +42,88 @@
 # Parse --key=value arguments into env vars
 for arg in "$@"; do
     case "$arg" in
-        --s3-endpoint=*)  export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
-        --s3-region=*)    export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
-        --s3-bucket=*)    export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
-        --s3-ak=*)        export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
-        --s3-sk=*)        export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
-        --azure-account=*)    export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
-        --azure-key=*)        export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
-        --azure-container=*)  export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
-        --cos-endpoint=*)  export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
-        --cos-region=*)    export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
-        --cos-bucket=*)    export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
-        --cos-ak=*)        export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
-        --cos-sk=*)        export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
-        --oss-endpoint=*)  export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
-        --oss-region=*)    export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
-        --oss-bucket=*)    export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
-        --oss-ak=*)        export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
-        --oss-sk=*)        export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
-        --obs-endpoint=*)  export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
-        --obs-region=*)    export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
-        --obs-bucket=*)    export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
-        --obs-ak=*)        export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
-        --obs-sk=*)        export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
-        --hdfs-host=*)    export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
-        --hdfs-port=*)    export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
-        --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
-        --kdc-keytab=*)    export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
-        --broker-host=*)  export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
-        --broker-port=*)  export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
-        *) echo "Unknown option: $arg"; exit 1 ;;
+    --s3-endpoint=*) export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
+    --s3-region=*) export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
+    --s3-bucket=*) export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
+    --s3-ak=*) export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
+    --s3-sk=*) export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
+    --azure-account=*) export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
+    --azure-key=*) export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
+    --azure-container=*) export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
+    --cos-endpoint=*) export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
+    --cos-region=*) export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
+    --cos-bucket=*) export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
+    --cos-ak=*) export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
+    --cos-sk=*) export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
+    --oss-endpoint=*) export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
+    --oss-region=*) export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
+    --oss-bucket=*) export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
+    --oss-ak=*) export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
+    --oss-sk=*) export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
+    --obs-endpoint=*) export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
+    --obs-region=*) export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
+    --obs-bucket=*) export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
+    --obs-ak=*) export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
+    --obs-sk=*) export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
+    --hdfs-host=*) export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
+    --hdfs-port=*) export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
+    --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
+    --kdc-keytab=*) export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
+    --broker-host=*) export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
+    --broker-port=*) export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
+    *)
+        echo "Unknown option: $arg"
+        exit 1
+        ;;
     esac
 done
 
 # Map service name to JUnit 5 tag and Maven module(s)
 # NOTE: Do NOT use GROUPS as variable name — it is a bash builtin (user group IDs).
 case "$SERVICE" in
-    s3)        TAG="s3";       MODULES="fe-filesystem/fe-filesystem-s3" ;;
-    oss)       TAG="oss";      MODULES="fe-filesystem/fe-filesystem-oss" ;;
-    cos)       TAG="cos";      MODULES="fe-filesystem/fe-filesystem-cos" ;;
-    obs)       TAG="obs";      MODULES="fe-filesystem/fe-filesystem-obs" ;;
-    azure)     TAG="azure";    MODULES="fe-filesystem/fe-filesystem-azure" ;;
-    hdfs)      TAG="hdfs";     MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    kerberos)  TAG="kerberos"; MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    broker)    TAG="broker";   MODULES="fe-filesystem/fe-filesystem-broker" ;;
-    all)       TAG="environment"
-               MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-broker" ;;
-    *) echo "Unknown service: $SERVICE"; exit 1 ;;
+s3)
+    TAG="s3"
+    MODULES="fe-filesystem/fe-filesystem-s3"
+    ;;
+oss)
+    TAG="oss"
+    MODULES="fe-filesystem/fe-filesystem-oss"
+    ;;
+cos)
+    TAG="cos"
+    MODULES="fe-filesystem/fe-filesystem-cos"
+    ;;
+obs)
+    TAG="obs"
+    MODULES="fe-filesystem/fe-filesystem-obs"
+    ;;
+azure)
+    TAG="azure"
+    MODULES="fe-filesystem/fe-filesystem-azure"
+    ;;
+hdfs)
+    TAG="hdfs"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+kerberos)
+    TAG="kerberos"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+broker)
+    TAG="broker"
+    MODULES="fe-filesystem/fe-filesystem-broker"
+    ;;
+all)
+    TAG="environment"
+    MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-broker"
+    ;;
+*)
+    echo "Unknown service: $SERVICE"
+    exit 1
+    ;;
 esac
 
 cd "${ROOT}/fe"
--- run-regression-test.sh.orig
+++ run-regression-test.sh
@@ -180,7 +180,7 @@
         local cmd="$1"
         local max_attempts=3
         local attempt=1
-        
+
         while [[ ${attempt} -le ${max_attempts} ]]; do
             echo "Attempt ${attempt}/${max_attempts}: ${cmd}"
             if eval "${cmd}"; then
@@ -189,56 +189,71 @@
             else
                 echo "Command failed on attempt ${attempt}"
                 if [[ ${attempt} -lt ${max_attempts} ]]; then
-                    sleep $((attempt * 5))  # Linear backoff
+                    sleep $((attempt * 5)) # Linear backoff
                 fi
                 ((attempt++))
             fi
         done
-        
+
         echo "Command failed after ${max_attempts} attempts"
         return 1
     }
 
     # Navigate to framework directory and build with retry
-    cd "${DORIS_HOME}/regression-test/framework" || { echo "Failed to change directory"; exit 1; }
-    
+    cd "${DORIS_HOME}/regression-test/framework" || {
+        echo "Failed to change directory"
+        exit 1
+    }
+
     # First try to download dependencies only
     echo "Downloading dependencies..."
-    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || { echo "Failed to create temporary file for dependency output"; exit 1; }
+    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || {
+        echo "Failed to create temporary file for dependency output"
+        exit 1
+    }
     execute_maven_with_retry "${MVN_CMD} dependency:resolve -B -DskipTests=true -Dmdep.prependGroupId=true -DoutputFile=${dep_output_file}" || {
         echo "Failed to download dependencies"
         exit 1
     }
-    
+
     # Then package with retry
     echo "Building package..."
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build package"
         exit 1
     }
-    
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
 
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
+
     mkdir -p "${OUTPUT_DIR}"/{lib,log}
     cp -r "${REGRESSION_TEST_BUILD_DIR}"/regression-test-*.jar "${OUTPUT_DIR}/lib"
 
     echo "===== BUILD JAVA_UDF_SRC TO GENERATE JAR ====="
     mkdir -p "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars
-    cd "${DORIS_HOME}"/regression-test/java-udf-src || { echo "Failed to change directory to java-udf-src"; exit 1; }
-    
+    cd "${DORIS_HOME}"/regression-test/java-udf-src || {
+        echo "Failed to change directory to java-udf-src"
+        exit 1
+    }
+
     # Build UDF with retry
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build UDF package"
         exit 1
     }
-    
+
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars/
     # be and fe dir is compiled output
     mkdir -p "${DORIS_HOME}"/output/fe/custom_lib/
     mkdir -p "${DORIS_HOME}"/output/be/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/fe/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/be/custom_lib/
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
 fi
 
 # check java home
@@ -249,8 +264,8 @@
 
 # check java version
 export JAVA="${JAVA_HOME}/bin/java"
-JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 \
-    | awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
+JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 |
+    awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
 JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION%%.*}"
 if [[ "${JAVA_SPEC_VERSION}" == 1.* ]]; then
     JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION#1.}"
@@ -258,8 +273,8 @@
 fi
 
 # Arrow Flight SQL JDBC needs java.nio opened when the regression framework runs on JDK 17+.
-if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] \
-    && [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
+if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] &&
+    [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
     JAVA_OPTS="${JAVA_OPTS:+${JAVA_OPTS} }--add-opens=java.base/java.nio=ALL-UNNAMED"
 fi
 
@@ -276,12 +291,12 @@
         SKIP_NEXT=0
         continue
     fi
-    
+
     if [[ "${arg}" == "-f" ]] || [[ "${arg}" == "--file" ]]; then
         SKIP_NEXT=1
         continue
     fi
-    
+
     NEW_ARGS+=("${arg}")
 done
 
@@ -290,7 +305,7 @@
     # Extract directory (parent path)
     # e.g., "regression-test/suites/shape_check/tpch_sf1000/shape/q1.groovy" -> "regression-test/suites/shape_check/tpch_sf1000/shape"
     FILE_DIR=$(dirname "${FILE_PATH}")
-    
+
     # Extract suite name (filename without .groovy or .sql extension)
     # e.g., "q1.groovy" -> "q1" or "q01.sql" -> "q01"
     FILE_NAME=$(basename "${FILE_PATH}")
@@ -298,9 +313,9 @@
     SUITE_NAME="${FILE_NAME%.groovy}"
     # Remove .sql extension if exists
     SUITE_NAME="${SUITE_NAME%.sql}"
-    
+
     echo "Converted -f ${FILE_PATH} to -d ${FILE_DIR} -s ${SUITE_NAME}"
-    
+
     # Add -d and -s to arguments
     NEW_ARGS+=("-d" "${FILE_DIR}" "-s" "${SUITE_NAME}")
 fi
--- thirdparty/build-thirdparty.sh.orig
+++ thirdparty/build-thirdparty.sh
@@ -520,7 +520,7 @@
 
     rm -rf CMakeCache.txt CMakeFiles/
     "${CMAKE_CMD}" ../ -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-      -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
     # -DCMAKE_CXX_FLAGS="$warning_uninitialized"
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
@@ -1307,7 +1307,7 @@
     rm -rf CMakeCache.txt CMakeFiles/
 
     "${CMAKE_CMD}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-     -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+        -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
     "${BUILD_SYSTEM}" -j"${PARALLEL}"
     "${BUILD_SYSTEM}" install
 }
@@ -1383,10 +1383,10 @@
 
     # -Wno-elaborated-enum-base to make C++20 on MacOS happy
     "${CMAKE_CMD}" -G "${GENERATOR}" \
-    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
-    -DBUILD_EXAMPLES=OFF \
-    -DBUILD_TOOLS=OFF \
-    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
+        -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
+        -DBUILD_EXAMPLES=OFF \
+        -DBUILD_TOOLS=OFF \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}" install
 }
 
@@ -1892,7 +1892,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     MACHINE_TYPE="$(uname -m)"
     if [[ "${MACHINE_TYPE}" == "aarch64" || "${MACHINE_TYPE}" == 'arm64' ]]; then
         CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crc" NEON64_CFLAGS=" "
@@ -1922,10 +1922,10 @@
 
         # Add -ldl for clang compatibility (libcrypto.a requires dlopen/dlsym/dlclose/dlerror)
         "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-        -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
-        -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
-        -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
-        -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+            -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
+            -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
+            -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
+            -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
         "${BUILD_SYSTEM}" -j "${PARALLEL}"
         "${BUILD_SYSTEM}" install
     fi
@@ -1941,7 +1941,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
@@ -1996,7 +1996,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
 
@@ -2020,7 +2020,7 @@
     fi
 
     CXXFLAGS="-Wno-nontrivial-memcall" \
-    "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
+        "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
         -G "${GENERATOR}" \
         -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
         -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
@@ -2180,105 +2180,105 @@
 
     # Map package name to the uppercase *_SOURCE variable name
     case "${pkg}" in
-        libevent)        src_var="LIBEVENT_SOURCE" ;;
-        openssl)         src_var="OPENSSL_SOURCE" ;;
-        thrift)          src_var="THRIFT_SOURCE" ;;
-        protobuf)        src_var="PROTOBUF_SOURCE" ;;
-        gflags)          src_var="GFLAGS_SOURCE" ;;
-        glog)            src_var="GLOG_SOURCE" ;;
-        gtest)           src_var="GTEST_SOURCE" ;;
-        rapidjson)       src_var="RAPIDJSON_SOURCE" ;;
-        snappy)          src_var="SNAPPY_SOURCE" ;;
-        gperftools)      src_var="GPERFTOOLS_SOURCE" ;;
-        zlib)            src_var="ZLIB_SOURCE" ;;
-        crc32c)          src_var="CRC32C_SOURCE" ;;
-        lz4)             src_var="LZ4_SOURCE" ;;
-        bzip)            src_var="BZIP_SOURCE" ;;
-        lzo2)            src_var="LZO2_SOURCE" ;;
-        zstd)            src_var="ZSTD_SOURCE" ;;
-        #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
-        abseil)          src_var="ABSEIL_SOURCE" ;;
-        curl)            src_var="CURL_SOURCE" ;;
-        re2)             src_var="RE2_SOURCE" ;;
-        hyperscan)
-            # hyperscan also builds ragel, clean both
-            if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
-                echo "Cleaning up source: ${RAGEL_SOURCE}"
-                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+    libevent) src_var="LIBEVENT_SOURCE" ;;
+    openssl) src_var="OPENSSL_SOURCE" ;;
+    thrift) src_var="THRIFT_SOURCE" ;;
+    protobuf) src_var="PROTOBUF_SOURCE" ;;
+    gflags) src_var="GFLAGS_SOURCE" ;;
+    glog) src_var="GLOG_SOURCE" ;;
+    gtest) src_var="GTEST_SOURCE" ;;
+    rapidjson) src_var="RAPIDJSON_SOURCE" ;;
+    snappy) src_var="SNAPPY_SOURCE" ;;
+    gperftools) src_var="GPERFTOOLS_SOURCE" ;;
+    zlib) src_var="ZLIB_SOURCE" ;;
+    crc32c) src_var="CRC32C_SOURCE" ;;
+    lz4) src_var="LZ4_SOURCE" ;;
+    bzip) src_var="BZIP_SOURCE" ;;
+    lzo2) src_var="LZO2_SOURCE" ;;
+    zstd) src_var="ZSTD_SOURCE" ;;
+    #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
+    abseil) src_var="ABSEIL_SOURCE" ;;
+    curl) src_var="CURL_SOURCE" ;;
+    re2) src_var="RE2_SOURCE" ;;
+    hyperscan)
+        # hyperscan also builds ragel, clean both
+        if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
+            echo "Cleaning up source: ${RAGEL_SOURCE}"
+            rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+        fi
+        src_var="HYPERSCAN_SOURCE"
+        ;;
+    mysql) src_var="MYSQL_SOURCE" ;;
+    odbc) src_var="ODBC_SOURCE" ;;
+    leveldb) src_var="LEVELDB_SOURCE" ;;
+    brpc) src_var="BRPC_SOURCE" ;;
+    rocksdb) src_var="ROCKSDB_SOURCE" ;;
+    cyrus_sasl) src_var="CYRUS_SASL_SOURCE" ;;
+    librdkafka) src_var="LIBRDKAFKA_SOURCE" ;;
+    flatbuffers) src_var="FLATBUFFERS_SOURCE" ;;
+    arrow) src_var="ARROW_SOURCE" ;;
+    brotli) src_var="BROTLI_SOURCE" ;;
+    cares) src_var="CARES_SOURCE" ;;
+    grpc) src_var="GRPC_SOURCE" ;;
+    s2) src_var="S2_SOURCE" ;;
+    bitshuffle) src_var="BITSHUFFLE_SOURCE" ;;
+    croaringbitmap) src_var="CROARINGBITMAP_SOURCE" ;;
+    fmt) src_var="FMT_SOURCE" ;;
+    parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
+    orc) src_var="ORC_SOURCE" ;;
+    cctz) src_var="CCTZ_SOURCE" ;;
+    jemalloc_doris) src_var="JEMALLOC_DORIS_SOURCE" ;;
+    libunwind) src_var="LIBUNWIND_SOURCE" ;;
+    benchmark) src_var="BENCHMARK_SOURCE" ;;
+    simdjson) src_var="SIMDJSON_SOURCE" ;;
+    nlohmann_json) src_var="NLOHMANN_JSON_SOURCE" ;;
+    libbacktrace) src_var="LIBBACKTRACE_SOURCE" ;;
+    sse2neon) src_var="SSE2NEON_SOURCE" ;;
+    xxhash) src_var="XXHASH_SOURCE" ;;
+    concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
+    fast_float) src_var="FAST_FLOAT_SOURCE" ;;
+    hadoop_libs) src_var="HADOOP_LIBS_SOURCE" ;;
+    hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
+    avx2neon) src_var="AVX2NEON_SOURCE" ;;
+    libdeflate) src_var="LIBDEFLATE_SOURCE" ;;
+    streamvbyte) src_var="STREAMVBYTE_SOURCE" ;;
+    ali_sdk)
+        # ali_sdk internally builds jsoncpp and libuuid, clean all three
+        for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
+            dep_dir="${!dep_var}"
+            if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
+                echo "Cleaning up source: ${dep_dir}"
+                rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
             fi
-            src_var="HYPERSCAN_SOURCE"
-            ;;
-        mysql)           src_var="MYSQL_SOURCE" ;;
-        odbc)            src_var="ODBC_SOURCE" ;;
-        leveldb)         src_var="LEVELDB_SOURCE" ;;
-        brpc)            src_var="BRPC_SOURCE" ;;
-        rocksdb)         src_var="ROCKSDB_SOURCE" ;;
-        cyrus_sasl)      src_var="CYRUS_SASL_SOURCE" ;;
-        librdkafka)      src_var="LIBRDKAFKA_SOURCE" ;;
-        flatbuffers)     src_var="FLATBUFFERS_SOURCE" ;;
-        arrow)           src_var="ARROW_SOURCE" ;;
-        brotli)          src_var="BROTLI_SOURCE" ;;
-        cares)           src_var="CARES_SOURCE" ;;
-        grpc)            src_var="GRPC_SOURCE" ;;
-        s2)              src_var="S2_SOURCE" ;;
-        bitshuffle)      src_var="BITSHUFFLE_SOURCE" ;;
-        croaringbitmap)  src_var="CROARINGBITMAP_SOURCE" ;;
-        fmt)             src_var="FMT_SOURCE" ;;
-        parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
-        orc)             src_var="ORC_SOURCE" ;;
-        cctz)            src_var="CCTZ_SOURCE" ;;
-        jemalloc_doris)  src_var="JEMALLOC_DORIS_SOURCE" ;;
-        libunwind)       src_var="LIBUNWIND_SOURCE" ;;
-        benchmark)       src_var="BENCHMARK_SOURCE" ;;
-        simdjson)        src_var="SIMDJSON_SOURCE" ;;
-        nlohmann_json)   src_var="NLOHMANN_JSON_SOURCE" ;;
-        libbacktrace)    src_var="LIBBACKTRACE_SOURCE" ;;
-        sse2neon)        src_var="SSE2NEON_SOURCE" ;;
-        xxhash)          src_var="XXHASH_SOURCE" ;;
-        concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
-        fast_float)      src_var="FAST_FLOAT_SOURCE" ;;
-        hadoop_libs)     src_var="HADOOP_LIBS_SOURCE" ;;
-        hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
-        avx2neon)        src_var="AVX2NEON_SOURCE" ;;
-        libdeflate)      src_var="LIBDEFLATE_SOURCE" ;;
-        streamvbyte)     src_var="STREAMVBYTE_SOURCE" ;;
-        ali_sdk)
-            # ali_sdk internally builds jsoncpp and libuuid, clean all three
-            for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
-                dep_dir="${!dep_var}"
-                if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
-                    echo "Cleaning up source: ${dep_dir}"
-                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
-                fi
-            done
-            return
-            ;;
-        base64)          src_var="BASE64_SOURCE" ;;
-        azure)           src_var="AZURE_SOURCE" ;;
-        dragonbox)       src_var="DRAGONBOX_SOURCE" ;;
-        icu)             src_var="ICU_SOURCE" ;;
-        jindofs)         src_var="JINDOFS_SOURCE" ;;
-        juicefs)         src_var="JUICEFS_SOURCE" ;;
-        pugixml)         src_var="PUGIXML_SOURCE" ;;
-        paimon_cpp)      src_var="PAIMON_CPP_SOURCE" ;;
-        aws_sdk)         src_var="AWS_SDK_SOURCE" ;;
-        lzma)            src_var="LZMA_SOURCE" ;;
-        xml2)            src_var="XML2_SOURCE" ;;
-        idn)             src_var="IDN_SOURCE" ;;
-        gsasl)           src_var="GSASL_SOURCE" ;;
-        krb5)            src_var="KRB5_SOURCE" ;;
-        hdfs3)           src_var="HDFS3_SOURCE" ;;
-        libdivide)       src_var="LIBDIVIDE_SOURCE" ;;
-        binutils)        src_var="BINUTILS_SOURCE" ;;
-        gettext)         src_var="GETTEXT_SOURCE" ;;
-        # Header-only files, skip cleanup
-        pdqsort|timsort|tsan_header|js_and_css)
-            return
-            ;;
-        *)
-            echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
-            return
-            ;;
+        done
+        return
+        ;;
+    base64) src_var="BASE64_SOURCE" ;;
+    azure) src_var="AZURE_SOURCE" ;;
+    dragonbox) src_var="DRAGONBOX_SOURCE" ;;
+    icu) src_var="ICU_SOURCE" ;;
+    jindofs) src_var="JINDOFS_SOURCE" ;;
+    juicefs) src_var="JUICEFS_SOURCE" ;;
+    pugixml) src_var="PUGIXML_SOURCE" ;;
+    paimon_cpp) src_var="PAIMON_CPP_SOURCE" ;;
+    aws_sdk) src_var="AWS_SDK_SOURCE" ;;
+    lzma) src_var="LZMA_SOURCE" ;;
+    xml2) src_var="XML2_SOURCE" ;;
+    idn) src_var="IDN_SOURCE" ;;
+    gsasl) src_var="GSASL_SOURCE" ;;
+    krb5) src_var="KRB5_SOURCE" ;;
+    hdfs3) src_var="HDFS3_SOURCE" ;;
+    libdivide) src_var="LIBDIVIDE_SOURCE" ;;
+    binutils) src_var="BINUTILS_SOURCE" ;;
+    gettext) src_var="GETTEXT_SOURCE" ;;
+    # Header-only files, skip cleanup
+    pdqsort | timsort | tsan_header | js_and_css)
+        return
+        ;;
+    *)
+        echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
+        return
+        ;;
     esac
 
     src_dir="${!src_var}"
--- thirdparty/download-prebuild-thirdparty.sh.orig
+++ thirdparty/download-prebuild-thirdparty.sh
@@ -28,8 +28,8 @@
 VERSION="$1"
 
 if [ -z "$VERSION" ]; then
-  echo "Usage: sh download-prebuild-thirdparty.sh <version>"
-  exit 1
+    echo "Usage: sh download-prebuild-thirdparty.sh <version>"
+    exit 1
 fi
 
 # ----------------------------
@@ -39,13 +39,13 @@
 ARCH="$(uname -m)"
 
 case "$OS" in
-  Darwin)
+Darwin)
     PLATFORM="darwin"
     ;;
-  Linux)
+Linux)
     PLATFORM="linux"
     ;;
-  *)
+*)
     echo "Unsupported OS: $OS"
     exit 1
     ;;
@@ -55,13 +55,13 @@
 # Detect ARCH
 # ----------------------------
 case "$ARCH" in
-  x86_64|amd64)
+x86_64 | amd64)
     ARCH="x86_64"
     ;;
-  arm64|aarch64)
+arm64 | aarch64)
     ARCH="arm64"
     ;;
-  *)
+*)
     echo "Unsupported architecture: $ARCH"
     exit 1
     ;;
@@ -71,19 +71,19 @@
 # Resolve base release tag
 # ----------------------------
 case "$VERSION" in
-  master|4.0)
+master | 4.0)
     RELEASE_TAG="automation"
     ;;
-  3.1)
+3.1)
     RELEASE_TAG="automation-3.1"
     ;;
-  3.0)
+3.0)
     RELEASE_TAG="automation-3.0"
     ;;
-  2.1)
+2.1)
     RELEASE_TAG="automation-2.1"
     ;;
-  *)
+*)
     echo "Unsupported version: $VERSION"
     exit 1
     ;;
@@ -95,26 +95,26 @@
 FILENAME=""
 
 if [ "$PLATFORM" = "darwin" ]; then
-  FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
+    FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
 else
-  if [ "$ARCH" = "arm64" ]; then
-    case "$VERSION" in
-      master|4.0)
-        FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
-        ;;
-      3.1)
-        FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
-        ;;
-      3.0)
-        FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
-        ;;
-      2.1)
-        FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
-        ;;
-    esac
-  else
-    FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
-  fi
+    if [ "$ARCH" = "arm64" ]; then
+        case "$VERSION" in
+        master | 4.0)
+            FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
+            ;;
+        3.1)
+            FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
+            ;;
+        3.0)
+            FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
+            ;;
+        2.1)
+            FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
+            ;;
+        esac
+    else
+        FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
+    fi
 fi
 
 # ----------------------------
@@ -132,15 +132,14 @@
 # Download
 # ----------------------------
 if command -v curl >/dev/null 2>&1; then
-  curl -fL -o "$FILENAME" "$URL"
+    curl -fL -o "$FILENAME" "$URL"
 elif command -v wget >/dev/null 2>&1; then
-  wget -O "$FILENAME" "$URL"
+    wget -O "$FILENAME" "$URL"
 else
-  echo "Error: curl or wget is required"
-  exit 1
+    echo "Error: curl or wget is required"
+    exit 1
 fi
 
 echo
 echo "Download completed:"
 echo "  $(pwd)/$FILENAME"
-
--- thirdparty/download-thirdparty.sh.orig
+++ thirdparty/download-thirdparty.sh
@@ -272,7 +272,7 @@
     GIT_URL_VAR="${TP_ARCH}_GIT_URL"
     GIT_TAG_VAR="${TP_ARCH}_GIT_TAG"
     SOURCE_VAR="${TP_ARCH}_SOURCE"
-    
+
     GIT_URL="${!GIT_URL_VAR}"
     GIT_TAG="${!GIT_TAG_VAR}"
     SOURCE_DIR="${TP_SOURCE_DIR}/${!SOURCE_VAR}"
@@ -407,7 +407,7 @@
             patch -p1 <"${TP_PATCH_DIR}/rocksdb-5.14.2.patch"
             if [[ "$(uname -s)" == "Darwin" ]]; then
                 patch -p1 <"${TP_PATCH_DIR}/rocksdb-mac-compile-fix.patch"
-            fi 
+            fi
             touch "${PATCHED_MARK}"
         fi
         cd -
@@ -432,8 +432,8 @@
             # GetBufferedSize(), int96 NANO guard, and Thrift_VERSION empty fix.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-paimon.patch"
 
-            # apache-arrow-17.0.0-force-write-int96-timestamps.patch : 
-            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp. 
+            # apache-arrow-17.0.0-force-write-int96-timestamps.patch :
+            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-force-write-int96-timestamps.patch"
             touch "${PATCHED_MARK}"
         fi
@@ -714,9 +714,9 @@
     echo "Finished patching ${PAIMON_CPP_SOURCE}"
 fi
 
-if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]] ; then
+if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]]; then
     cd $TP_SOURCE_DIR/$CCTZ_SOURCE
-    if [[ ! -f "$PATCHED_MARK" ]] ; then
+    if [[ ! -f "$PATCHED_MARK" ]]; then
         for patch_file in "${TP_PATCH_DIR}"/cctz-*; do
             echo "patch ${patch_file}"
             patch -p1 --ignore-whitespace <"${patch_file}"
--- tools/coffeebench-tools/bin/run-queries.sh.orig
+++ tools/coffeebench-tools/bin/run-queries.sh
@@ -73,7 +73,6 @@
     usage
 fi
 
-
 check_prerequest() {
     local CMD=$1
     local NAME=$2
--- tools/export_mysql_rule_to_json.sh.orig
+++ tools/export_mysql_rule_to_json.sh
@@ -37,7 +37,8 @@
 echo ""
 
 # Query and convert to JSON (including long type timestamps)
-QUERY=$(cat <<SQL
+QUERY=$(
+    cat <<SQL
 SELECT
     JSON_ARRAYAGG(
         JSON_OBJECT(
@@ -70,14 +71,14 @@
 fi
 
 # Save to file
-echo "$JSON_DATA" > "$OUTPUT_FILE"
+echo "$JSON_DATA" >"$OUTPUT_FILE"
 
 # Format
-if command -v jq &> /dev/null; then
+if command -v jq &>/dev/null; then
     jq '.' "$OUTPUT_FILE" | awk '
         /^    {/ && NR > 3 {print ""}
         {print}
-    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
+    ' >"${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
 fi
 
 echo "Export completed: $OUTPUT_FILE"
--- tools/tpcds-tools/bin/run-tpcds-queries.sh.orig
+++ tools/tpcds-tools/bin/run-tpcds-queries.sh
@@ -142,15 +142,15 @@
 run_query() {
     local query_file=$1
     local query_name=$2
-    
+
     if [[ ! -f "${query_file}" ]]; then
         return
     fi
-    
+
     local cold=0
     local hot1=0
     local hot2=0
-    
+
     echo -ne "${query_name}\t" | tee -a result.csv
     start=$(date +%s%3N)
     if ! output=$(mysql -h"${FE_HOST}" -u"${USER}" -P"${FE_QUERY_PORT}" -D"${DB}" --comments \
@@ -201,7 +201,7 @@
 for i in ${query_array[@]}; do
     # Run main query file
     run_query "${TPCDS_QUERIES_DIR}/query${i}.sql" "query${i}"
-    
+
     # Run variant query file if exists
     run_query "${TPCDS_QUERIES_DIR}/query${i}_1.sql" "query${i}_1"
 done
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt  -w filename


@github-actions

Copy link
Copy Markdown

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck ' returned error 1 finding the following syntactical issues:

----------

In bin/flight_record_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In bin/profile_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In build-support/clang-format.sh line 43:
    export PATH=$(brew --prefix llvm@16)/bin:$PATH
           ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                                             ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    export PATH=$(brew --prefix llvm@16)/bin:${PATH}


In build-support/run-clang-tidy.sh line 187:
    if [[ -z "$f" ]]; then
              ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ -z "${f}" ]]; then


In build-support/run-clang-tidy.sh line 190:
    if ! echo "$f" | grep -qE "\.(${CPP_EXTENSIONS})$"; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if ! echo "${f}" | grep -qE "\.(${CPP_EXTENSIONS})$"; then


In build-support/run-clang-tidy.sh line 195:
        if [[ "$f" == *"${pattern}"* ]]; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${f}" == *"${pattern}"* ]]; then


In build-support/run-clang-tidy.sh line 200:
    if [[ "${excluded}" == "false" && -f "$f" ]]; then
                                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${excluded}" == "false" && -f "${f}" ]]; then


In build-support/run-clang-tidy.sh line 201:
        FILTERED_FILES+=("$f")
                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        FILTERED_FILES+=("${f}")


In build-support/run-clang-tidy.sh line 246:
        if [[ "$line" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${line}" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then


In build-support/run-clang-tidy.sh line 248:
        elif [[ "$line" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        elif [[ "${line}" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then


In build-support/run-clang-tidy.sh line 310:
    OUTPUT=$("${CLANG_TIDY}" "${TIDY_ARGS[@]}" "${f}" 2>&1) || TIDY_EXIT=$?
                                                               ^-------^ SC2034 (warning): TIDY_EXIT appears unused. Verify use (or export if used externally).


In build-support/run-clang-tidy.sh line 341:
                if [[ "$wline" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then
                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
                if [[ "${wline}" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then


In build.sh line 42:
if [[ "${DORIS_BUILD_PROFILE}" == "1" ]]; then
       ^--------------------^ SC2154 (warning): DORIS_BUILD_PROFILE is referenced but not assigned.


In build.sh line 264:
            BUILD_SPARK_DPP=1
            ^-------------^ SC2034 (warning): BUILD_SPARK_DPP appears unused. Verify use (or export if used externally).


In build.sh line 586:
FEAT+=($([[ -n "${WITH_TDE_DIR}" ]] && echo "+TDE" || echo "-TDE"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 587:
FEAT+=($([[ "${ENABLE_HDFS_STORAGE_VAULT:-OFF}" == "ON" ]] && echo "+HDFS_STORAGE_VAULT" || echo "-HDFS_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 588:
FEAT+=($([[ ${BUILD_UI} -eq 1 ]] && echo "+UI" || echo "-UI"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 589:
FEAT+=($([[ "${BUILD_AZURE}" == "ON" ]] && echo "+AZURE_BLOB,+AZURE_STORAGE_VAULT" || echo "-AZURE_BLOB,-AZURE_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 590:
FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 591:
FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 593:
export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
       ^----------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In build.sh line 757:
        "${CMAKE_USE_CCACHE}" \
         ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
         ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In build.sh line 759:
        -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                    ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In build.sh line 917:
        if [ ! -d "${fs_module_dir}" ]; then
           ^-------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
        if [[ ! -d "${fs_module_dir}" ]]; then


In build.sh line 929:
    if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                            ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ "${TARGET_SYSTEM}" = "Darwin" ]] || [[ "${TARGET_SYSTEM}" = "Linux" ]]; then


In build_profile.sh line 53:
        [[ -z "$f" || ! -f "$f" ]] && continue
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ -z "${f}" || ! -f "${f}" ]] && continue


In build_profile.sh line 56:
            mtime=$(stat -f %m "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -f %m "${f}")


In build_profile.sh line 58:
            mtime=$(stat -c %Y "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -c %Y "${f}")


In build_profile.sh line 60:
        [[ "$mtime" -gt "$last_time" ]] && echo "$f"
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${mtime}" -gt "${last_time}" ]] && echo "${f}"


In build_profile.sh line 124:
        [[ "$key" == "===FILES===" ]] && break
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == "===FILES===" ]] && break


In build_profile.sh line 125:
        [[ "$key" == _BP_* ]] || continue
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == _BP_* ]] || continue


In cloud/script/build_fdb.sh line 17:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In cloud/script/build_fdb.sh line 221:
if [ "$FDB_ENABLE_JAVA" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_JAVA is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_JAVA}" = "true" ]]; then


In cloud/script/build_fdb.sh line 224:
if [ "$FDB_ENABLE_GO" = "true" ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------^ SC2154 (warning): FDB_ENABLE_GO is referenced but not assigned.
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_GO}" = "true" ]]; then


In cloud/script/build_fdb.sh line 227:
if [ "$FDB_ENABLE_SWIFT" = "true" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2154 (warning): FDB_ENABLE_SWIFT is referenced but not assigned.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_SWIFT}" = "true" ]]; then


In cloud/script/build_fdb.sh line 230:
if [ "$FDB_ENABLE_RUBY" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_RUBY is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_RUBY}" = "true" ]]; then


In cloud/script/build_fdb.sh line 243:
if [ "$USE_JEMALLOC" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_JEMALLOC}" = true ]]; then


In cloud/script/build_fdb.sh line 249:
if [ "$USE_LTO" = true ]; then
   ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_LTO}" = true ]]; then


In cloud/script/build_fdb.sh line 255:
if [ "$FULL_DEBUG_SYMBOLS" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FULL_DEBUG_SYMBOLS}" = true ]]; then


In cloud/script/build_fdb.sh line 259:
if [ "$BUILD_DOCUMENTATION" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_DOCUMENTATION}" = true ]]; then


In cloud/script/build_fdb.sh line 263:
if [ "$WITH_ROCKSDB" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_ROCKSDB}" = true ]]; then


In cloud/script/build_fdb.sh line 267:
if [ "$WITH_GRPC" = true ]; then
   ^---------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_GRPC}" = true ]]; then


In cloud/script/build_fdb.sh line 272:
if [ "$BUILD_AWS_BACKUP" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AWS_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 276:
if [ "$BUILD_AZURE_BACKUP" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AZURE_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 281:
if [ "$BUILD_C_BINDING" = true ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_C_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 285:
if [ "$BUILD_PYTHON_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_PYTHON_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 289:
if [ "$BUILD_JAVA_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_JAVA_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 293:
if [ "$BUILD_GO_BINDING" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_GO_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 297:
if [ "$BUILD_SWIFT_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_SWIFT_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 301:
if [ "$BUILD_RUBY_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_RUBY_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 308:
echo "  Version:      $VERSION"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Version:      ${VERSION}"


In cloud/script/build_fdb.sh line 309:
echo "  Build Dir:    $BUILD_DIR"
                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Build Dir:    ${BUILD_DIR}"


In cloud/script/build_fdb.sh line 310:
echo "  Source Dir:   $SRC_DIR"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Source Dir:   ${SRC_DIR}"


In cloud/script/build_fdb.sh line 311:
echo "  Docker Image: $DOCKER_IMAGE"
                      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Docker Image: ${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 312:
echo "  Update Repo:  $UPDATE_REPO"
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Update Repo:  ${UPDATE_REPO}"


In cloud/script/build_fdb.sh line 316:
echo "  JEMALLOC:       $USE_JEMALLOC"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  JEMALLOC:       ${USE_JEMALLOC}"


In cloud/script/build_fdb.sh line 317:
echo "  LTO:            $USE_LTO"
                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  LTO:            ${USE_LTO}"


In cloud/script/build_fdb.sh line 318:
echo "  Debug Symbols:  $FULL_DEBUG_SYMBOLS"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Debug Symbols:  ${FULL_DEBUG_SYMBOLS}"


In cloud/script/build_fdb.sh line 319:
echo "  Documentation:  $BUILD_DOCUMENTATION"
                        ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Documentation:  ${BUILD_DOCUMENTATION}"


In cloud/script/build_fdb.sh line 320:
echo "  RocksDB:        $WITH_ROCKSDB"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  RocksDB:        ${WITH_ROCKSDB}"


In cloud/script/build_fdb.sh line 321:
echo "  gRPC:           $WITH_GRPC"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  gRPC:           ${WITH_GRPC}"


In cloud/script/build_fdb.sh line 322:
echo "  AWS Backup:     $BUILD_AWS_BACKUP"
                        ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  AWS Backup:     ${BUILD_AWS_BACKUP}"


In cloud/script/build_fdb.sh line 323:
echo "  Azure Backup:   $BUILD_AZURE_BACKUP"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Azure Backup:   ${BUILD_AZURE_BACKUP}"


In cloud/script/build_fdb.sh line 327:
echo "  C:      $BUILD_C_BINDING"
                ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  C:      ${BUILD_C_BINDING}"


In cloud/script/build_fdb.sh line 328:
echo "  Python: $BUILD_PYTHON_BINDING"
                ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Python: ${BUILD_PYTHON_BINDING}"


In cloud/script/build_fdb.sh line 329:
echo "  Java:   $BUILD_JAVA_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Java:   ${BUILD_JAVA_BINDING}"


In cloud/script/build_fdb.sh line 330:
echo "  Go:     $BUILD_GO_BINDING"
                ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Go:     ${BUILD_GO_BINDING}"


In cloud/script/build_fdb.sh line 331:
echo "  Swift:  $BUILD_SWIFT_BINDING"
                ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Swift:  ${BUILD_SWIFT_BINDING}"


In cloud/script/build_fdb.sh line 332:
echo "  Ruby:   $BUILD_RUBY_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Ruby:   ${BUILD_RUBY_BINDING}"


In cloud/script/build_fdb.sh line 336:
echo "$CMAKE_OPTIONS" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${CMAKE_OPTIONS}" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'


In cloud/script/build_fdb.sh line 341:
docker pull "$DOCKER_IMAGE"
             ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
docker pull "${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 344:
if [ -d "$SRC_DIR" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -d "${SRC_DIR}" ]]; then


In cloud/script/build_fdb.sh line 346:
    if [ "$UPDATE_REPO" = true ]; then
       ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${UPDATE_REPO}" = true ]]; then


In cloud/script/build_fdb.sh line 348:
        cd "$SRC_DIR"
            ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 357:
    git clone "$REPO_URL" "$SRC_DIR"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    git clone "${REPO_URL}" "${SRC_DIR}"


In cloud/script/build_fdb.sh line 361:
echo -e "${YELLOW}Checking out version: $VERSION${NC}"
                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo -e "${YELLOW}Checking out version: ${VERSION}${NC}"


In cloud/script/build_fdb.sh line 362:
cd "$SRC_DIR"
    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 363:
git checkout "$VERSION"
              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
git checkout "${VERSION}"


In cloud/script/build_fdb.sh line 367:
mkdir -p "$BUILD_DIR"
          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
mkdir -p "${BUILD_DIR}"


In cloud/script/build_fdb.sh line 372:
    -v "$(pwd)/$SRC_DIR:/foundationdb/src:ro" \
               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${SRC_DIR}:/foundationdb/src:ro" \


In cloud/script/build_fdb.sh line 373:
    -v "$(pwd)/$BUILD_DIR:/foundationdb/build" \
               ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${BUILD_DIR}:/foundationdb/build" \


In cloud/script/build_fdb.sh line 374:
    "$DOCKER_IMAGE" \
     ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "${DOCKER_IMAGE}" \


In cloud/script/build_fdb.sh line 378:
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja $CMAKE_OPTIONS /foundationdb/src && \
                                                                                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja ${CMAKE_OPTIONS} /foundationdb/src && \


In cloud/script/build_fdb.sh line 384:
echo "Artifacts location: $(pwd)/$BUILD_DIR"
                                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Artifacts location: $(pwd)/${BUILD_DIR}"


In cloud/script/run_all_tests.sh line 175:
exit ${ret}
     ^----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
exit "${ret}"


In cloud/script/start.sh line 59:
  source "${custom_start}" 
         ^---------------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.


In docker/thirdparties/docker-compose/common/hive-configure.sh line 22:
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
                                                               ^-----------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean: 
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}


In docker/thirdparties/docker-compose/common/hive-configure.sh line 29:
  local entry="<property><name>$name</name><value>${value}</value></property>"
                               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local entry="<property><name>${name}</name><value>${value}</value></property>"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 30:
  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
        ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local escapedEntry=$(echo "${entry}" | sed 's/\//\\\//g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 31:
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
                                                        ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" "${path}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 42:
    echo "Configuring $module"
                      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Configuring ${module}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 43:
    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                                                                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix="${envPrefix}"); do 


In docker/thirdparties/docker-compose/common/hive-configure.sh line 44:
        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        name=$(echo "${c}" | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 47:
        echo " - Setting $name=$  "
                         ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo " - Setting ${name}=$  "


In docker/thirdparties/docker-compose/common/hive-configure.sh line 48:
        addProperty $path $name "$value"
                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        addProperty "${path}" "${name}" "${value}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 27:
    echo "" > "$output_file"
               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "" > "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 31:
        if [ -n "$type_value" ]; then
           ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ -n "${type_value}" ]]; then


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 32:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_type\": \"${type_value}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 34:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 36:
        echo "$line"  >> "$output_file"
              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "${line}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 38:
    done < "$data_file"
            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    done < "${data_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 79:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 80:
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 119:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 120:
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 126:
curl "http://${ES_7_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_7_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 172:
generate_bulk_request "composite_type_array" "_doc" "item_" "$array_data_file" "$bulk_request_file"
                                                             ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "_doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 173:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 182:
generate_bulk_request "test_keyword_array" "_doc" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                           ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "_doc" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 183:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 187:
curl "http://${ES_8_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_8_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 223:
generate_bulk_request "composite_type_array" "" "item_" "$array_data_file" "$bulk_request_file"
                                                         ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                            ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 224:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 233:
generate_bulk_request "test_keyword_array" "" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                       ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                  ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 234:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 21:
. /mnt/scripts/bootstrap/bootstrap-groups.sh
  ^-- SC1091 (info): Not following: /mnt/scripts/bootstrap/bootstrap-groups.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 27:
    [ -e "$file" ] || continue
    ^------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    [[ -e "${file}" ]] || continue


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 28:
    tar -xzvf "$file" -C "$AUX_LIB"
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    tar -xzvf "${file}" -C "${AUX_LIB}"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 53:
while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
        ^-- SC2091 (warning): Remove surrounding $() to avoid executing output (or use eval if intentional).


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 57:
if [[ ${NEED_LOAD_DATA} = "0" ]]; then
      ^---------------^ SC2154 (warning): NEED_LOAD_DATA is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 64:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 69:
    echo "Script: create_paimon_table.hql executed in $EXECUTION_TIME seconds"
                                                      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Script: create_paimon_table.hql executed in ${EXECUTION_TIME} seconds"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 88:
    printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                     ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                      ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 164:
    printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                                                            ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 28:
    relative_archive_path="${archive_path#${CUR_DIR}/}"
                                          ^--------^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns.

Did you mean: 
    relative_archive_path="${archive_path#"${CUR_DIR}"/}"


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 35:
    printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
                                                             ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                       ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 56:
        curl -O "https://${s3BucketName}.${s3Endpoint}/regression/datalake/pipeline_data/${remote_path}"
                         ^-------------^ SC2154 (warning): s3BucketName is referenced but not assigned.
                                         ^-----------^ SC2154 (warning): s3Endpoint is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 108:
cd ${CUR_DIR}/auxlib
   ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
cd "${CUR_DIR}"/auxlib


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 85:
METASTORE_HOST=$(echo "${HIVE_METASTORE_URIS}" | sed 's|thrift://||' | cut -d: -f1)
                       ^--------------------^ SC2154 (warning): HIVE_METASTORE_URIS is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 90:
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
while [[ "${RETRY_COUNT}" -lt "${MAX_RETRIES}" ]]; do


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 103:
    if [ $RETRY_COUNT -eq 0 ]; then
       ^--------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${RETRY_COUNT}" -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 111:
  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
     ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
  if [[ $((RETRY_COUNT % 10)) -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 117:
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${RETRY_COUNT}" -ge "${MAX_RETRIES}" ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 127:
    <value>${S3_ENDPOINT}</value>
           ^------------^ SC2154 (warning): S3_ENDPOINT is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 131:
    <value>${MINIO_ROOT_USER}</value>
           ^----------------^ SC2154 (warning): MINIO_ROOT_USER is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 135:
    <value>${MINIO_ROOT_PASSWORD}</value>
           ^--------------------^ SC2154 (warning): MINIO_ROOT_PASSWORD is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 165:
    <value>s3a://${HUDI_BUCKET}/warehouse</value>
                 ^------------^ SC2154 (warning): HUDI_BUCKET is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 171:
HUDI_BUNDLE_JAR_FILE=$(download_jar "hudi-spark3.5-bundle_2.12" "${HUDI_BUNDLE_VERSION}" "${HUDI_BUNDLE_URL}")
                                                                 ^--------------------^ SC2154 (warning): HUDI_BUNDLE_VERSION is referenced but not assigned.
                                                                                          ^----------------^ SC2154 (warning): HUDI_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 176:
HADOOP_AWS_JAR=$(download_jar "hadoop-aws" "${HADOOP_AWS_VERSION}" "${HADOOP_AWS_URL}")
                                            ^-------------------^ SC2154 (warning): HADOOP_AWS_VERSION is referenced but not assigned.
                                                                    ^---------------^ SC2154 (warning): HADOOP_AWS_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 181:
AWS_SDK_BUNDLE_JAR=$(download_jar "aws-java-sdk-bundle" "${AWS_SDK_BUNDLE_VERSION}" "${AWS_SDK_BUNDLE_URL}")
                                                         ^-----------------------^ SC2154 (warning): AWS_SDK_BUNDLE_VERSION is referenced but not assigned.
                                                                                     ^-------------------^ SC2154 (warning): AWS_SDK_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 185:
POSTGRESQL_JDBC_JAR=$(download_jar "postgresql" "${POSTGRESQL_JDBC_VERSION}" "${POSTGRESQL_JDBC_URL}")
                                                 ^------------------------^ SC2154 (warning): POSTGRESQL_JDBC_VERSION is referenced but not assigned.
                                                                              ^--------------------^ SC2154 (warning): POSTGRESQL_JDBC_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 209:
  ${SPARK_HOME}/bin/spark-sql \
  ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
  "${SPARK_HOME}"/bin/spark-sql \


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 229:
touch ${SUCCESS_FILE}
      ^-------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
touch "${SUCCESS_FILE}"


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 19:
source /usr/local/common/hive-configure.sh
       ^-- SC1091 (info): Not following: /usr/local/common/hive-configure.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 20:
source /usr/local/common/event-hook.sh
       ^-----------------------------^ SC1091 (info): Not following: /usr/local/common/event-hook.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 34:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 36:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 75:
if [ $i -eq 60 ]; then
   ^-----------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
     ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${i}" -eq 60 ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 82:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 84:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 91:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh line 34:
if [ "$FAILED" == "" ]; then
   ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FAILED}" == "" ]]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 27:
echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
                                                                ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Waiting for Polaris health check at http://${HOST}:${PORT}/q/health ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 28:
for i in $(seq 1 120); do
^-^ SC2034 (warning): i appears unused. Verify use (or export if used externally).


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 29:
  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if curl -sSf "http://${HOST}:8182/q/health" >/dev/null; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 38:
  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/catalog/v1/oauth/tokens" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 40:
  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "grant_type=client_credentials&client_id=${USER}&client_secret=${PASS}&scope=PRINCIPAL_ROLE:ALL")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 43:
TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
                     ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
TOKEN=$(printf "%s" "${TOKEN_JSON}" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 45:
if [ -z "$TOKEN" ]; then
         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ -z "${TOKEN}" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 46:
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
                                                                      ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: ${TOKEN_JSON}" >&2


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 50:
echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
                                       ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                            ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Creating catalog '${CATALOG}' with base '${BASE_LOCATION}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 53:
  "name": "$CATALOG",
           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  "name": "${CATALOG}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 56:
    "default-base-location": "$BASE_LOCATION",
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "default-base-location": "${BASE_LOCATION}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 66:
    "allowedLocations": ["$BASE_LOCATION"]
                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "allowedLocations": ["${BASE_LOCATION}"]


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 74:
  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/catalogs" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 75:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 77:
  -d "$CREATE_PAYLOAD")
      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "${CREATE_PAYLOAD}")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 79:
if [ "$HTTP_CODE" = "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" = "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 81:
elif [ "$HTTP_CODE" = "409" ]; then
        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
elif [ "${HTTP_CODE}" = "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 84:
  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
                                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Create catalog failed (HTTP ${HTTP_CODE}):"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 89:
echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Setting up permissions for catalog '${CATALOG}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 94:
  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/catalogs/${CATALOG}/catalog-roles/catalog_admin/grants" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 95:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 99:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 100:
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 107:
  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 108:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 112:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ] && [ "${HTTP_CODE}" != "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 113:
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
                                                                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 120:
  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principal-roles/data_engineer/catalog-roles/${CATALOG}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 121:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 125:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 126:
  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
                                                              ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to connect roles (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 133:
  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principals/root/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 134:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 138:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 139:
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
                                                                                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/ranger/ranger-admin/ranger-entrypoint.sh line 24:
cd $RANGER_HOME
   ^----------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.
   ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${RANGER_HOME}"


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 16:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 19:
if [ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^------------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.

Did you mean: 
if [[ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]]; then


In docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh line 15:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/jindofs-helpers.sh line 29:
    local target_system="$1"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 30:
    local target_arch="$2"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 50:
    local jar_name="$1"
    ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 51:
    local pattern
    ^-----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 53:
        case "${jar_name}" in
        ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In docker/thirdparties/jindofs-helpers.sh line 54:
            ${pattern})
            ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob.


In docker/thirdparties/jindofs-helpers.sh line 63:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 64:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 74:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 75:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 76:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 77:
    local count=0
    ^---------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 90:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 91:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 92:
    local target_system="$3"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 93:
    local target_arch="$4"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 94:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 95:
    local platform_jar_pattern
    ^------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/run-thirdparties-docker.sh line 58:
export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
       ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 135:
    echo ${COMPONENTS}
         ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    echo "${COMPONENTS}"


In docker/thirdparties/run-thirdparties-docker.sh line 167:
RUN_OCENABASE=0
^-----------^ SC2034 (warning): RUN_OCENABASE appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 538:
        local backup_dir=/home/work/pipline/backup_center
              ^--------^ SC2034 (warning): backup_dir appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 543:
            echo "docker exec "${container_id}" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"
                               ^-------------^ SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them.
                               ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
            echo "docker exec ""${container_id}"" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"


In docker/thirdparties/run-thirdparties-docker.sh line 571:
    sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 573:
        sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 591:
    sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 593:
        sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 629:
    . "${HUDI_DIR}"/hudi.env
      ^--------------------^ SC1091 (info): Not following: ./hudi.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 673:
        mv *.tbl ../lakesoul/test_files/tpch/data
           ^-- SC2035 (info): Use ./*glob* or -- *glob* so names with dashes won't become options.


In docker/thirdparties/run-thirdparties-docker.sh line 675:
        export TPCH_DATA=$(realpath lakesoul/test_files/tpch/data)
               ^-------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 691:
        . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
          ^-- SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.
                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        . "${ROOT}"/docker-compose/kerberos/kerberos"${i}"_settings.env


In docker/thirdparties/run-thirdparties-docker.sh line 692:
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
                                                                                                                       ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-"${i}".env


In docker/thirdparties/run-thirdparties-docker.sh line 693:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/my.cnf


In docker/thirdparties/run-thirdparties-docker.sh line 694:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf


In docker/thirdparties/run-thirdparties-docker.sh line 695:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf


In docker/thirdparties/run-thirdparties-docker.sh line 731:
    . "${POLARIS_DIR}/polaris_settings.env"
      ^-- SC1091 (info): Not following: ./polaris_settings.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 780:
if [[ "$NEED_LOAD_DATA" -eq 1 ]]; then
       ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${NEED_LOAD_DATA}" -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 786:
if [[ $need_prepare_hive_data -eq 1 ]]; then
      ^---------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ ${need_prepare_hive_data} -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 794:
    export HIVE_BOOTSTRAP_GROUPS="$(bootstrap_merge_groups "${prepare_hive_bootstrap_groups[@]}")"
           ^-------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 912:
    wait "${pids[$compose]}" || status=$?
                 ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    wait "${pids[${compose}]}" || status=$?


In docker/thirdparties/run-thirdparties-docker.sh line 913:
    if [ $status -ne 0 ] && [ $compose != "db2" ]; then
       ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                              ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${status}" -ne 0 ]] && [[ "${compose}" != "db2" ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 914:
        echo "docker $compose started failed with status $status"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "docker ${compose} started failed with status ${status}"


In docker/thirdparties/run-thirdparties-docker.sh line 916:
        cat start_${compose}.log || true
                  ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        cat start_"${compose}".log || true


In env.sh line 369:
    CMAKE_USE_CCACHE_C="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
    ^----------------^ SC2034 (warning): CMAKE_USE_CCACHE_C appears unused. Verify use (or export if used externally).


In hooks/setup_worktree.sh line 21:
cp "$ROOT_WORKSPACE_PATH/custom_env.sh" custom_env.sh
    ^------------------^ SC2154 (warning): ROOT_WORKSPACE_PATH is referenced but not assigned.
    ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp "${ROOT_WORKSPACE_PATH}/custom_env.sh" custom_env.sh


In hooks/setup_worktree.sh line 24:
cp -r "$ROOT_WORKSPACE_PATH/thirdparty/installed" thirdparty/
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -r "${ROOT_WORKSPACE_PATH}/thirdparty/installed" thirdparty/


In hooks/setup_worktree.sh line 27:
cp -f "$ROOT_WORKSPACE_PATH/build.sh" build.sh
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -f "${ROOT_WORKSPACE_PATH}/build.sh" build.sh


In post-build.sh line 196:
    if [[ "$(echo "${DISABLE_BUILD_JUICEFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JUICEFS is referenced but not assigned.


In post-build.sh line 203:
    if [[ "$(echo "${DISABLE_BUILD_JINDOFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JINDOFS is referenced but not assigned.


In regression-test/pipeline/cloud_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 67:
        echo "regressionAliyunStsRegion='${regressionAliyunStsRegion:-cn-hongkong}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 68:
        echo "regressionAliyunStsRoleArn='${regressionAliyunStsRoleArn:-}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 70:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 73:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 74:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 75:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh --stop; then echo; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 76:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c kafka; then echo; else echo "ERROR: start kafka docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                          ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                                     ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 77:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 78:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 79:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 87:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 89:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 93:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 94:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 97:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 98:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 99:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 100:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 101:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 102:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 104:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/common/doris-utils.sh line 1013:
    local fe_pid=$(pgrep -f "org.apache.doris.DorisFE")
          ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In regression-test/pipeline/common/doris-utils.sh line 1015:
    jstack $fe_pid >${DORIS_HOME}/fe/log/fe_stack.txt
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack ${fe_pid} >${DORIS_HOME}/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1016:
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof $fe_pid
                                                            ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof ${fe_pid}


In regression-test/pipeline/common/doris-utils.sh line 1018:
    jstack $fe_pid >"${DORIS_HOME}"/fe/log/fe_stack.txt
           ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack "${fe_pid}" >"${DORIS_HOME}"/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1019:
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof $fe_pid
                                                              ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                              ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof "${fe_pid}"


In regression-test/pipeline/common/stage-timer.sh line 59:
            "${STAGE_TIMER_STAGE_NAMES[$index]}" \
                                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_NAMES[${index}]}" \


In regression-test/pipeline/common/stage-timer.sh line 60:
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[$index]}")" \
                                                                        ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[${index}]}")" \


In regression-test/pipeline/common/stage-timer.sh line 61:
            "${STAGE_TIMER_STAGE_SECONDS[$index]}"
                                         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_SECONDS[${index}]}"


In regression-test/pipeline/external/external-stage-timer.sh line 21:
    return 1 2>/dev/null || exit 1
                            ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/external/external-stage-timer.sh line 52:
    case "${current_command}" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In regression-test/pipeline/external/external-stage-timer.sh line 78:
    local current_command="${1:-$BASH_COMMAND}"
                                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    local current_command="${1:-${BASH_COMMAND}}"


In regression-test/pipeline/vault_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 68:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 72:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 73:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 74:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio ||
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 75:
        bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 76:
        echo "INFO: start minio docker success"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 78:
        echo "ERROR: start minio docker twice failed" && return 1
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                         ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 82:
    docker_compose_hdfs_yaml='
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 116:
    if echo "${docker_compose_hdfs_yaml}" >docker-compose.yaml && docker-compose up -d; then echo; else echo "ERROR: start hdfs docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                  ^------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                             ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 117:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 118:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 119:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 127:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 129:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 133:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 134:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 137:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 138:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 139:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 140:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 141:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 142:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 144:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In run-be-ut.sh line 150:
    WITH_TDE_DIR        -- ${WITH_TDE_DIR}
                           ^-------------^ SC2154 (warning): WITH_TDE_DIR is referenced but not assigned.


In run-cloud-ut.sh line 199:
    -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In run-cloud-ut.sh line 204:
    "${CMAKE_USE_CCACHE}" \
     ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
     ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In run-fs-env-test.sh line 44:
    case "$arg" in
          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${arg}" in


In run-fs-env-test.sh line 74:
        *) echo "Unknown option: $arg"; exit 1 ;;
                                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        *) echo "Unknown option: ${arg}"; exit 1 ;;


In run-fs-env-test.sh line 80:
case "$SERVICE" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${SERVICE}" in


In run-fs-env-test.sh line 94:
    *) echo "Unknown service: $SERVICE"; exit 1 ;;
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    *) echo "Unknown service: ${SERVICE}"; exit 1 ;;


In run-fs-env-test.sh line 98:
echo "Running filesystem environment tests for: $TAG (modules: $MODULES)"
                                                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Running filesystem environment tests for: ${TAG} (modules: ${MODULES})"


In run-fs-env-test.sh line 101:
    -Dgroups="$TAG" \
              ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -Dgroups="${TAG}" \


In thirdparty/build-thirdparty.sh line 1386:
    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
                       ^--------------^ SC2154 (warning): CMAKE_CXX_FLAGS is referenced but not assigned.
                       ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base" \


In thirdparty/build-thirdparty.sh line 1977:
    cp -r ${TP_SOURCE_DIR}/${JINDOFS_SOURCE}/* "${TP_INSTALL_DIR}/jindofs_libs/"
          ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    cp -r "${TP_SOURCE_DIR}"/"${JINDOFS_SOURCE}"/* "${TP_INSTALL_DIR}/jindofs_libs/"


In thirdparty/build-thirdparty.sh line 2051:
    if [ -d "arrow_ep-install/lib" ]; then
       ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -d "arrow_ep-install/lib" ]]; then


In thirdparty/build-thirdparty.sh line 2059:
            if [ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]; then
               ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
            if [[ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]]; then


In thirdparty/build-thirdparty.sh line 2068:
    if [ -f "release/libroaring_bitmap.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libroaring_bitmap.a" ]]; then


In thirdparty/build-thirdparty.sh line 2073:
    if [ -f "release/libxxhash.a" ]; then
       ^--------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libxxhash.a" ]]; then


In thirdparty/build-thirdparty.sh line 2078:
    if [ -f "fmt_ep-install/lib/libfmt.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "fmt_ep-install/lib/libfmt.a" ]]; then


In thirdparty/build-thirdparty.sh line 2083:
    if [ -f "tbb_ep-install/lib/libtbb.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "tbb_ep-install/lib/libtbb.a" ]]; then


In thirdparty/build-thirdparty.sh line 2207:
                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
                       ^-- SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2251:
                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
                           ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2287:
        rm -rf "${TP_SOURCE_DIR}/${src_dir}"
               ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/download-prebuild-thirdparty.sh line 30:
if [ -z "$VERSION" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -z "${VERSION}" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 41:
case "$OS" in
      ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${OS}" in


In thirdparty/download-prebuild-thirdparty.sh line 49:
    echo "Unsupported OS: $OS"
                          ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported OS: ${OS}"


In thirdparty/download-prebuild-thirdparty.sh line 57:
case "$ARCH" in
      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${ARCH}" in


In thirdparty/download-prebuild-thirdparty.sh line 65:
    echo "Unsupported architecture: $ARCH"
                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported architecture: ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 73:
case "$VERSION" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 87:
    echo "Unsupported version: $VERSION"
                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported version: ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 97:
if [ "$PLATFORM" = "darwin" ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${PLATFORM}" = "darwin" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 100:
  if [ "$ARCH" = "arm64" ]; then
     ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if [[ "${ARCH}" = "arm64" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 101:
    case "$VERSION" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.
          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 125:
echo "Detected platform : $PLATFORM"
                          ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected platform : ${PLATFORM}"


In thirdparty/download-prebuild-thirdparty.sh line 126:
echo "Detected arch     : $ARCH"
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected arch     : ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 127:
echo "Version           : $VERSION"
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Version           : ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 128:
echo "Downloading       : $URL"
                          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Downloading       : ${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 135:
  curl -fL -o "$FILENAME" "$URL"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  curl -fL -o "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 137:
  wget -O "$FILENAME" "$URL"
           ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  wget -O "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 145:
echo "  $(pwd)/$FILENAME"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  $(pwd)/${FILENAME}"


In thirdparty/download-thirdparty.sh line 718:
    cd $TP_SOURCE_DIR/$CCTZ_SOURCE
       ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
       ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    cd "${TP_SOURCE_DIR}"/"${CCTZ_SOURCE}"


In thirdparty/download-thirdparty.sh line 719:
    if [[ ! -f "$PATCHED_MARK" ]] ; then
                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ ! -f "${PATCHED_MARK}" ]] ; then


In thirdparty/download-thirdparty.sh line 724:
        touch "$PATCHED_MARK"
               ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        touch "${PATCHED_MARK}"


In tools/export_mysql_rule_to_json.sh line 30:
echo "Database Host: $DB_HOST"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Host: ${DB_HOST}"


In tools/export_mysql_rule_to_json.sh line 31:
echo "Database User: $DB_USER"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database User: ${DB_USER}"


In tools/export_mysql_rule_to_json.sh line 32:
echo "Database Name: $DB_NAME"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Name: ${DB_NAME}"


In tools/export_mysql_rule_to_json.sh line 33:
echo "Password: $(if [ -n "$DB_PASS" ]; then echo "Set"; else echo "Not set"; fi)"
                     ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Password: $(if [[ -n "${DB_PASS}" ]]; then echo "Set"; else echo "Not set"; fi)"


In tools/export_mysql_rule_to_json.sh line 34:
echo "Table Name: $TABLE_NAME"
                  ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Table Name: ${TABLE_NAME}"


In tools/export_mysql_rule_to_json.sh line 35:
echo "Output File: $OUTPUT_FILE"
                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Output File: ${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 61:
if [ -n "$DB_PASS" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -n "${DB_PASS}" ]]; then


In tools/export_mysql_rule_to_json.sh line 62:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -N 2>/dev/null)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" -N 2>/dev/null)


In tools/export_mysql_rule_to_json.sh line 64:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER $DB_NAME -N)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" "${DB_NAME}" -N)


In tools/export_mysql_rule_to_json.sh line 68:
if [ "$JSON_DATA" = "NULL" ] || [ -z "$JSON_DATA" ]; then
   ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${JSON_DATA}" = "NULL" ]] || [[ -z "${JSON_DATA}" ]]; then


In tools/export_mysql_rule_to_json.sh line 73:
echo "$JSON_DATA" > "$OUTPUT_FILE"
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${JSON_DATA}" > "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 77:
    jq '.' "$OUTPUT_FILE" | awk '
            ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jq '.' "${OUTPUT_FILE}" | awk '


In tools/export_mysql_rule_to_json.sh line 80:
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
                                                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 83:
echo "Export completed: $OUTPUT_FILE"
                        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Export completed: ${OUTPUT_FILE}"


In tools/lzo/build.sh line 1:
# Licensed to the Apache Software Foundation (ASF) under one
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.


In tools/lzo/build.sh line 20:
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I${DORIS_THIRDPARTY}/installed/include -L${DORIS_THIRDPARTY}/installed/lib -llzo2 -std=c++17
                                             ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                     ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I"${DORIS_THIRDPARTY}"/installed/include -L"${DORIS_THIRDPARTY}"/installed/lib -llzo2 -std=c++17

For more information:
  https://www.shellcheck.net/wiki/SC1128 -- The shebang must be on the first ...
  https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
  https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt ' returned error 1 finding the following formatting issues:

----------
--- bin/start_be.sh.orig
+++ bin/start_be.sh
@@ -450,45 +450,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_fe.sh.orig
+++ bin/start_fe.sh
@@ -210,45 +210,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_file_cache_microbench.sh.orig
+++ bin/start_file_cache_microbench.sh
@@ -115,7 +115,6 @@
     exit 1
 fi
 
-
 JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:5000,dirty_decay_ms:5000,oversize_threshold:0,prof:true,lg_prof_interval:30,lg_prof_sample:19,prof_final:false,prof_active:true"
 JEMALLOC_PROF_PRFIX="jeprofile_doris_cloud"
 
--- build-support/clang-format.sh.orig
+++ build-support/clang-format.sh
@@ -36,7 +36,7 @@
         echo "Error: Homebrew is missing. Please install it first due to we use Homebrew to manage the tools which are needed to build the project."
         exit 1
     fi
-    if ! brew list llvm@16 > /dev/null 2>&1; then
+    if ! brew list llvm@16 >/dev/null 2>&1; then
         echo "Error: Please install llvm@16 firt due to we use it to format code."
         exit 1
     fi
--- build-support/run-clang-tidy.sh.orig
+++ build-support/run-clang-tidy.sh
@@ -86,36 +86,36 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --base)
-            BASE_REF="$2"
-            shift 2
-            ;;
-        --files)
+    --base)
+        BASE_REF="$2"
+        shift 2
+        ;;
+    --files)
+        shift
+        while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
+            SPECIFIC_FILES+=("$1")
             shift
-            while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
-                SPECIFIC_FILES+=("$1")
-                shift
-            done
-            ;;
-        --build-dir)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        --fix)
-            FIX_MODE="-fix"
-            shift
-            ;;
-        --full)
-            FULL_FILE_MODE=true
-            shift
-            ;;
-        -h|--help)
-            usage
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage 1
-            ;;
+        done
+        ;;
+    --build-dir)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    --fix)
+        FIX_MODE="-fix"
+        shift
+        ;;
+    --full)
+        FULL_FILE_MODE=true
+        shift
+        ;;
+    -h | --help)
+        usage
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage 1
+        ;;
     esac
 done
 
@@ -255,7 +255,7 @@
             # Append range to the file's entry (space-separated "start:end" pairs)
             CHANGED_LINES_MAP["${current_file}"]+="${start}:${end} "
         fi
-    done <<< "${diff_output}"
+    done <<<"${diff_output}"
 }
 
 # Check if a line number falls within any changed range for a file.
@@ -348,7 +348,7 @@
                         FILE_COUNT=$((FILE_COUNT + 1))
                     fi
                 fi
-            done <<< "$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
+            done <<<"$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
 
             if [[ ${FILE_COUNT} -gt 0 ]]; then
                 echo "${FILE_WARNINGS}"
--- build.sh.orig
+++ build.sh
@@ -275,11 +275,11 @@
         --be-cdc-client)
             BUILD_BE_CDC_CLIENT=1
             shift
-            ;;    
+            ;;
         --exclude-obs-dependencies)
             BUILD_OBS_DEPENDENCIES=0
             shift
-            ;; 
+            ;;
         --exclude-cos-dependencies)
             BUILD_COS_DEPENDENCIES=0
             shift
@@ -291,7 +291,7 @@
         --disable-dynamic-arch)
             ENABLE_DYNAMIC_ARCH='OFF'
             shift
-            ;;           
+            ;;
         --clean)
             CLEAN=1
             shift
@@ -340,7 +340,7 @@
         BUILD_META_TOOL='ON'
         BUILD_FILE_CACHE_MICROBENCH_TOOL='OFF'
         BUILD_INDEX_TOOL='ON'
-	    BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
+        BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
         BUILD_HIVE_UDF=1
         BUILD_BE_JAVA_EXTENSIONS=1
         BUILD_BE_CDC_CLIENT=1
@@ -590,7 +590,10 @@
 FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
 FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
 
-export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
+export DORIS_FEATURE_LIST=$(
+    IFS=','
+    echo "${FEAT[*]}"
+)
 echo "Feature List: ${DORIS_FEATURE_LIST}"
 
 # Clean and build generated code
@@ -838,8 +841,8 @@
         rm -f "${log_file}"
         return 0
     fi
-    if [[ "${thread_count}" != "${retry_thread_count}" ]] && \
-            grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
+    if [[ "${thread_count}" != "${retry_thread_count}" ]] &&
+        grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
         echo "FE Maven build hit parallel build issue (lock contention or reactor artifact race). Retrying with -T ${retry_thread_count}."
         mvn_cmd=("${mvn_cmd[@]:0:${#mvn_cmd[@]}-2}" -T "${retry_thread_count}")
         "${mvn_cmd[@]}"
@@ -927,12 +930,12 @@
     unset FS_PLUGIN_DIR fs_module fs_plugin_target fs_module_dir
 
     if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
-      mkdir -p "${DORIS_OUTPUT}/fe/arthas"
-      rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
-      unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
-      unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
-      rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
-      rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
+        mkdir -p "${DORIS_OUTPUT}/fe/arthas"
+        rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
+        unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
+        unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
+        rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
+        rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
     fi
 fi
 
@@ -1050,15 +1053,15 @@
         module_proj_jar="${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/${extensions_module}-project.jar"
         mkdir "${BE_JAVA_EXTENSIONS_DIR}"/"${extensions_module}"
         echo "Copy Be Extensions ${extensions_module} jar to ${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}"
-     if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
-          
+        if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
+
             BE_HADOOP_HDFS_DIR="${DORIS_OUTPUT}/be/lib/hadoop_hdfs/"
             echo "Copy Be Extensions hadoop deps jars to ${BE_HADOOP_HDFS_DIR}"
             rm -rf "${BE_HADOOP_HDFS_DIR}"
             mkdir "${BE_HADOOP_HDFS_DIR}"
             HADOOP_DEPS_JAR_DIR="${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}/target"
             echo "HADOOP_DEPS_JAR_DIR: ${HADOOP_DEPS_JAR_DIR}"
-            if  [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
+            if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
                 echo "WARN: lib directory missing (likely due to Maven cache). Regenerating..."
                 pushd "${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}"
                 "${MVN_CMD}" dependency:copy-dependencies -DskipTests -Dcheckstyle.skip=true
@@ -1083,7 +1086,7 @@
                 cp -r "${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/lib" "${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}/"
             fi
         fi
-    done        
+    done
 
     # Third-party filesystem jars (JuiceFS, JindoFS) are packaged by post-build.sh
     "${DORIS_HOME}/post-build.sh" --be --output "${DORIS_OUTPUT}"
--- build_profile.sh.orig
+++ build_profile.sh
@@ -58,7 +58,10 @@
             mtime=$(stat -c %Y "$f")
         fi
         [[ "$mtime" -gt "$last_time" ]] && echo "$f"
-    done < <(git diff --name-only 2>/dev/null; git ls-files --others --exclude-standard 2>/dev/null)
+    done < <(
+        git diff --name-only 2>/dev/null
+        git ls-files --others --exclude-standard 2>/dev/null
+    )
 }
 
 # Read last_build_time from log (0 for first build)
@@ -96,7 +99,7 @@
     files=$(collect_files "${last_time}")
 
     # Write state to temp file
-    cat > "${state_file}" <<EOF
+    cat >"${state_file}" <<EOF
 _BP_START=${start_time}
 _BP_USER=${user}
 _BP_DIR=${build_dir}
@@ -105,8 +108,8 @@
 _BP_ARGS=${build_args}
 EOF
     # Write files as separate lines after a marker
-    echo "===FILES==="  >> "${state_file}"
-    echo "${files}"     >> "${state_file}"
+    echo "===FILES===" >>"${state_file}"
+    echo "${files}" >>"${state_file}"
 }
 
 cmd_record() {
@@ -124,7 +127,7 @@
         [[ "$key" == "===FILES===" ]] && break
         [[ "$key" == _BP_* ]] || continue
         eval "${key}='${value}'"
-    done < "${state_file}"
+    done <"${state_file}"
 
     # Read files (everything after ===FILES=== marker)
     local files
@@ -136,17 +139,17 @@
     load_avg=$(uptime | grep -oE 'load average[s]?: .*' | sed 's/load average[s]\{0,1\}: //')
 
     # Write record via python3 (env vars + stdin for safety)
-    echo "${files}" | \
-    _BP_USER="${_BP_USER}" \
-    _BP_DIR="${_BP_DIR}" \
-    _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
-    _BP_COMMIT="${_BP_COMMIT}" \
-    _BP_ARGS="${_BP_ARGS}" \
-    _BP_START="${_BP_START}" \
-    _BP_EXIT_CODE="${exit_code}" \
-    _BP_END_TIME="${end_time}" \
-    _BP_LOAD_AVG="${load_avg}" \
-    python3 -c "
+    echo "${files}" |
+        _BP_USER="${_BP_USER}" \
+            _BP_DIR="${_BP_DIR}" \
+            _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
+            _BP_COMMIT="${_BP_COMMIT}" \
+            _BP_ARGS="${_BP_ARGS}" \
+            _BP_START="${_BP_START}" \
+            _BP_EXIT_CODE="${exit_code}" \
+            _BP_END_TIME="${end_time}" \
+            _BP_LOAD_AVG="${load_avg}" \
+            python3 -c "
 import json, os, sys
 
 files = [line.strip() for line in sys.stdin if line.strip()]
@@ -166,21 +169,21 @@
     'load_avg': os.environ['_BP_LOAD_AVG'],
 }
 print(json.dumps(record))
-" >> "${LOG_FILE}"
+" >>"${LOG_FILE}"
 
     # Clean up state file
     rm -f "${state_file}"
 }
 
 case "$1" in
-    collect)
-        cmd_collect "$2" "$3"
-        ;;
-    record)
-        cmd_record "$2" "$3"
-        ;;
-    *)
-        echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
-        exit 1
-        ;;
+collect)
+    cmd_collect "$2" "$3"
+    ;;
+record)
+    cmd_record "$2" "$3"
+    ;;
+*)
+    echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
+    exit 1
+    ;;
 esac
--- cloud/script/build_fdb.sh.orig
+++ cloud/script/build_fdb.sh
@@ -53,7 +53,7 @@
 
 # Print help message
 show_help() {
-    cat << EOF
+    cat <<EOF
 Usage: $0 [OPTIONS]
 
 Build FoundationDB using Docker.
@@ -110,110 +110,110 @@
 # Parse command line arguments
 while [[ $# -gt 0 ]]; do
     case $1 in
-        -v)
-            VERSION="$2"
-            shift 2
-            ;;
-        -o)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        -i)
-            DOCKER_IMAGE="$2"
-            shift 2
-            ;;
-        -s)
-            SRC_DIR="$2"
-            shift 2
-            ;;
-        -u)
-            UPDATE_REPO=false
-            shift
-            ;;
-        --aws)
-            BUILD_AWS_BACKUP=true
-            shift
-            ;;
-        --azure)
-            BUILD_AZURE_BACKUP=true
-            shift
-            ;;
-        --no-jemalloc)
-            USE_JEMALLOC=false
-            shift
-            ;;
-        --no-lto)
-            USE_LTO=false
-            shift
-            ;;
-        --no-debug-syms)
-            FULL_DEBUG_SYMBOLS=false
-            shift
-            ;;
-        --no-docs)
-            BUILD_DOCUMENTATION=false
-            shift
-            ;;
-        --no-rocksdb)
-            WITH_ROCKSDB=false
-            shift
-            ;;
-        --no-grpc)
-            WITH_GRPC=false
-            shift
-            ;;
-        --debug-syms)
-            FULL_DEBUG_SYMBOLS=true
-            shift
-            ;;
-        --docs)
-            BUILD_DOCUMENTATION=true
-            shift
-            ;;
-        --rocksdb)
-            WITH_ROCKSDB=true
-            shift
-            ;;
-        --grpc)
-            WITH_GRPC=true
-            shift
-            ;;
-        --java)
-            BUILD_JAVA_BINDING=true
-            shift
-            ;;
-        --go)
-            BUILD_GO_BINDING=true
-            shift
-            ;;
-        --swift)
-            BUILD_SWIFT_BINDING=true
-            shift
-            ;;
-        --ruby)
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --all-bindings)
-            BUILD_JAVA_BINDING=true
-            BUILD_GO_BINDING=true
-            BUILD_SWIFT_BINDING=true
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --minimal-bindings)
-            BUILD_PYTHON_BINDING=false
-            shift
-            ;;
-        -h)
-            show_help
-            exit 0
-            ;;
-        *)
-            echo -e "${RED}Unknown option: $1${NC}" >&2
-            show_help
-            exit 1
-            ;;
+    -v)
+        VERSION="$2"
+        shift 2
+        ;;
+    -o)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    -i)
+        DOCKER_IMAGE="$2"
+        shift 2
+        ;;
+    -s)
+        SRC_DIR="$2"
+        shift 2
+        ;;
+    -u)
+        UPDATE_REPO=false
+        shift
+        ;;
+    --aws)
+        BUILD_AWS_BACKUP=true
+        shift
+        ;;
+    --azure)
+        BUILD_AZURE_BACKUP=true
+        shift
+        ;;
+    --no-jemalloc)
+        USE_JEMALLOC=false
+        shift
+        ;;
+    --no-lto)
+        USE_LTO=false
+        shift
+        ;;
+    --no-debug-syms)
+        FULL_DEBUG_SYMBOLS=false
+        shift
+        ;;
+    --no-docs)
+        BUILD_DOCUMENTATION=false
+        shift
+        ;;
+    --no-rocksdb)
+        WITH_ROCKSDB=false
+        shift
+        ;;
+    --no-grpc)
+        WITH_GRPC=false
+        shift
+        ;;
+    --debug-syms)
+        FULL_DEBUG_SYMBOLS=true
+        shift
+        ;;
+    --docs)
+        BUILD_DOCUMENTATION=true
+        shift
+        ;;
+    --rocksdb)
+        WITH_ROCKSDB=true
+        shift
+        ;;
+    --grpc)
+        WITH_GRPC=true
+        shift
+        ;;
+    --java)
+        BUILD_JAVA_BINDING=true
+        shift
+        ;;
+    --go)
+        BUILD_GO_BINDING=true
+        shift
+        ;;
+    --swift)
+        BUILD_SWIFT_BINDING=true
+        shift
+        ;;
+    --ruby)
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --all-bindings)
+        BUILD_JAVA_BINDING=true
+        BUILD_GO_BINDING=true
+        BUILD_SWIFT_BINDING=true
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --minimal-bindings)
+        BUILD_PYTHON_BINDING=false
+        shift
+        ;;
+    -h)
+        show_help
+        exit 0
+        ;;
+    *)
+        echo -e "${RED}Unknown option: $1${NC}" >&2
+        show_help
+        exit 1
+        ;;
     esac
 done
 
--- cloud/script/start.sh.orig
+++ cloud/script/start.sh
@@ -54,9 +54,9 @@
 fi
 # echo "$@" "daemonized=${daemonized}"}
 
-custom_start="${DORIS_HOME}/bin/custom_start.sh" 
+custom_start="${DORIS_HOME}/bin/custom_start.sh"
 if [[ -f "${custom_start}" ]]; then
-  source "${custom_start}" 
+    source "${custom_start}"
 fi
 enable_hdfs=${enable_hdfs:-1}
 process_name="${process_name:-doris_cloud}"
--- docker/thirdparties/docker-compose/common/event-hook.sh.orig
+++ docker/thirdparties/docker-compose/common/event-hook.sh
--- docker/thirdparties/docker-compose/common/hive-configure.sh.orig
+++ docker/thirdparties/docker-compose/common/hive-configure.sh
@@ -19,16 +19,16 @@
 # Referenced from [docker-hive](https://github.com/big-data-europe/docker-hive)
 
 # Set some sensible defaults
-export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
+export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}
 
 function addProperty() {
-  local path=$1
-  local name=$2
-  local value=$3
+    local path=$1
+    local name=$2
+    local value=$3
 
-  local entry="<property><name>$name</name><value>${value}</value></property>"
-  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
-  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
+    local entry="<property><name>$name</name><value>${value}</value></property>"
+    local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
+    sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
 }
 
 function configure() {
@@ -38,10 +38,10 @@
 
     local var
     local value
-    
+
     echo "Configuring $module"
-    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
-        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
+    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix); do
+        name=$(echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')
         var="${envPrefix}_${c}"
         value=${!var}
         echo " - Setting $name=$  "
--- docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh.orig
+++ docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh
@@ -24,18 +24,18 @@
     local output_file=$5
 
     # clear output file
-    echo "" > "$output_file"
+    echo "" >"$output_file"
 
     local id=1
     while IFS= read -r line; do
         if [ -n "$type_value" ]; then
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         else
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         fi
-        echo "$line"  >> "$output_file"
+        echo "$line" >>"$output_file"
         id=$((id + 1))
-    done < "$data_file"
+    done <"$data_file"
 }
 
 array_data_file="/mnt/scripts/data/composite_type_array_bulk.json"
--- docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh
@@ -31,12 +31,11 @@
         return 0
     fi
 
-    IFS=',' read -r -a parsed_groups <<< "${cleaned_groups}"
+    IFS=',' read -r -a parsed_groups <<<"${cleaned_groups}"
     for group in "${parsed_groups[@]}"; do
         [[ -n "${group}" ]] || continue
         case "${group}" in
-        all|common|hive2_only|hive3_only)
-            ;;
+        all | common | hive2_only | hive3_only) ;;
         *)
             echo "Unknown hive bootstrap group: ${group}" >&2
             return 1
@@ -56,7 +55,7 @@
         deduped_groups+=("${group}")
     done
 
-    if (( ${#deduped_groups[@]} == 0 )); then
+    if ((${#deduped_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
@@ -98,11 +97,11 @@
         bootstrap_group_enabled "${normalized_groups}" "hive3_only" && include_hive3_only=1
     done
 
-    (( include_common == 1 )) && merged_groups+=("common")
-    (( include_hive2_only == 1 )) && merged_groups+=("hive2_only")
-    (( include_hive3_only == 1 )) && merged_groups+=("hive3_only")
+    ((include_common == 1)) && merged_groups+=("common")
+    ((include_hive2_only == 1)) && merged_groups+=("hive2_only")
+    ((include_hive3_only == 1)) && merged_groups+=("hive3_only")
 
-    if (( ${#merged_groups[@]} == 0 )); then
+    if ((${#merged_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
--- docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh
@@ -11,4 +11,3 @@
 hive -f "${CUR_DIR}"/create_table.hql
 
 hadoop fs -rm -r /user/doris/suites/default/hive_ignore_absent_partitions_table/country=India
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/orc_predicate_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh
@@ -3,11 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/regression/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/regression/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/some_serde_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/test/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/test/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh
@@ -19,4 +19,3 @@
 
 # # create table
 # hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh
@@ -36,7 +36,7 @@
 # Add JuiceFS jar into Hadoop classpath for `hadoop fs jfs://...`.
 shopt -s nullglob
 juicefs_jars=("${AUX_LIB}"/juicefs-hadoop-*.jar)
-if (( ${#juicefs_jars[@]} > 0 )); then
+if ((${#juicefs_jars[@]} > 0)); then
     for target in /opt/hadoop-3.2.1/share/hadoop/common/lib /opt/hadoop/share/hadoop/common/lib; do
         if [[ -d "${target}" ]]; then
             cp -f "${juicefs_jars[@]}" "${target}"/
@@ -48,7 +48,6 @@
 # start metastore
 nohup /opt/hive/bin/hive --service metastore &
 
-
 # wait metastore start
 while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
     sleep 5s
@@ -84,7 +83,7 @@
     fi
 done < <(find "${DATA_DIR}" -type f -name "run.sh" -print0)
 
-if (( ${#run_scripts[@]} > 0 )); then
+if ((${#run_scripts[@]} > 0)); then
     printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         bash -e "{}" || (echo "Failed to executing script: {}" && exit 1)
@@ -122,23 +121,20 @@
     hadoop_put_paths+=("${relative_path}")
 }
 
-
 ## put tpch1
 copy_to_hdfs_if_selected "tpch1.db"
 
 ## put paimon1
 copy_to_hdfs_if_selected "paimon1"
 
-
 ## put tvf_data
 copy_to_hdfs_if_selected "tvf_data"
 
 ## put other preinstalled data
 copy_to_hdfs_if_selected "preinstalled_data"
 
-
 # wait put finish
-if (( ${#hadoop_put_pids[@]} > 0 )); then
+if ((${#hadoop_put_pids[@]} > 0)); then
     wait "${hadoop_put_pids[@]}"
 fi
 
@@ -160,7 +156,7 @@
 done
 shopt -u nullglob
 
-if (( ${#preinstalled_hqls[@]} > 0 )); then
+if ((${#preinstalled_hqls[@]} > 0)); then
     printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         hive -f {} || (echo "Failed to executing hql: {}" && exit 1)
--- docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh
@@ -31,7 +31,7 @@
     fi
 done < <(find "${CUR_DIR}/data" -type f -name "*.tar.gz" -print0)
 
-if (( ${#extract_archives[@]} > 0 )); then
+if ((${#extract_archives[@]} > 0)); then
     printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
       f="$0"
       echo "Extracting hive data $f"
--- docker/thirdparties/docker-compose/hudi/scripts/init.sh.orig
+++ docker/thirdparties/docker-compose/hudi/scripts/init.sh
@@ -21,8 +21,8 @@
 # Remove SUCCESS file from previous run to ensure fresh initialization
 SUCCESS_FILE="/opt/hudi-scripts/SUCCESS"
 if [[ -f "${SUCCESS_FILE}" ]]; then
-  echo "Removing previous SUCCESS file to ensure fresh initialization..."
-  rm -f "${SUCCESS_FILE}"
+    echo "Removing previous SUCCESS file to ensure fresh initialization..."
+    rm -f "${SUCCESS_FILE}"
 fi
 
 SPARK_HOME=/opt/spark
@@ -34,50 +34,50 @@
 
 # Function to download a JAR file if it doesn't exist
 download_jar() {
-  local jar_name="$1"
-  local version="$2"
-  local url="$3"
-  local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
-  
-  if [[ ! -f "${jar_file}" ]]; then
-    echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
-    local download_success=false
-    if command -v curl >/dev/null 2>&1; then
-      if curl -sSfL "${url}" -o "${jar_file}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    elif command -v wget >/dev/null 2>&1; then
-      if wget -qO "${jar_file}" "${url}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    else
-      echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
-      exit 1
-    fi
-    
-    if [[ "${download_success}" == "false" ]]; then
-      echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
-      exit 1
-    fi
-    
+    local jar_name="$1"
+    local version="$2"
+    local url="$3"
+    local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
+
     if [[ ! -f "${jar_file}" ]]; then
-      echo "Error: Downloaded file ${jar_file} does not exist" >&2
-      exit 1
+        echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
+        local download_success=false
+        if command -v curl >/dev/null 2>&1; then
+            if curl -sSfL "${url}" -o "${jar_file}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        elif command -v wget >/dev/null 2>&1; then
+            if wget -qO "${jar_file}" "${url}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        else
+            echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
+            exit 1
+        fi
+
+        if [[ "${download_success}" == "false" ]]; then
+            echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
+            exit 1
+        fi
+
+        if [[ ! -f "${jar_file}" ]]; then
+            echo "Error: Downloaded file ${jar_file} does not exist" >&2
+            exit 1
+        fi
     fi
-  fi
-  echo "${jar_file}"
+    echo "${jar_file}"
 }
 
 # Function to link a JAR file to Spark jars directory
 link_jar() {
-  local jar_file="$1"
-  local jar_name="$2"
-  local version="$3"
-  ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
+    local jar_file="$1"
+    local jar_name="$2"
+    local version="$3"
+    ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
 }
 
 # Wait for Hive Metastore to be ready
@@ -88,35 +88,35 @@
 RETRY_COUNT=0
 
 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
-  if command -v nc >/dev/null 2>&1; then
-    if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+    if command -v nc >/dev/null 2>&1; then
+        if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    elif command -v timeout >/dev/null 2>&1; then
+        if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    else
+        # Fallback: just wait a bit and assume it's ready
+        if [ $RETRY_COUNT -eq 0 ]; then
+            echo "Warning: nc or timeout command not available, skipping metastore readiness check"
+            sleep 10
+            break
+        fi
     fi
-  elif command -v timeout >/dev/null 2>&1; then
-    if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+
+    RETRY_COUNT=$((RETRY_COUNT + 1))
+    if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
+        echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
     fi
-  else
-    # Fallback: just wait a bit and assume it's ready
-    if [ $RETRY_COUNT -eq 0 ]; then
-      echo "Warning: nc or timeout command not available, skipping metastore readiness check"
-      sleep 10
-      break
-    fi
-  fi
-  
-  RETRY_COUNT=$((RETRY_COUNT + 1))
-  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
-    echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
-  fi
-  sleep 2
+    sleep 2
 done
 
 if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
-  echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
-  exit 1
+    echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
+    exit 1
 fi
 
 # Write core-site for MinIO (S3A)
@@ -191,37 +191,37 @@
 TEMP_SQL_DIR="/tmp/hudi_sql"
 
 if [[ -d "${SCRIPTS_DIR}" ]]; then
-  mkdir -p "${TEMP_SQL_DIR}"
-  
-  # Process each SQL file: substitute environment variables and combine them
-  echo "Processing Hudi SQL scripts..."
-  for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
-    echo "Processing ${sql_file}..."
-    # Use sed to replace environment variables in SQL files
-    # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
-    sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-    echo "" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-  done
-  
-  # Run Spark SQL to execute all SQL scripts
-  echo "Executing Hudi SQL scripts..."
-  START_TIME=$(date +%s)
-  ${SPARK_HOME}/bin/spark-sql \
-    --master local[*] \
-    --name hudi-init \
-    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
-    --conf spark.sql.catalogImplementation=hive \
-    --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
-    --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
-    -f "${TEMP_SQL_DIR}/hudi_total.sql"
-  END_TIME=$(date +%s)
-  EXECUTION_TIME=$((END_TIME - START_TIME))
-  echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
-  
-  # Clean up temporary SQL file
-  rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    mkdir -p "${TEMP_SQL_DIR}"
+
+    # Process each SQL file: substitute environment variables and combine them
+    echo "Processing Hudi SQL scripts..."
+    for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
+        echo "Processing ${sql_file}..."
+        # Use sed to replace environment variables in SQL files
+        # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
+        sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+        echo "" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+    done
+
+    # Run Spark SQL to execute all SQL scripts
+    echo "Executing Hudi SQL scripts..."
+    START_TIME=$(date +%s)
+    ${SPARK_HOME}/bin/spark-sql \
+        --master local[*] \
+        --name hudi-init \
+        --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
+        --conf spark.sql.catalogImplementation=hive \
+        --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
+        --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
+        -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    END_TIME=$(date +%s)
+    EXECUTION_TIME=$((END_TIME - START_TIME))
+    echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
+
+    # Clean up temporary SQL file
+    rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
 else
-  echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
+    echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
 fi
 
 # Create success marker file to indicate initialization is complete
--- docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh.orig
+++ docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh
--- docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh
@@ -57,7 +57,6 @@
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/paimon-hive-connector-3.1-1.3-SNAPSHOT.jar
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/gcs-connector-hadoop3-2.2.24-shaded.jar
 
-
 /usr/local/hadoop-run.sh &
 
 # check healthy hear
@@ -87,7 +86,7 @@
     echo "Invalid index parameter. Exiting."
     exit 1
 fi
-hive  -f /usr/local/sql/create_kerberos_hive_table.sql
+hive -f /usr/local/sql/create_kerberos_hive_table.sql
 if [[ ${enablePaimonHms} == "true" ]]; then
     echo "Creating Paimon HMS catalog and table"
     hadoop fs -put /tmp/paimon_data/* /user/hive/warehouse/
--- docker/thirdparties/docker-compose/kerberos/health-checks/health.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/health.sh
@@ -29,6 +29,6 @@
 
 if test -d "${HEALTH_D}"; then
     for health_script in "${HEALTH_D}"/*; do
-        "${health_script}" &>> /var/log/container-health.log || exit 1
+        "${health_script}" &>>/var/log/container-health.log || exit 1
     done
 fi
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh
@@ -32,9 +32,9 @@
 FAILED=$(supervisorctl status | grep -v RUNNING || true)
 
 if [ "$FAILED" == "" ]; then
-  echo "All services are running"
-  exit 0
+    echo "All services are running"
+    exit 0
 else
-  echo "Some of the services are failing: ${FAILED}"
-  exit 1
+    echo "Some of the services are failing: ${FAILED}"
+    exit 1
 fi
--- docker/thirdparties/docker-compose/polaris/init-catalog.sh.orig
+++ docker/thirdparties/docker-compose/polaris/init-catalog.sh
@@ -26,29 +26,30 @@
 
 echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
 for i in $(seq 1 120); do
-  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
-    break
-  fi
-  sleep 2
+    if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
+        break
+    fi
+    sleep 2
 done
 
 echo "[polaris-init] Fetching OAuth token via client_credentials ..."
 # Try to obtain token using correct OAuth endpoint
 TOKEN_JSON=$(curl -sS \
-  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
-  -H 'Content-Type: application/x-www-form-urlencoded' \
-  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
+    -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
+    -H 'Content-Type: application/x-www-form-urlencoded' \
+    -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
 
 # Extract access_token field
 TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
 
 if [ -z "$TOKEN" ]; then
-  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
-  exit 1
+    echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
+    exit 1
 fi
 
 echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
-CREATE_PAYLOAD=$(cat <<JSON
+CREATE_PAYLOAD=$(
+    cat <<JSON
 {
   "name": "$CATALOG",
   "type": "INTERNAL",
@@ -71,19 +72,19 @@
 
 # Try create; on 409 Conflict, treat as success
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d "$CREATE_PAYLOAD")
+    -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d "$CREATE_PAYLOAD")
 
 if [ "$HTTP_CODE" = "201" ]; then
-  echo "[polaris-init] Catalog created."
+    echo "[polaris-init] Catalog created."
 elif [ "$HTTP_CODE" = "409" ]; then
-  echo "[polaris-init] Catalog already exists. Skipping."
+    echo "[polaris-init] Catalog already exists. Skipping."
 else
-  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
-  cat /tmp/resp.json || true
-  exit 1
+    echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
+    cat /tmp/resp.json || true
+    exit 1
 fi
 
 echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
@@ -91,55 +92,54 @@
 # Create a catalog admin role grants
 echo "[polaris-init] Creating catalog admin role grants ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Create a data engineer role
 echo "[polaris-init] Creating data engineer role ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole":{"name":"data_engineer"}}')
+    -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole":{"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
-  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Connect the roles
 echo "[polaris-init] Connecting roles ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"catalogRole":{"name":"catalog_admin"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"catalogRole":{"name":"catalog_admin"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Give root the data engineer role
 echo "[polaris-init] Assigning data engineer role to root ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole": {"name":"data_engineer"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole": {"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 echo "[polaris-init] Permissions setup completed."
 echo "[polaris-init] Done."
-
--- docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh
--- docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh
--- docker/thirdparties/jindofs-helpers.sh.orig
+++ docker/thirdparties/jindofs-helpers.sh
@@ -32,15 +32,15 @@
     [ "${target_system}" = "Linux" ] || return 1
 
     case "${target_arch}" in
-        x86_64)
-            printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
-            ;;
-        aarch64)
-            printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
-            ;;
-        *)
-            return 1
-            ;;
+    x86_64)
+        printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
+        ;;
+    aarch64)
+        printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
+        ;;
+    *)
+        return 1
+        ;;
     esac
 }
 
@@ -51,10 +51,10 @@
     local pattern
     jindofs_all_platform_jar_patterns | while IFS= read -r pattern; do
         case "${jar_name}" in
-            ${pattern})
-                echo "match"
-                return
-                ;;
+        ${pattern})
+            echo "match"
+            return
+            ;;
         esac
     done
 }
@@ -97,8 +97,8 @@
     [ "${target_system}" = "Linux" ] || return 0
 
     case "${target_arch}" in
-        x86_64 | aarch64) ;;
-        *) return 0 ;;
+    x86_64 | aarch64) ;;
+    *) return 0 ;;
     esac
 
     jindofs_log_source_jars "${jindofs_dir}" "${target_dir}"
--- docker/thirdparties/run-thirdparties-docker.sh.orig
+++ docker/thirdparties/run-thirdparties-docker.sh
@@ -54,7 +54,7 @@
 STOP=0
 NEED_RESERVE_PORTS=0
 export NEED_LOAD_DATA=1
-export LOAD_PARALLEL=$(( $(getconf _NPROCESSORS_ONLN) / 2 ))
+export LOAD_PARALLEL=$(($(getconf _NPROCESSORS_ONLN) / 2))
 export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
 
 if ! OPTS="$(getopt \
@@ -204,7 +204,7 @@
         RUN_MARIADB=1
     elif [[ "${element}"x == "db2"x ]]; then
         RUN_DB2=1
-    elif [[ "${element}"x == "oceanbase"x ]];then
+    elif [[ "${element}"x == "oceanbase"x ]]; then
         RUN_OCEANBASE=1
     elif [[ "${element}"x == "lakesoul"x ]]; then
         RUN_LAKESOUL=1
@@ -567,7 +567,7 @@
     . "${ROOT}"/docker-compose/hive/hive-2x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-2x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-2x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
     sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
@@ -587,7 +587,7 @@
     . "${ROOT}"/docker-compose/hive/hive-3x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-3x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-3x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
     sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
@@ -606,12 +606,12 @@
     if [[ "${STOP}" -ne 1 ]]; then
         if [[ ! -d "${ICEBERG_DIR}/data" ]]; then
             echo "${ICEBERG_DIR}/data does not exist"
-            cd "${ICEBERG_DIR}" \
-            && rm -f iceberg_data*.zip \
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip \
-            && sudo unzip iceberg_data_spark40.zip \
-            && sudo mv iceberg_data data \
-            && sudo rm -rf iceberg_data_spark40.zip
+            cd "${ICEBERG_DIR}" &&
+                rm -f iceberg_data*.zip &&
+                wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip &&
+                sudo unzip iceberg_data_spark40.zip &&
+                sudo mv iceberg_data data &&
+                sudo rm -rf iceberg_data_spark40.zip
             cd -
         else
             echo "${ICEBERG_DIR}/data exist, continue !"
@@ -690,9 +690,9 @@
     for i in {1..2}; do
         . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
         envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
     done
     sudo chmod a+w /etc/hosts
     sudo sed -i "1i${IP_HOST} hadoop-master" /etc/hosts
@@ -758,12 +758,12 @@
     echo "RUN_ICEBERG_REST"
     # iceberg-rest with multiple cloud storage backends
     ICEBERG_REST_DIR=${ROOT}/docker-compose/iceberg-rest
-    
+
     # generate iceberg-rest.yaml
     export CONTAINER_UID=${CONTAINER_UID}
     . "${ROOT}"/docker-compose/iceberg-rest/iceberg-rest_settings.env
     envsubst <"${ICEBERG_REST_DIR}/docker-compose.yaml.tpl" >"${ICEBERG_REST_DIR}/docker-compose.yaml"
-    
+
     sudo docker compose -f "${ICEBERG_REST_DIR}/docker-compose.yaml" down
     if [[ "${STOP}" -ne 1 ]]; then
         # Start all three REST catalogs (S3, OSS, COS)
@@ -806,102 +806,102 @@
 declare -A pids
 
 if [[ "${RUN_ES}" -eq 1 ]]; then
-    start_es > start_es.log  2>&1 &
+    start_es >start_es.log 2>&1 &
     pids["es"]=$!
 fi
 
 if [[ "${RUN_MYSQL}" -eq 1 ]]; then
-    start_mysql > start_mysql.log 2>&1 &
+    start_mysql >start_mysql.log 2>&1 &
     pids["mysql"]=$!
 fi
 
 if [[ "${RUN_PG}" -eq 1 ]]; then
-    start_pg > start_pg.log 2>&1 &
+    start_pg >start_pg.log 2>&1 &
     pids["pg"]=$!
 fi
 
 if [[ "${RUN_ORACLE}" -eq 1 ]]; then
-    start_oracle > start_oracle.log 2>&1 &
+    start_oracle >start_oracle.log 2>&1 &
     pids["oracle"]=$!
 fi
 
 if [[ "${RUN_DB2}" -eq 1 ]]; then
-    start_db2 > start_db2.log 2>&1 &
+    start_db2 >start_db2.log 2>&1 &
     pids["db2"]=$!
 fi
 
 if [[ "${RUN_OCEANBASE}" -eq 1 ]]; then
-    start_oceanbase > start_oceanbase.log 2>&1 &
+    start_oceanbase >start_oceanbase.log 2>&1 &
     pids["oceanbase"]=$!
 fi
 
 if [[ "${RUN_SQLSERVER}" -eq 1 ]]; then
-    start_sqlserver > start_sqlserver.log 2>&1 &
+    start_sqlserver >start_sqlserver.log 2>&1 &
     pids["sqlserver"]=$!
 fi
 
 if [[ "${RUN_CLICKHOUSE}" -eq 1 ]]; then
-    start_clickhouse > start_clickhouse.log 2>&1 &
+    start_clickhouse >start_clickhouse.log 2>&1 &
     pids["clickhouse"]=$!
 fi
 
 if [[ "${RUN_KAFKA}" -eq 1 ]]; then
-    start_kafka > start_kafka.log 2>&1 &
+    start_kafka >start_kafka.log 2>&1 &
     pids["kafka"]=$!
 fi
 
 if [[ "${RUN_HIVE2}" -eq 1 ]]; then
-    start_hive2 > start_hive2.log 2>&1 &
+    start_hive2 >start_hive2.log 2>&1 &
     pids["hive2"]=$!
 fi
 
 if [[ "${RUN_HIVE3}" -eq 1 ]]; then
-    start_hive3 > start_hive3.log 2>&1 &
+    start_hive3 >start_hive3.log 2>&1 &
     pids["hive3"]=$!
 fi
 
 if [[ "${RUN_ICEBERG}" -eq 1 ]]; then
-    start_iceberg > start_iceberg.log 2>&1 &
+    start_iceberg >start_iceberg.log 2>&1 &
     pids["iceberg"]=$!
 fi
 
 if [[ "${RUN_ICEBERG_REST}" -eq 1 ]]; then
-    start_iceberg_rest > start_iceberg_rest.log 2>&1 &
+    start_iceberg_rest >start_iceberg_rest.log 2>&1 &
     pids["iceberg-rest"]=$!
 fi
 
 if [[ "${RUN_HUDI}" -eq 1 ]]; then
-    start_hudi > start_hudi.log 2>&1 &
+    start_hudi >start_hudi.log 2>&1 &
     pids["hudi"]=$!
 fi
 
 if [[ "${RUN_MARIADB}" -eq 1 ]]; then
-    start_mariadb > start_mariadb.log 2>&1 &
+    start_mariadb >start_mariadb.log 2>&1 &
     pids["mariadb"]=$!
 fi
 
 if [[ "${RUN_LAKESOUL}" -eq 1 ]]; then
-    start_lakesoul > start_lakesoule.log 2>&1 &
+    start_lakesoul >start_lakesoule.log 2>&1 &
     pids["lakesoul"]=$!
 fi
 
 if [[ "${RUN_MINIO}" -eq 1 ]]; then
-    start_minio > start_minio.log 2>&1 &
+    start_minio >start_minio.log 2>&1 &
     pids["minio"]=$!
 fi
 
 if [[ "${RUN_POLARIS}" -eq 1 ]]; then
-    start_polaris > start_polaris.log 2>&1 &
+    start_polaris >start_polaris.log 2>&1 &
     pids["polaris"]=$!
 fi
 
 if [[ "${RUN_KERBEROS}" -eq 1 ]]; then
-    start_kerberos > start_kerberos.log 2>&1 &
+    start_kerberos >start_kerberos.log 2>&1 &
     pids["kerberos"]=$!
 fi
 
 if [[ "${RUN_RANGER}" -eq 1 ]]; then
-    start_ranger > start_ranger.log 2>&1 &
+    start_ranger >start_ranger.log 2>&1 &
     pids["ranger"]=$!
 fi
 echo "waiting all dockers starting done"
--- docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh
@@ -39,7 +39,7 @@
     local kind="$2"
     local relative_path="$3"
 
-    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" || \
+    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" ||
         fail "expected selected: groups=${groups}, kind=${kind}, path=${relative_path}"
 }
 
--- docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh
@@ -38,17 +38,17 @@
 
 docker_container_state_cmd() {
     case "$1" in
-    doris-external--hadoop2-namenode|\
-    doris-external--hadoop2-datanode|\
-    doris-external--hive2-server|\
-    doris-external--hive2-metastore|\
-    doris-external--hive2-metastore-postgresql)
+    doris-external--hadoop2-namenode | \
+        doris-external--hadoop2-datanode | \
+        doris-external--hive2-server | \
+        doris-external--hive2-metastore | \
+        doris-external--hive2-metastore-postgresql)
         echo "running|healthy"
         ;;
-    doris-stuck--hadoop3-namenode|\
-    doris-stuck--hive3-server|\
-    doris-stuck--hive3-metastore|\
-    doris-stuck--hive3-metastore-postgresql)
+    doris-stuck--hadoop3-namenode | \
+        doris-stuck--hive3-server | \
+        doris-stuck--hive3-metastore | \
+        doris-stuck--hive3-metastore-postgresql)
         echo "running|healthy"
         ;;
     doris-stuck--hadoop3-datanode)
--- hooks/setup_worktree.sh.orig
+++ hooks/setup_worktree.sh
--- post-build.sh.orig
+++ post-build.sh
@@ -157,35 +157,35 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --fe)
-            PROCESS_FE=1
-            shift
-            ;;
-        --be)
-            PROCESS_BE=1
-            shift
-            ;;
-        --output)
-            OUTPUT_DIR="$2"
-            shift 2
-            ;;
-        --juicefs)
-            BUILD_JUICEFS="ON"
-            shift
-            ;;
-        --jindofs)
-            BUILD_JINDOFS="ON"
-            shift
-            ;;
-        --help | -h)
-            usage
-            exit 0
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage
-            exit 1
-            ;;
+    --fe)
+        PROCESS_FE=1
+        shift
+        ;;
+    --be)
+        PROCESS_BE=1
+        shift
+        ;;
+    --output)
+        OUTPUT_DIR="$2"
+        shift 2
+        ;;
+    --juicefs)
+        BUILD_JUICEFS="ON"
+        shift
+        ;;
+    --jindofs)
+        BUILD_JINDOFS="ON"
+        shift
+        ;;
+    --help | -h)
+        usage
+        exit 0
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage
+        exit 1
+        ;;
     esac
 done
 
--- regression-test/pipeline/external/external-stage-timer.sh.orig
+++ regression-test/pipeline/external/external-stage-timer.sh
@@ -50,20 +50,20 @@
     fi
 
     case "${current_command}" in
-        *"bash deploy_cluster.sh "*)
-            external_regression_stage_timer__enter_if_needed "启动 Doris"
-            ;;
-        *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
-            if [[ "${current_command}" != *"--stop"* ]]; then
-                external_regression_stage_timer__enter_if_needed "启动依赖"
-            fi
-            ;;
-        *"./run-regression-test.sh --teamcity --clean --run"*)
-            external_regression_stage_timer__enter_if_needed "执行 Case"
-            ;;
-        *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
-            external_regression_stage_timer__enter_if_needed "收尾归档"
-            ;;
+    *"bash deploy_cluster.sh "*)
+        external_regression_stage_timer__enter_if_needed "启动 Doris"
+        ;;
+    *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
+        if [[ "${current_command}" != *"--stop"* ]]; then
+            external_regression_stage_timer__enter_if_needed "启动依赖"
+        fi
+        ;;
+    *"./run-regression-test.sh --teamcity --clean --run"*)
+        external_regression_stage_timer__enter_if_needed "执行 Case"
+        ;;
+    *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
+        external_regression_stage_timer__enter_if_needed "收尾归档"
+        ;;
     esac
 }
 
--- run-be-ut.sh.orig
+++ run-be-ut.sh
@@ -480,7 +480,6 @@
 profraw=${DORIS_TEST_BINARY_DIR}/doris_be_test.profraw
 profdata=${DORIS_TEST_BINARY_DIR}/doris_be_test.profdata
 
-
 if [[ ${GDB} -ge 1 ]]; then
     gdb --args "${test}" "${FILTER}"
     exit
--- run-fs-env-test.sh.orig
+++ run-fs-env-test.sh
@@ -42,56 +42,88 @@
 # Parse --key=value arguments into env vars
 for arg in "$@"; do
     case "$arg" in
-        --s3-endpoint=*)  export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
-        --s3-region=*)    export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
-        --s3-bucket=*)    export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
-        --s3-ak=*)        export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
-        --s3-sk=*)        export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
-        --azure-account=*)    export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
-        --azure-key=*)        export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
-        --azure-container=*)  export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
-        --cos-endpoint=*)  export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
-        --cos-region=*)    export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
-        --cos-bucket=*)    export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
-        --cos-ak=*)        export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
-        --cos-sk=*)        export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
-        --oss-endpoint=*)  export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
-        --oss-region=*)    export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
-        --oss-bucket=*)    export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
-        --oss-ak=*)        export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
-        --oss-sk=*)        export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
-        --obs-endpoint=*)  export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
-        --obs-region=*)    export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
-        --obs-bucket=*)    export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
-        --obs-ak=*)        export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
-        --obs-sk=*)        export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
-        --hdfs-host=*)    export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
-        --hdfs-port=*)    export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
-        --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
-        --kdc-keytab=*)    export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
-        --broker-host=*)  export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
-        --broker-port=*)  export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
-        *) echo "Unknown option: $arg"; exit 1 ;;
+    --s3-endpoint=*) export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
+    --s3-region=*) export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
+    --s3-bucket=*) export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
+    --s3-ak=*) export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
+    --s3-sk=*) export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
+    --azure-account=*) export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
+    --azure-key=*) export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
+    --azure-container=*) export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
+    --cos-endpoint=*) export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
+    --cos-region=*) export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
+    --cos-bucket=*) export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
+    --cos-ak=*) export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
+    --cos-sk=*) export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
+    --oss-endpoint=*) export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
+    --oss-region=*) export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
+    --oss-bucket=*) export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
+    --oss-ak=*) export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
+    --oss-sk=*) export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
+    --obs-endpoint=*) export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
+    --obs-region=*) export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
+    --obs-bucket=*) export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
+    --obs-ak=*) export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
+    --obs-sk=*) export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
+    --hdfs-host=*) export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
+    --hdfs-port=*) export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
+    --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
+    --kdc-keytab=*) export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
+    --broker-host=*) export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
+    --broker-port=*) export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
+    *)
+        echo "Unknown option: $arg"
+        exit 1
+        ;;
     esac
 done
 
 # Map service name to JUnit 5 tag and Maven module(s)
 # NOTE: Do NOT use GROUPS as variable name — it is a bash builtin (user group IDs).
 case "$SERVICE" in
-    s3)        TAG="s3";       MODULES="fe-filesystem/fe-filesystem-s3" ;;
-    oss)       TAG="oss";      MODULES="fe-filesystem/fe-filesystem-oss" ;;
-    cos)       TAG="cos";      MODULES="fe-filesystem/fe-filesystem-cos" ;;
-    obs)       TAG="obs";      MODULES="fe-filesystem/fe-filesystem-obs" ;;
-    azure)     TAG="azure";    MODULES="fe-filesystem/fe-filesystem-azure" ;;
-    hdfs)      TAG="hdfs";     MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    kerberos)  TAG="kerberos"; MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    broker)    TAG="broker";   MODULES="fe-filesystem/fe-filesystem-broker" ;;
-    all)       TAG="environment"
-               MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-broker" ;;
-    *) echo "Unknown service: $SERVICE"; exit 1 ;;
+s3)
+    TAG="s3"
+    MODULES="fe-filesystem/fe-filesystem-s3"
+    ;;
+oss)
+    TAG="oss"
+    MODULES="fe-filesystem/fe-filesystem-oss"
+    ;;
+cos)
+    TAG="cos"
+    MODULES="fe-filesystem/fe-filesystem-cos"
+    ;;
+obs)
+    TAG="obs"
+    MODULES="fe-filesystem/fe-filesystem-obs"
+    ;;
+azure)
+    TAG="azure"
+    MODULES="fe-filesystem/fe-filesystem-azure"
+    ;;
+hdfs)
+    TAG="hdfs"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+kerberos)
+    TAG="kerberos"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+broker)
+    TAG="broker"
+    MODULES="fe-filesystem/fe-filesystem-broker"
+    ;;
+all)
+    TAG="environment"
+    MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-broker"
+    ;;
+*)
+    echo "Unknown service: $SERVICE"
+    exit 1
+    ;;
 esac
 
 cd "${ROOT}/fe"
--- run-regression-test.sh.orig
+++ run-regression-test.sh
@@ -180,7 +180,7 @@
         local cmd="$1"
         local max_attempts=3
         local attempt=1
-        
+
         while [[ ${attempt} -le ${max_attempts} ]]; do
             echo "Attempt ${attempt}/${max_attempts}: ${cmd}"
             if eval "${cmd}"; then
@@ -189,56 +189,71 @@
             else
                 echo "Command failed on attempt ${attempt}"
                 if [[ ${attempt} -lt ${max_attempts} ]]; then
-                    sleep $((attempt * 5))  # Linear backoff
+                    sleep $((attempt * 5)) # Linear backoff
                 fi
                 ((attempt++))
             fi
         done
-        
+
         echo "Command failed after ${max_attempts} attempts"
         return 1
     }
 
     # Navigate to framework directory and build with retry
-    cd "${DORIS_HOME}/regression-test/framework" || { echo "Failed to change directory"; exit 1; }
-    
+    cd "${DORIS_HOME}/regression-test/framework" || {
+        echo "Failed to change directory"
+        exit 1
+    }
+
     # First try to download dependencies only
     echo "Downloading dependencies..."
-    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || { echo "Failed to create temporary file for dependency output"; exit 1; }
+    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || {
+        echo "Failed to create temporary file for dependency output"
+        exit 1
+    }
     execute_maven_with_retry "${MVN_CMD} dependency:resolve -B -DskipTests=true -Dmdep.prependGroupId=true -DoutputFile=${dep_output_file}" || {
         echo "Failed to download dependencies"
         exit 1
     }
-    
+
     # Then package with retry
     echo "Building package..."
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build package"
         exit 1
     }
-    
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
 
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
+
     mkdir -p "${OUTPUT_DIR}"/{lib,log}
     cp -r "${REGRESSION_TEST_BUILD_DIR}"/regression-test-*.jar "${OUTPUT_DIR}/lib"
 
     echo "===== BUILD JAVA_UDF_SRC TO GENERATE JAR ====="
     mkdir -p "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars
-    cd "${DORIS_HOME}"/regression-test/java-udf-src || { echo "Failed to change directory to java-udf-src"; exit 1; }
-    
+    cd "${DORIS_HOME}"/regression-test/java-udf-src || {
+        echo "Failed to change directory to java-udf-src"
+        exit 1
+    }
+
     # Build UDF with retry
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build UDF package"
         exit 1
     }
-    
+
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars/
     # be and fe dir is compiled output
     mkdir -p "${DORIS_HOME}"/output/fe/custom_lib/
     mkdir -p "${DORIS_HOME}"/output/be/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/fe/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/be/custom_lib/
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
 fi
 
 # check java home
@@ -249,8 +264,8 @@
 
 # check java version
 export JAVA="${JAVA_HOME}/bin/java"
-JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 \
-    | awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
+JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 |
+    awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
 JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION%%.*}"
 if [[ "${JAVA_SPEC_VERSION}" == 1.* ]]; then
     JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION#1.}"
@@ -258,8 +273,8 @@
 fi
 
 # Arrow Flight SQL JDBC needs java.nio opened when the regression framework runs on JDK 17+.
-if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] \
-    && [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
+if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] &&
+    [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
     JAVA_OPTS="${JAVA_OPTS:+${JAVA_OPTS} }--add-opens=java.base/java.nio=ALL-UNNAMED"
 fi
 
@@ -276,12 +291,12 @@
         SKIP_NEXT=0
         continue
     fi
-    
+
     if [[ "${arg}" == "-f" ]] || [[ "${arg}" == "--file" ]]; then
         SKIP_NEXT=1
         continue
     fi
-    
+
     NEW_ARGS+=("${arg}")
 done
 
@@ -290,7 +305,7 @@
     # Extract directory (parent path)
     # e.g., "regression-test/suites/shape_check/tpch_sf1000/shape/q1.groovy" -> "regression-test/suites/shape_check/tpch_sf1000/shape"
     FILE_DIR=$(dirname "${FILE_PATH}")
-    
+
     # Extract suite name (filename without .groovy or .sql extension)
     # e.g., "q1.groovy" -> "q1" or "q01.sql" -> "q01"
     FILE_NAME=$(basename "${FILE_PATH}")
@@ -298,9 +313,9 @@
     SUITE_NAME="${FILE_NAME%.groovy}"
     # Remove .sql extension if exists
     SUITE_NAME="${SUITE_NAME%.sql}"
-    
+
     echo "Converted -f ${FILE_PATH} to -d ${FILE_DIR} -s ${SUITE_NAME}"
-    
+
     # Add -d and -s to arguments
     NEW_ARGS+=("-d" "${FILE_DIR}" "-s" "${SUITE_NAME}")
 fi
--- thirdparty/build-thirdparty.sh.orig
+++ thirdparty/build-thirdparty.sh
@@ -520,7 +520,7 @@
 
     rm -rf CMakeCache.txt CMakeFiles/
     "${CMAKE_CMD}" ../ -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-      -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
     # -DCMAKE_CXX_FLAGS="$warning_uninitialized"
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
@@ -1307,7 +1307,7 @@
     rm -rf CMakeCache.txt CMakeFiles/
 
     "${CMAKE_CMD}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-     -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+        -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
     "${BUILD_SYSTEM}" -j"${PARALLEL}"
     "${BUILD_SYSTEM}" install
 }
@@ -1383,10 +1383,10 @@
 
     # -Wno-elaborated-enum-base to make C++20 on MacOS happy
     "${CMAKE_CMD}" -G "${GENERATOR}" \
-    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
-    -DBUILD_EXAMPLES=OFF \
-    -DBUILD_TOOLS=OFF \
-    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
+        -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
+        -DBUILD_EXAMPLES=OFF \
+        -DBUILD_TOOLS=OFF \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}" install
 }
 
@@ -1892,7 +1892,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     MACHINE_TYPE="$(uname -m)"
     if [[ "${MACHINE_TYPE}" == "aarch64" || "${MACHINE_TYPE}" == 'arm64' ]]; then
         CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crc" NEON64_CFLAGS=" "
@@ -1922,10 +1922,10 @@
 
         # Add -ldl for clang compatibility (libcrypto.a requires dlopen/dlsym/dlclose/dlerror)
         "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-        -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
-        -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
-        -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
-        -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+            -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
+            -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
+            -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
+            -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
         "${BUILD_SYSTEM}" -j "${PARALLEL}"
         "${BUILD_SYSTEM}" install
     fi
@@ -1941,7 +1941,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
@@ -1996,7 +1996,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
 
@@ -2020,7 +2020,7 @@
     fi
 
     CXXFLAGS="-Wno-nontrivial-memcall" \
-    "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
+        "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
         -G "${GENERATOR}" \
         -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
         -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
@@ -2180,105 +2180,105 @@
 
     # Map package name to the uppercase *_SOURCE variable name
     case "${pkg}" in
-        libevent)        src_var="LIBEVENT_SOURCE" ;;
-        openssl)         src_var="OPENSSL_SOURCE" ;;
-        thrift)          src_var="THRIFT_SOURCE" ;;
-        protobuf)        src_var="PROTOBUF_SOURCE" ;;
-        gflags)          src_var="GFLAGS_SOURCE" ;;
-        glog)            src_var="GLOG_SOURCE" ;;
-        gtest)           src_var="GTEST_SOURCE" ;;
-        rapidjson)       src_var="RAPIDJSON_SOURCE" ;;
-        snappy)          src_var="SNAPPY_SOURCE" ;;
-        gperftools)      src_var="GPERFTOOLS_SOURCE" ;;
-        zlib)            src_var="ZLIB_SOURCE" ;;
-        crc32c)          src_var="CRC32C_SOURCE" ;;
-        lz4)             src_var="LZ4_SOURCE" ;;
-        bzip)            src_var="BZIP_SOURCE" ;;
-        lzo2)            src_var="LZO2_SOURCE" ;;
-        zstd)            src_var="ZSTD_SOURCE" ;;
-        #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
-        abseil)          src_var="ABSEIL_SOURCE" ;;
-        curl)            src_var="CURL_SOURCE" ;;
-        re2)             src_var="RE2_SOURCE" ;;
-        hyperscan)
-            # hyperscan also builds ragel, clean both
-            if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
-                echo "Cleaning up source: ${RAGEL_SOURCE}"
-                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+    libevent) src_var="LIBEVENT_SOURCE" ;;
+    openssl) src_var="OPENSSL_SOURCE" ;;
+    thrift) src_var="THRIFT_SOURCE" ;;
+    protobuf) src_var="PROTOBUF_SOURCE" ;;
+    gflags) src_var="GFLAGS_SOURCE" ;;
+    glog) src_var="GLOG_SOURCE" ;;
+    gtest) src_var="GTEST_SOURCE" ;;
+    rapidjson) src_var="RAPIDJSON_SOURCE" ;;
+    snappy) src_var="SNAPPY_SOURCE" ;;
+    gperftools) src_var="GPERFTOOLS_SOURCE" ;;
+    zlib) src_var="ZLIB_SOURCE" ;;
+    crc32c) src_var="CRC32C_SOURCE" ;;
+    lz4) src_var="LZ4_SOURCE" ;;
+    bzip) src_var="BZIP_SOURCE" ;;
+    lzo2) src_var="LZO2_SOURCE" ;;
+    zstd) src_var="ZSTD_SOURCE" ;;
+    #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
+    abseil) src_var="ABSEIL_SOURCE" ;;
+    curl) src_var="CURL_SOURCE" ;;
+    re2) src_var="RE2_SOURCE" ;;
+    hyperscan)
+        # hyperscan also builds ragel, clean both
+        if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
+            echo "Cleaning up source: ${RAGEL_SOURCE}"
+            rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+        fi
+        src_var="HYPERSCAN_SOURCE"
+        ;;
+    mysql) src_var="MYSQL_SOURCE" ;;
+    odbc) src_var="ODBC_SOURCE" ;;
+    leveldb) src_var="LEVELDB_SOURCE" ;;
+    brpc) src_var="BRPC_SOURCE" ;;
+    rocksdb) src_var="ROCKSDB_SOURCE" ;;
+    cyrus_sasl) src_var="CYRUS_SASL_SOURCE" ;;
+    librdkafka) src_var="LIBRDKAFKA_SOURCE" ;;
+    flatbuffers) src_var="FLATBUFFERS_SOURCE" ;;
+    arrow) src_var="ARROW_SOURCE" ;;
+    brotli) src_var="BROTLI_SOURCE" ;;
+    cares) src_var="CARES_SOURCE" ;;
+    grpc) src_var="GRPC_SOURCE" ;;
+    s2) src_var="S2_SOURCE" ;;
+    bitshuffle) src_var="BITSHUFFLE_SOURCE" ;;
+    croaringbitmap) src_var="CROARINGBITMAP_SOURCE" ;;
+    fmt) src_var="FMT_SOURCE" ;;
+    parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
+    orc) src_var="ORC_SOURCE" ;;
+    cctz) src_var="CCTZ_SOURCE" ;;
+    jemalloc_doris) src_var="JEMALLOC_DORIS_SOURCE" ;;
+    libunwind) src_var="LIBUNWIND_SOURCE" ;;
+    benchmark) src_var="BENCHMARK_SOURCE" ;;
+    simdjson) src_var="SIMDJSON_SOURCE" ;;
+    nlohmann_json) src_var="NLOHMANN_JSON_SOURCE" ;;
+    libbacktrace) src_var="LIBBACKTRACE_SOURCE" ;;
+    sse2neon) src_var="SSE2NEON_SOURCE" ;;
+    xxhash) src_var="XXHASH_SOURCE" ;;
+    concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
+    fast_float) src_var="FAST_FLOAT_SOURCE" ;;
+    hadoop_libs) src_var="HADOOP_LIBS_SOURCE" ;;
+    hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
+    avx2neon) src_var="AVX2NEON_SOURCE" ;;
+    libdeflate) src_var="LIBDEFLATE_SOURCE" ;;
+    streamvbyte) src_var="STREAMVBYTE_SOURCE" ;;
+    ali_sdk)
+        # ali_sdk internally builds jsoncpp and libuuid, clean all three
+        for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
+            dep_dir="${!dep_var}"
+            if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
+                echo "Cleaning up source: ${dep_dir}"
+                rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
             fi
-            src_var="HYPERSCAN_SOURCE"
-            ;;
-        mysql)           src_var="MYSQL_SOURCE" ;;
-        odbc)            src_var="ODBC_SOURCE" ;;
-        leveldb)         src_var="LEVELDB_SOURCE" ;;
-        brpc)            src_var="BRPC_SOURCE" ;;
-        rocksdb)         src_var="ROCKSDB_SOURCE" ;;
-        cyrus_sasl)      src_var="CYRUS_SASL_SOURCE" ;;
-        librdkafka)      src_var="LIBRDKAFKA_SOURCE" ;;
-        flatbuffers)     src_var="FLATBUFFERS_SOURCE" ;;
-        arrow)           src_var="ARROW_SOURCE" ;;
-        brotli)          src_var="BROTLI_SOURCE" ;;
-        cares)           src_var="CARES_SOURCE" ;;
-        grpc)            src_var="GRPC_SOURCE" ;;
-        s2)              src_var="S2_SOURCE" ;;
-        bitshuffle)      src_var="BITSHUFFLE_SOURCE" ;;
-        croaringbitmap)  src_var="CROARINGBITMAP_SOURCE" ;;
-        fmt)             src_var="FMT_SOURCE" ;;
-        parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
-        orc)             src_var="ORC_SOURCE" ;;
-        cctz)            src_var="CCTZ_SOURCE" ;;
-        jemalloc_doris)  src_var="JEMALLOC_DORIS_SOURCE" ;;
-        libunwind)       src_var="LIBUNWIND_SOURCE" ;;
-        benchmark)       src_var="BENCHMARK_SOURCE" ;;
-        simdjson)        src_var="SIMDJSON_SOURCE" ;;
-        nlohmann_json)   src_var="NLOHMANN_JSON_SOURCE" ;;
-        libbacktrace)    src_var="LIBBACKTRACE_SOURCE" ;;
-        sse2neon)        src_var="SSE2NEON_SOURCE" ;;
-        xxhash)          src_var="XXHASH_SOURCE" ;;
-        concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
-        fast_float)      src_var="FAST_FLOAT_SOURCE" ;;
-        hadoop_libs)     src_var="HADOOP_LIBS_SOURCE" ;;
-        hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
-        avx2neon)        src_var="AVX2NEON_SOURCE" ;;
-        libdeflate)      src_var="LIBDEFLATE_SOURCE" ;;
-        streamvbyte)     src_var="STREAMVBYTE_SOURCE" ;;
-        ali_sdk)
-            # ali_sdk internally builds jsoncpp and libuuid, clean all three
-            for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
-                dep_dir="${!dep_var}"
-                if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
-                    echo "Cleaning up source: ${dep_dir}"
-                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
-                fi
-            done
-            return
-            ;;
-        base64)          src_var="BASE64_SOURCE" ;;
-        azure)           src_var="AZURE_SOURCE" ;;
-        dragonbox)       src_var="DRAGONBOX_SOURCE" ;;
-        icu)             src_var="ICU_SOURCE" ;;
-        jindofs)         src_var="JINDOFS_SOURCE" ;;
-        juicefs)         src_var="JUICEFS_SOURCE" ;;
-        pugixml)         src_var="PUGIXML_SOURCE" ;;
-        paimon_cpp)      src_var="PAIMON_CPP_SOURCE" ;;
-        aws_sdk)         src_var="AWS_SDK_SOURCE" ;;
-        lzma)            src_var="LZMA_SOURCE" ;;
-        xml2)            src_var="XML2_SOURCE" ;;
-        idn)             src_var="IDN_SOURCE" ;;
-        gsasl)           src_var="GSASL_SOURCE" ;;
-        krb5)            src_var="KRB5_SOURCE" ;;
-        hdfs3)           src_var="HDFS3_SOURCE" ;;
-        libdivide)       src_var="LIBDIVIDE_SOURCE" ;;
-        binutils)        src_var="BINUTILS_SOURCE" ;;
-        gettext)         src_var="GETTEXT_SOURCE" ;;
-        # Header-only files, skip cleanup
-        pdqsort|timsort|tsan_header|js_and_css)
-            return
-            ;;
-        *)
-            echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
-            return
-            ;;
+        done
+        return
+        ;;
+    base64) src_var="BASE64_SOURCE" ;;
+    azure) src_var="AZURE_SOURCE" ;;
+    dragonbox) src_var="DRAGONBOX_SOURCE" ;;
+    icu) src_var="ICU_SOURCE" ;;
+    jindofs) src_var="JINDOFS_SOURCE" ;;
+    juicefs) src_var="JUICEFS_SOURCE" ;;
+    pugixml) src_var="PUGIXML_SOURCE" ;;
+    paimon_cpp) src_var="PAIMON_CPP_SOURCE" ;;
+    aws_sdk) src_var="AWS_SDK_SOURCE" ;;
+    lzma) src_var="LZMA_SOURCE" ;;
+    xml2) src_var="XML2_SOURCE" ;;
+    idn) src_var="IDN_SOURCE" ;;
+    gsasl) src_var="GSASL_SOURCE" ;;
+    krb5) src_var="KRB5_SOURCE" ;;
+    hdfs3) src_var="HDFS3_SOURCE" ;;
+    libdivide) src_var="LIBDIVIDE_SOURCE" ;;
+    binutils) src_var="BINUTILS_SOURCE" ;;
+    gettext) src_var="GETTEXT_SOURCE" ;;
+    # Header-only files, skip cleanup
+    pdqsort | timsort | tsan_header | js_and_css)
+        return
+        ;;
+    *)
+        echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
+        return
+        ;;
     esac
 
     src_dir="${!src_var}"
--- thirdparty/download-prebuild-thirdparty.sh.orig
+++ thirdparty/download-prebuild-thirdparty.sh
@@ -28,8 +28,8 @@
 VERSION="$1"
 
 if [ -z "$VERSION" ]; then
-  echo "Usage: sh download-prebuild-thirdparty.sh <version>"
-  exit 1
+    echo "Usage: sh download-prebuild-thirdparty.sh <version>"
+    exit 1
 fi
 
 # ----------------------------
@@ -39,13 +39,13 @@
 ARCH="$(uname -m)"
 
 case "$OS" in
-  Darwin)
+Darwin)
     PLATFORM="darwin"
     ;;
-  Linux)
+Linux)
     PLATFORM="linux"
     ;;
-  *)
+*)
     echo "Unsupported OS: $OS"
     exit 1
     ;;
@@ -55,13 +55,13 @@
 # Detect ARCH
 # ----------------------------
 case "$ARCH" in
-  x86_64|amd64)
+x86_64 | amd64)
     ARCH="x86_64"
     ;;
-  arm64|aarch64)
+arm64 | aarch64)
     ARCH="arm64"
     ;;
-  *)
+*)
     echo "Unsupported architecture: $ARCH"
     exit 1
     ;;
@@ -71,19 +71,19 @@
 # Resolve base release tag
 # ----------------------------
 case "$VERSION" in
-  master|4.0)
+master | 4.0)
     RELEASE_TAG="automation"
     ;;
-  3.1)
+3.1)
     RELEASE_TAG="automation-3.1"
     ;;
-  3.0)
+3.0)
     RELEASE_TAG="automation-3.0"
     ;;
-  2.1)
+2.1)
     RELEASE_TAG="automation-2.1"
     ;;
-  *)
+*)
     echo "Unsupported version: $VERSION"
     exit 1
     ;;
@@ -95,26 +95,26 @@
 FILENAME=""
 
 if [ "$PLATFORM" = "darwin" ]; then
-  FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
+    FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
 else
-  if [ "$ARCH" = "arm64" ]; then
-    case "$VERSION" in
-      master|4.0)
-        FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
-        ;;
-      3.1)
-        FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
-        ;;
-      3.0)
-        FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
-        ;;
-      2.1)
-        FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
-        ;;
-    esac
-  else
-    FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
-  fi
+    if [ "$ARCH" = "arm64" ]; then
+        case "$VERSION" in
+        master | 4.0)
+            FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
+            ;;
+        3.1)
+            FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
+            ;;
+        3.0)
+            FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
+            ;;
+        2.1)
+            FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
+            ;;
+        esac
+    else
+        FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
+    fi
 fi
 
 # ----------------------------
@@ -132,15 +132,14 @@
 # Download
 # ----------------------------
 if command -v curl >/dev/null 2>&1; then
-  curl -fL -o "$FILENAME" "$URL"
+    curl -fL -o "$FILENAME" "$URL"
 elif command -v wget >/dev/null 2>&1; then
-  wget -O "$FILENAME" "$URL"
+    wget -O "$FILENAME" "$URL"
 else
-  echo "Error: curl or wget is required"
-  exit 1
+    echo "Error: curl or wget is required"
+    exit 1
 fi
 
 echo
 echo "Download completed:"
 echo "  $(pwd)/$FILENAME"
-
--- thirdparty/download-thirdparty.sh.orig
+++ thirdparty/download-thirdparty.sh
@@ -272,7 +272,7 @@
     GIT_URL_VAR="${TP_ARCH}_GIT_URL"
     GIT_TAG_VAR="${TP_ARCH}_GIT_TAG"
     SOURCE_VAR="${TP_ARCH}_SOURCE"
-    
+
     GIT_URL="${!GIT_URL_VAR}"
     GIT_TAG="${!GIT_TAG_VAR}"
     SOURCE_DIR="${TP_SOURCE_DIR}/${!SOURCE_VAR}"
@@ -407,7 +407,7 @@
             patch -p1 <"${TP_PATCH_DIR}/rocksdb-5.14.2.patch"
             if [[ "$(uname -s)" == "Darwin" ]]; then
                 patch -p1 <"${TP_PATCH_DIR}/rocksdb-mac-compile-fix.patch"
-            fi 
+            fi
             touch "${PATCHED_MARK}"
         fi
         cd -
@@ -432,8 +432,8 @@
             # GetBufferedSize(), int96 NANO guard, and Thrift_VERSION empty fix.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-paimon.patch"
 
-            # apache-arrow-17.0.0-force-write-int96-timestamps.patch : 
-            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp. 
+            # apache-arrow-17.0.0-force-write-int96-timestamps.patch :
+            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-force-write-int96-timestamps.patch"
             touch "${PATCHED_MARK}"
         fi
@@ -714,9 +714,9 @@
     echo "Finished patching ${PAIMON_CPP_SOURCE}"
 fi
 
-if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]] ; then
+if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]]; then
     cd $TP_SOURCE_DIR/$CCTZ_SOURCE
-    if [[ ! -f "$PATCHED_MARK" ]] ; then
+    if [[ ! -f "$PATCHED_MARK" ]]; then
         for patch_file in "${TP_PATCH_DIR}"/cctz-*; do
             echo "patch ${patch_file}"
             patch -p1 --ignore-whitespace <"${patch_file}"
--- tools/coffeebench-tools/bin/run-queries.sh.orig
+++ tools/coffeebench-tools/bin/run-queries.sh
@@ -73,7 +73,6 @@
     usage
 fi
 
-
 check_prerequest() {
     local CMD=$1
     local NAME=$2
--- tools/export_mysql_rule_to_json.sh.orig
+++ tools/export_mysql_rule_to_json.sh
@@ -37,7 +37,8 @@
 echo ""
 
 # Query and convert to JSON (including long type timestamps)
-QUERY=$(cat <<SQL
+QUERY=$(
+    cat <<SQL
 SELECT
     JSON_ARRAYAGG(
         JSON_OBJECT(
@@ -70,14 +71,14 @@
 fi
 
 # Save to file
-echo "$JSON_DATA" > "$OUTPUT_FILE"
+echo "$JSON_DATA" >"$OUTPUT_FILE"
 
 # Format
-if command -v jq &> /dev/null; then
+if command -v jq &>/dev/null; then
     jq '.' "$OUTPUT_FILE" | awk '
         /^    {/ && NR > 3 {print ""}
         {print}
-    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
+    ' >"${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
 fi
 
 echo "Export completed: $OUTPUT_FILE"
--- tools/tpcds-tools/bin/run-tpcds-queries.sh.orig
+++ tools/tpcds-tools/bin/run-tpcds-queries.sh
@@ -142,15 +142,15 @@
 run_query() {
     local query_file=$1
     local query_name=$2
-    
+
     if [[ ! -f "${query_file}" ]]; then
         return
     fi
-    
+
     local cold=0
     local hot1=0
     local hot2=0
-    
+
     echo -ne "${query_name}\t" | tee -a result.csv
     start=$(date +%s%3N)
     if ! output=$(mysql -h"${FE_HOST}" -u"${USER}" -P"${FE_QUERY_PORT}" -D"${DB}" --comments \
@@ -201,7 +201,7 @@
 for i in ${query_array[@]}; do
     # Run main query file
     run_query "${TPCDS_QUERIES_DIR}/query${i}.sql" "query${i}"
-    
+
     # Run variant query file if exists
     run_query "${TPCDS_QUERIES_DIR}/query${i}_1.sql" "query${i}_1"
 done
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt  -w filename


@github-actions

Copy link
Copy Markdown

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck ' returned error 1 finding the following syntactical issues:

----------

In bin/flight_record_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In bin/profile_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In build-support/clang-format.sh line 43:
    export PATH=$(brew --prefix llvm@16)/bin:$PATH
           ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                                             ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    export PATH=$(brew --prefix llvm@16)/bin:${PATH}


In build-support/run-clang-tidy.sh line 187:
    if [[ -z "$f" ]]; then
              ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ -z "${f}" ]]; then


In build-support/run-clang-tidy.sh line 190:
    if ! echo "$f" | grep -qE "\.(${CPP_EXTENSIONS})$"; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if ! echo "${f}" | grep -qE "\.(${CPP_EXTENSIONS})$"; then


In build-support/run-clang-tidy.sh line 195:
        if [[ "$f" == *"${pattern}"* ]]; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${f}" == *"${pattern}"* ]]; then


In build-support/run-clang-tidy.sh line 200:
    if [[ "${excluded}" == "false" && -f "$f" ]]; then
                                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${excluded}" == "false" && -f "${f}" ]]; then


In build-support/run-clang-tidy.sh line 201:
        FILTERED_FILES+=("$f")
                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        FILTERED_FILES+=("${f}")


In build-support/run-clang-tidy.sh line 246:
        if [[ "$line" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${line}" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then


In build-support/run-clang-tidy.sh line 248:
        elif [[ "$line" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        elif [[ "${line}" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then


In build-support/run-clang-tidy.sh line 310:
    OUTPUT=$("${CLANG_TIDY}" "${TIDY_ARGS[@]}" "${f}" 2>&1) || TIDY_EXIT=$?
                                                               ^-------^ SC2034 (warning): TIDY_EXIT appears unused. Verify use (or export if used externally).


In build-support/run-clang-tidy.sh line 341:
                if [[ "$wline" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then
                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
                if [[ "${wline}" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then


In build.sh line 42:
if [[ "${DORIS_BUILD_PROFILE}" == "1" ]]; then
       ^--------------------^ SC2154 (warning): DORIS_BUILD_PROFILE is referenced but not assigned.


In build.sh line 264:
            BUILD_SPARK_DPP=1
            ^-------------^ SC2034 (warning): BUILD_SPARK_DPP appears unused. Verify use (or export if used externally).


In build.sh line 586:
FEAT+=($([[ -n "${WITH_TDE_DIR}" ]] && echo "+TDE" || echo "-TDE"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 587:
FEAT+=($([[ "${ENABLE_HDFS_STORAGE_VAULT:-OFF}" == "ON" ]] && echo "+HDFS_STORAGE_VAULT" || echo "-HDFS_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 588:
FEAT+=($([[ ${BUILD_UI} -eq 1 ]] && echo "+UI" || echo "-UI"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 589:
FEAT+=($([[ "${BUILD_AZURE}" == "ON" ]] && echo "+AZURE_BLOB,+AZURE_STORAGE_VAULT" || echo "-AZURE_BLOB,-AZURE_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 590:
FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 591:
FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 593:
export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
       ^----------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In build.sh line 757:
        "${CMAKE_USE_CCACHE}" \
         ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
         ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In build.sh line 759:
        -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                    ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In build.sh line 917:
        if [ ! -d "${fs_module_dir}" ]; then
           ^-------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
        if [[ ! -d "${fs_module_dir}" ]]; then


In build.sh line 929:
    if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                            ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ "${TARGET_SYSTEM}" = "Darwin" ]] || [[ "${TARGET_SYSTEM}" = "Linux" ]]; then


In build_profile.sh line 53:
        [[ -z "$f" || ! -f "$f" ]] && continue
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ -z "${f}" || ! -f "${f}" ]] && continue


In build_profile.sh line 56:
            mtime=$(stat -f %m "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -f %m "${f}")


In build_profile.sh line 58:
            mtime=$(stat -c %Y "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -c %Y "${f}")


In build_profile.sh line 60:
        [[ "$mtime" -gt "$last_time" ]] && echo "$f"
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${mtime}" -gt "${last_time}" ]] && echo "${f}"


In build_profile.sh line 124:
        [[ "$key" == "===FILES===" ]] && break
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == "===FILES===" ]] && break


In build_profile.sh line 125:
        [[ "$key" == _BP_* ]] || continue
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == _BP_* ]] || continue


In cloud/script/build_fdb.sh line 17:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In cloud/script/build_fdb.sh line 221:
if [ "$FDB_ENABLE_JAVA" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_JAVA is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_JAVA}" = "true" ]]; then


In cloud/script/build_fdb.sh line 224:
if [ "$FDB_ENABLE_GO" = "true" ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------^ SC2154 (warning): FDB_ENABLE_GO is referenced but not assigned.
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_GO}" = "true" ]]; then


In cloud/script/build_fdb.sh line 227:
if [ "$FDB_ENABLE_SWIFT" = "true" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2154 (warning): FDB_ENABLE_SWIFT is referenced but not assigned.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_SWIFT}" = "true" ]]; then


In cloud/script/build_fdb.sh line 230:
if [ "$FDB_ENABLE_RUBY" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_RUBY is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_RUBY}" = "true" ]]; then


In cloud/script/build_fdb.sh line 243:
if [ "$USE_JEMALLOC" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_JEMALLOC}" = true ]]; then


In cloud/script/build_fdb.sh line 249:
if [ "$USE_LTO" = true ]; then
   ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_LTO}" = true ]]; then


In cloud/script/build_fdb.sh line 255:
if [ "$FULL_DEBUG_SYMBOLS" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FULL_DEBUG_SYMBOLS}" = true ]]; then


In cloud/script/build_fdb.sh line 259:
if [ "$BUILD_DOCUMENTATION" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_DOCUMENTATION}" = true ]]; then


In cloud/script/build_fdb.sh line 263:
if [ "$WITH_ROCKSDB" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_ROCKSDB}" = true ]]; then


In cloud/script/build_fdb.sh line 267:
if [ "$WITH_GRPC" = true ]; then
   ^---------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_GRPC}" = true ]]; then


In cloud/script/build_fdb.sh line 272:
if [ "$BUILD_AWS_BACKUP" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AWS_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 276:
if [ "$BUILD_AZURE_BACKUP" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AZURE_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 281:
if [ "$BUILD_C_BINDING" = true ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_C_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 285:
if [ "$BUILD_PYTHON_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_PYTHON_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 289:
if [ "$BUILD_JAVA_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_JAVA_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 293:
if [ "$BUILD_GO_BINDING" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_GO_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 297:
if [ "$BUILD_SWIFT_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_SWIFT_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 301:
if [ "$BUILD_RUBY_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_RUBY_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 308:
echo "  Version:      $VERSION"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Version:      ${VERSION}"


In cloud/script/build_fdb.sh line 309:
echo "  Build Dir:    $BUILD_DIR"
                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Build Dir:    ${BUILD_DIR}"


In cloud/script/build_fdb.sh line 310:
echo "  Source Dir:   $SRC_DIR"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Source Dir:   ${SRC_DIR}"


In cloud/script/build_fdb.sh line 311:
echo "  Docker Image: $DOCKER_IMAGE"
                      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Docker Image: ${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 312:
echo "  Update Repo:  $UPDATE_REPO"
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Update Repo:  ${UPDATE_REPO}"


In cloud/script/build_fdb.sh line 316:
echo "  JEMALLOC:       $USE_JEMALLOC"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  JEMALLOC:       ${USE_JEMALLOC}"


In cloud/script/build_fdb.sh line 317:
echo "  LTO:            $USE_LTO"
                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  LTO:            ${USE_LTO}"


In cloud/script/build_fdb.sh line 318:
echo "  Debug Symbols:  $FULL_DEBUG_SYMBOLS"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Debug Symbols:  ${FULL_DEBUG_SYMBOLS}"


In cloud/script/build_fdb.sh line 319:
echo "  Documentation:  $BUILD_DOCUMENTATION"
                        ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Documentation:  ${BUILD_DOCUMENTATION}"


In cloud/script/build_fdb.sh line 320:
echo "  RocksDB:        $WITH_ROCKSDB"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  RocksDB:        ${WITH_ROCKSDB}"


In cloud/script/build_fdb.sh line 321:
echo "  gRPC:           $WITH_GRPC"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  gRPC:           ${WITH_GRPC}"


In cloud/script/build_fdb.sh line 322:
echo "  AWS Backup:     $BUILD_AWS_BACKUP"
                        ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  AWS Backup:     ${BUILD_AWS_BACKUP}"


In cloud/script/build_fdb.sh line 323:
echo "  Azure Backup:   $BUILD_AZURE_BACKUP"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Azure Backup:   ${BUILD_AZURE_BACKUP}"


In cloud/script/build_fdb.sh line 327:
echo "  C:      $BUILD_C_BINDING"
                ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  C:      ${BUILD_C_BINDING}"


In cloud/script/build_fdb.sh line 328:
echo "  Python: $BUILD_PYTHON_BINDING"
                ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Python: ${BUILD_PYTHON_BINDING}"


In cloud/script/build_fdb.sh line 329:
echo "  Java:   $BUILD_JAVA_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Java:   ${BUILD_JAVA_BINDING}"


In cloud/script/build_fdb.sh line 330:
echo "  Go:     $BUILD_GO_BINDING"
                ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Go:     ${BUILD_GO_BINDING}"


In cloud/script/build_fdb.sh line 331:
echo "  Swift:  $BUILD_SWIFT_BINDING"
                ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Swift:  ${BUILD_SWIFT_BINDING}"


In cloud/script/build_fdb.sh line 332:
echo "  Ruby:   $BUILD_RUBY_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Ruby:   ${BUILD_RUBY_BINDING}"


In cloud/script/build_fdb.sh line 336:
echo "$CMAKE_OPTIONS" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${CMAKE_OPTIONS}" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'


In cloud/script/build_fdb.sh line 341:
docker pull "$DOCKER_IMAGE"
             ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
docker pull "${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 344:
if [ -d "$SRC_DIR" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -d "${SRC_DIR}" ]]; then


In cloud/script/build_fdb.sh line 346:
    if [ "$UPDATE_REPO" = true ]; then
       ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${UPDATE_REPO}" = true ]]; then


In cloud/script/build_fdb.sh line 348:
        cd "$SRC_DIR"
            ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 357:
    git clone "$REPO_URL" "$SRC_DIR"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    git clone "${REPO_URL}" "${SRC_DIR}"


In cloud/script/build_fdb.sh line 361:
echo -e "${YELLOW}Checking out version: $VERSION${NC}"
                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo -e "${YELLOW}Checking out version: ${VERSION}${NC}"


In cloud/script/build_fdb.sh line 362:
cd "$SRC_DIR"
    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 363:
git checkout "$VERSION"
              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
git checkout "${VERSION}"


In cloud/script/build_fdb.sh line 367:
mkdir -p "$BUILD_DIR"
          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
mkdir -p "${BUILD_DIR}"


In cloud/script/build_fdb.sh line 372:
    -v "$(pwd)/$SRC_DIR:/foundationdb/src:ro" \
               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${SRC_DIR}:/foundationdb/src:ro" \


In cloud/script/build_fdb.sh line 373:
    -v "$(pwd)/$BUILD_DIR:/foundationdb/build" \
               ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${BUILD_DIR}:/foundationdb/build" \


In cloud/script/build_fdb.sh line 374:
    "$DOCKER_IMAGE" \
     ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "${DOCKER_IMAGE}" \


In cloud/script/build_fdb.sh line 378:
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja $CMAKE_OPTIONS /foundationdb/src && \
                                                                                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja ${CMAKE_OPTIONS} /foundationdb/src && \


In cloud/script/build_fdb.sh line 384:
echo "Artifacts location: $(pwd)/$BUILD_DIR"
                                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Artifacts location: $(pwd)/${BUILD_DIR}"


In cloud/script/run_all_tests.sh line 175:
exit ${ret}
     ^----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
exit "${ret}"


In cloud/script/start.sh line 59:
  source "${custom_start}" 
         ^---------------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.


In docker/thirdparties/docker-compose/common/hive-configure.sh line 22:
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
                                                               ^-----------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean: 
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}


In docker/thirdparties/docker-compose/common/hive-configure.sh line 29:
  local entry="<property><name>$name</name><value>${value}</value></property>"
                               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local entry="<property><name>${name}</name><value>${value}</value></property>"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 30:
  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
        ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local escapedEntry=$(echo "${entry}" | sed 's/\//\\\//g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 31:
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
                                                        ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" "${path}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 42:
    echo "Configuring $module"
                      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Configuring ${module}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 43:
    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                                                                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix="${envPrefix}"); do 


In docker/thirdparties/docker-compose/common/hive-configure.sh line 44:
        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        name=$(echo "${c}" | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 47:
        echo " - Setting $name=$  "
                         ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo " - Setting ${name}=$  "


In docker/thirdparties/docker-compose/common/hive-configure.sh line 48:
        addProperty $path $name "$value"
                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        addProperty "${path}" "${name}" "${value}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 27:
    echo "" > "$output_file"
               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "" > "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 31:
        if [ -n "$type_value" ]; then
           ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ -n "${type_value}" ]]; then


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 32:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_type\": \"${type_value}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 34:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 36:
        echo "$line"  >> "$output_file"
              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "${line}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 38:
    done < "$data_file"
            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    done < "${data_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 79:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 80:
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 119:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 120:
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 126:
curl "http://${ES_7_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_7_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 172:
generate_bulk_request "composite_type_array" "_doc" "item_" "$array_data_file" "$bulk_request_file"
                                                             ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "_doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 173:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 182:
generate_bulk_request "test_keyword_array" "_doc" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                           ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "_doc" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 183:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 187:
curl "http://${ES_8_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_8_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 223:
generate_bulk_request "composite_type_array" "" "item_" "$array_data_file" "$bulk_request_file"
                                                         ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                            ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 224:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 233:
generate_bulk_request "test_keyword_array" "" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                       ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                  ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 234:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 21:
. /mnt/scripts/bootstrap/bootstrap-groups.sh
  ^-- SC1091 (info): Not following: /mnt/scripts/bootstrap/bootstrap-groups.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 27:
    [ -e "$file" ] || continue
    ^------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    [[ -e "${file}" ]] || continue


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 28:
    tar -xzvf "$file" -C "$AUX_LIB"
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    tar -xzvf "${file}" -C "${AUX_LIB}"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 53:
while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
        ^-- SC2091 (warning): Remove surrounding $() to avoid executing output (or use eval if intentional).


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 57:
if [[ ${NEED_LOAD_DATA} = "0" ]]; then
      ^---------------^ SC2154 (warning): NEED_LOAD_DATA is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 64:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 69:
    echo "Script: create_paimon_table.hql executed in $EXECUTION_TIME seconds"
                                                      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Script: create_paimon_table.hql executed in ${EXECUTION_TIME} seconds"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 88:
    printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                     ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                      ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 164:
    printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                                                            ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 28:
    relative_archive_path="${archive_path#${CUR_DIR}/}"
                                          ^--------^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns.

Did you mean: 
    relative_archive_path="${archive_path#"${CUR_DIR}"/}"


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 35:
    printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
                                                             ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                       ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 56:
        curl -O "https://${s3BucketName}.${s3Endpoint}/regression/datalake/pipeline_data/${remote_path}"
                         ^-------------^ SC2154 (warning): s3BucketName is referenced but not assigned.
                                         ^-----------^ SC2154 (warning): s3Endpoint is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 108:
cd ${CUR_DIR}/auxlib
   ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
cd "${CUR_DIR}"/auxlib


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 85:
METASTORE_HOST=$(echo "${HIVE_METASTORE_URIS}" | sed 's|thrift://||' | cut -d: -f1)
                       ^--------------------^ SC2154 (warning): HIVE_METASTORE_URIS is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 90:
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
while [[ "${RETRY_COUNT}" -lt "${MAX_RETRIES}" ]]; do


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 103:
    if [ $RETRY_COUNT -eq 0 ]; then
       ^--------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${RETRY_COUNT}" -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 111:
  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
     ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
  if [[ $((RETRY_COUNT % 10)) -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 117:
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${RETRY_COUNT}" -ge "${MAX_RETRIES}" ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 127:
    <value>${S3_ENDPOINT}</value>
           ^------------^ SC2154 (warning): S3_ENDPOINT is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 131:
    <value>${MINIO_ROOT_USER}</value>
           ^----------------^ SC2154 (warning): MINIO_ROOT_USER is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 135:
    <value>${MINIO_ROOT_PASSWORD}</value>
           ^--------------------^ SC2154 (warning): MINIO_ROOT_PASSWORD is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 165:
    <value>s3a://${HUDI_BUCKET}/warehouse</value>
                 ^------------^ SC2154 (warning): HUDI_BUCKET is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 171:
HUDI_BUNDLE_JAR_FILE=$(download_jar "hudi-spark3.5-bundle_2.12" "${HUDI_BUNDLE_VERSION}" "${HUDI_BUNDLE_URL}")
                                                                 ^--------------------^ SC2154 (warning): HUDI_BUNDLE_VERSION is referenced but not assigned.
                                                                                          ^----------------^ SC2154 (warning): HUDI_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 176:
HADOOP_AWS_JAR=$(download_jar "hadoop-aws" "${HADOOP_AWS_VERSION}" "${HADOOP_AWS_URL}")
                                            ^-------------------^ SC2154 (warning): HADOOP_AWS_VERSION is referenced but not assigned.
                                                                    ^---------------^ SC2154 (warning): HADOOP_AWS_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 181:
AWS_SDK_BUNDLE_JAR=$(download_jar "aws-java-sdk-bundle" "${AWS_SDK_BUNDLE_VERSION}" "${AWS_SDK_BUNDLE_URL}")
                                                         ^-----------------------^ SC2154 (warning): AWS_SDK_BUNDLE_VERSION is referenced but not assigned.
                                                                                     ^-------------------^ SC2154 (warning): AWS_SDK_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 185:
POSTGRESQL_JDBC_JAR=$(download_jar "postgresql" "${POSTGRESQL_JDBC_VERSION}" "${POSTGRESQL_JDBC_URL}")
                                                 ^------------------------^ SC2154 (warning): POSTGRESQL_JDBC_VERSION is referenced but not assigned.
                                                                              ^--------------------^ SC2154 (warning): POSTGRESQL_JDBC_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 209:
  ${SPARK_HOME}/bin/spark-sql \
  ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
  "${SPARK_HOME}"/bin/spark-sql \


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 229:
touch ${SUCCESS_FILE}
      ^-------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
touch "${SUCCESS_FILE}"


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 19:
source /usr/local/common/hive-configure.sh
       ^-- SC1091 (info): Not following: /usr/local/common/hive-configure.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 20:
source /usr/local/common/event-hook.sh
       ^-----------------------------^ SC1091 (info): Not following: /usr/local/common/event-hook.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 34:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 36:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 75:
if [ $i -eq 60 ]; then
   ^-----------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
     ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${i}" -eq 60 ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 82:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 84:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 91:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh line 34:
if [ "$FAILED" == "" ]; then
   ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FAILED}" == "" ]]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 27:
echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
                                                                ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Waiting for Polaris health check at http://${HOST}:${PORT}/q/health ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 28:
for i in $(seq 1 120); do
^-^ SC2034 (warning): i appears unused. Verify use (or export if used externally).


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 29:
  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if curl -sSf "http://${HOST}:8182/q/health" >/dev/null; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 38:
  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/catalog/v1/oauth/tokens" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 40:
  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "grant_type=client_credentials&client_id=${USER}&client_secret=${PASS}&scope=PRINCIPAL_ROLE:ALL")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 43:
TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
                     ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
TOKEN=$(printf "%s" "${TOKEN_JSON}" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 45:
if [ -z "$TOKEN" ]; then
         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ -z "${TOKEN}" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 46:
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
                                                                      ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: ${TOKEN_JSON}" >&2


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 50:
echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
                                       ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                            ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Creating catalog '${CATALOG}' with base '${BASE_LOCATION}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 53:
  "name": "$CATALOG",
           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  "name": "${CATALOG}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 56:
    "default-base-location": "$BASE_LOCATION",
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "default-base-location": "${BASE_LOCATION}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 66:
    "allowedLocations": ["$BASE_LOCATION"]
                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "allowedLocations": ["${BASE_LOCATION}"]


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 74:
  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/catalogs" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 75:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 77:
  -d "$CREATE_PAYLOAD")
      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "${CREATE_PAYLOAD}")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 79:
if [ "$HTTP_CODE" = "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" = "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 81:
elif [ "$HTTP_CODE" = "409" ]; then
        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
elif [ "${HTTP_CODE}" = "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 84:
  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
                                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Create catalog failed (HTTP ${HTTP_CODE}):"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 89:
echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Setting up permissions for catalog '${CATALOG}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 94:
  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/catalogs/${CATALOG}/catalog-roles/catalog_admin/grants" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 95:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 99:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 100:
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 107:
  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 108:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 112:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ] && [ "${HTTP_CODE}" != "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 113:
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
                                                                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 120:
  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principal-roles/data_engineer/catalog-roles/${CATALOG}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 121:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 125:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 126:
  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
                                                              ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to connect roles (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 133:
  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principals/root/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 134:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 138:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 139:
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
                                                                                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/ranger/ranger-admin/ranger-entrypoint.sh line 24:
cd $RANGER_HOME
   ^----------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.
   ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${RANGER_HOME}"


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 16:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 19:
if [ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^------------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.

Did you mean: 
if [[ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]]; then


In docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh line 15:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/jindofs-helpers.sh line 29:
    local target_system="$1"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 30:
    local target_arch="$2"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 50:
    local jar_name="$1"
    ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 51:
    local pattern
    ^-----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 53:
        case "${jar_name}" in
        ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In docker/thirdparties/jindofs-helpers.sh line 54:
            ${pattern})
            ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob.


In docker/thirdparties/jindofs-helpers.sh line 63:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 64:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 74:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 75:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 76:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 77:
    local count=0
    ^---------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 90:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 91:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 92:
    local target_system="$3"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 93:
    local target_arch="$4"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 94:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 95:
    local platform_jar_pattern
    ^------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/run-thirdparties-docker.sh line 58:
export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
       ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 135:
    echo ${COMPONENTS}
         ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    echo "${COMPONENTS}"


In docker/thirdparties/run-thirdparties-docker.sh line 167:
RUN_OCENABASE=0
^-----------^ SC2034 (warning): RUN_OCENABASE appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 538:
        local backup_dir=/home/work/pipline/backup_center
              ^--------^ SC2034 (warning): backup_dir appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 543:
            echo "docker exec "${container_id}" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"
                               ^-------------^ SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them.
                               ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
            echo "docker exec ""${container_id}"" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"


In docker/thirdparties/run-thirdparties-docker.sh line 571:
    sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 573:
        sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 591:
    sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 593:
        sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 629:
    . "${HUDI_DIR}"/hudi.env
      ^--------------------^ SC1091 (info): Not following: ./hudi.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 673:
        mv *.tbl ../lakesoul/test_files/tpch/data
           ^-- SC2035 (info): Use ./*glob* or -- *glob* so names with dashes won't become options.


In docker/thirdparties/run-thirdparties-docker.sh line 675:
        export TPCH_DATA=$(realpath lakesoul/test_files/tpch/data)
               ^-------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 691:
        . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
          ^-- SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.
                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        . "${ROOT}"/docker-compose/kerberos/kerberos"${i}"_settings.env


In docker/thirdparties/run-thirdparties-docker.sh line 692:
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
                                                                                                                       ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-"${i}".env


In docker/thirdparties/run-thirdparties-docker.sh line 693:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/my.cnf


In docker/thirdparties/run-thirdparties-docker.sh line 694:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf


In docker/thirdparties/run-thirdparties-docker.sh line 695:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf


In docker/thirdparties/run-thirdparties-docker.sh line 731:
    . "${POLARIS_DIR}/polaris_settings.env"
      ^-- SC1091 (info): Not following: ./polaris_settings.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 780:
if [[ "$NEED_LOAD_DATA" -eq 1 ]]; then
       ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${NEED_LOAD_DATA}" -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 786:
if [[ $need_prepare_hive_data -eq 1 ]]; then
      ^---------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ ${need_prepare_hive_data} -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 794:
    export HIVE_BOOTSTRAP_GROUPS="$(bootstrap_merge_groups "${prepare_hive_bootstrap_groups[@]}")"
           ^-------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 912:
    wait "${pids[$compose]}" || status=$?
                 ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    wait "${pids[${compose}]}" || status=$?


In docker/thirdparties/run-thirdparties-docker.sh line 913:
    if [ $status -ne 0 ] && [ $compose != "db2" ]; then
       ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                              ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${status}" -ne 0 ]] && [[ "${compose}" != "db2" ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 914:
        echo "docker $compose started failed with status $status"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "docker ${compose} started failed with status ${status}"


In docker/thirdparties/run-thirdparties-docker.sh line 916:
        cat start_${compose}.log || true
                  ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        cat start_"${compose}".log || true


In env.sh line 369:
    CMAKE_USE_CCACHE_C="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
    ^----------------^ SC2034 (warning): CMAKE_USE_CCACHE_C appears unused. Verify use (or export if used externally).


In hooks/setup_worktree.sh line 21:
cp "$ROOT_WORKSPACE_PATH/custom_env.sh" custom_env.sh
    ^------------------^ SC2154 (warning): ROOT_WORKSPACE_PATH is referenced but not assigned.
    ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp "${ROOT_WORKSPACE_PATH}/custom_env.sh" custom_env.sh


In hooks/setup_worktree.sh line 24:
cp -r "$ROOT_WORKSPACE_PATH/thirdparty/installed" thirdparty/
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -r "${ROOT_WORKSPACE_PATH}/thirdparty/installed" thirdparty/


In hooks/setup_worktree.sh line 27:
cp -f "$ROOT_WORKSPACE_PATH/build.sh" build.sh
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -f "${ROOT_WORKSPACE_PATH}/build.sh" build.sh


In post-build.sh line 196:
    if [[ "$(echo "${DISABLE_BUILD_JUICEFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JUICEFS is referenced but not assigned.


In post-build.sh line 203:
    if [[ "$(echo "${DISABLE_BUILD_JINDOFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JINDOFS is referenced but not assigned.


In regression-test/pipeline/cloud_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 67:
        echo "regressionAliyunStsRegion='${regressionAliyunStsRegion:-cn-hongkong}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 68:
        echo "regressionAliyunStsRoleArn='${regressionAliyunStsRoleArn:-}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 70:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 73:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 74:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 75:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh --stop; then echo; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 76:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c kafka; then echo; else echo "ERROR: start kafka docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                          ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                                     ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 77:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 78:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 79:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 87:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 89:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 93:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 94:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 97:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 98:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 99:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 100:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 101:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 102:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 104:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/common/doris-utils.sh line 1013:
    local fe_pid=$(pgrep -f "org.apache.doris.DorisFE")
          ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In regression-test/pipeline/common/doris-utils.sh line 1015:
    jstack $fe_pid >${DORIS_HOME}/fe/log/fe_stack.txt
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack ${fe_pid} >${DORIS_HOME}/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1016:
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof $fe_pid
                                                            ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof ${fe_pid}


In regression-test/pipeline/common/doris-utils.sh line 1018:
    jstack $fe_pid >"${DORIS_HOME}"/fe/log/fe_stack.txt
           ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack "${fe_pid}" >"${DORIS_HOME}"/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1019:
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof $fe_pid
                                                              ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                              ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof "${fe_pid}"


In regression-test/pipeline/common/stage-timer.sh line 59:
            "${STAGE_TIMER_STAGE_NAMES[$index]}" \
                                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_NAMES[${index}]}" \


In regression-test/pipeline/common/stage-timer.sh line 60:
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[$index]}")" \
                                                                        ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[${index}]}")" \


In regression-test/pipeline/common/stage-timer.sh line 61:
            "${STAGE_TIMER_STAGE_SECONDS[$index]}"
                                         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_SECONDS[${index}]}"


In regression-test/pipeline/external/external-stage-timer.sh line 21:
    return 1 2>/dev/null || exit 1
                            ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/external/external-stage-timer.sh line 52:
    case "${current_command}" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In regression-test/pipeline/external/external-stage-timer.sh line 78:
    local current_command="${1:-$BASH_COMMAND}"
                                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    local current_command="${1:-${BASH_COMMAND}}"


In regression-test/pipeline/vault_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 68:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 72:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 73:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 74:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio ||
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 75:
        bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 76:
        echo "INFO: start minio docker success"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 78:
        echo "ERROR: start minio docker twice failed" && return 1
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                         ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 82:
    docker_compose_hdfs_yaml='
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 116:
    if echo "${docker_compose_hdfs_yaml}" >docker-compose.yaml && docker-compose up -d; then echo; else echo "ERROR: start hdfs docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                  ^------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                             ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 117:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 118:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 119:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 127:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 129:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 133:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 134:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 137:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 138:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 139:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 140:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 141:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 142:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 144:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In run-be-ut.sh line 150:
    WITH_TDE_DIR        -- ${WITH_TDE_DIR}
                           ^-------------^ SC2154 (warning): WITH_TDE_DIR is referenced but not assigned.


In run-cloud-ut.sh line 199:
    -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In run-cloud-ut.sh line 204:
    "${CMAKE_USE_CCACHE}" \
     ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
     ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In run-fs-env-test.sh line 44:
    case "$arg" in
          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${arg}" in


In run-fs-env-test.sh line 74:
        *) echo "Unknown option: $arg"; exit 1 ;;
                                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        *) echo "Unknown option: ${arg}"; exit 1 ;;


In run-fs-env-test.sh line 80:
case "$SERVICE" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${SERVICE}" in


In run-fs-env-test.sh line 94:
    *) echo "Unknown service: $SERVICE"; exit 1 ;;
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    *) echo "Unknown service: ${SERVICE}"; exit 1 ;;


In run-fs-env-test.sh line 98:
echo "Running filesystem environment tests for: $TAG (modules: $MODULES)"
                                                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Running filesystem environment tests for: ${TAG} (modules: ${MODULES})"


In run-fs-env-test.sh line 101:
    -Dgroups="$TAG" \
              ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -Dgroups="${TAG}" \


In thirdparty/build-thirdparty.sh line 1386:
    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
                       ^--------------^ SC2154 (warning): CMAKE_CXX_FLAGS is referenced but not assigned.
                       ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base" \


In thirdparty/build-thirdparty.sh line 1977:
    cp -r ${TP_SOURCE_DIR}/${JINDOFS_SOURCE}/* "${TP_INSTALL_DIR}/jindofs_libs/"
          ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    cp -r "${TP_SOURCE_DIR}"/"${JINDOFS_SOURCE}"/* "${TP_INSTALL_DIR}/jindofs_libs/"


In thirdparty/build-thirdparty.sh line 2051:
    if [ -d "arrow_ep-install/lib" ]; then
       ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -d "arrow_ep-install/lib" ]]; then


In thirdparty/build-thirdparty.sh line 2059:
            if [ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]; then
               ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
            if [[ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]]; then


In thirdparty/build-thirdparty.sh line 2068:
    if [ -f "release/libroaring_bitmap.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libroaring_bitmap.a" ]]; then


In thirdparty/build-thirdparty.sh line 2073:
    if [ -f "release/libxxhash.a" ]; then
       ^--------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libxxhash.a" ]]; then


In thirdparty/build-thirdparty.sh line 2078:
    if [ -f "fmt_ep-install/lib/libfmt.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "fmt_ep-install/lib/libfmt.a" ]]; then


In thirdparty/build-thirdparty.sh line 2083:
    if [ -f "tbb_ep-install/lib/libtbb.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "tbb_ep-install/lib/libtbb.a" ]]; then


In thirdparty/build-thirdparty.sh line 2207:
                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
                       ^-- SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2251:
                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
                           ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2287:
        rm -rf "${TP_SOURCE_DIR}/${src_dir}"
               ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/download-prebuild-thirdparty.sh line 30:
if [ -z "$VERSION" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -z "${VERSION}" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 41:
case "$OS" in
      ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${OS}" in


In thirdparty/download-prebuild-thirdparty.sh line 49:
    echo "Unsupported OS: $OS"
                          ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported OS: ${OS}"


In thirdparty/download-prebuild-thirdparty.sh line 57:
case "$ARCH" in
      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${ARCH}" in


In thirdparty/download-prebuild-thirdparty.sh line 65:
    echo "Unsupported architecture: $ARCH"
                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported architecture: ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 73:
case "$VERSION" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 87:
    echo "Unsupported version: $VERSION"
                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported version: ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 97:
if [ "$PLATFORM" = "darwin" ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${PLATFORM}" = "darwin" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 100:
  if [ "$ARCH" = "arm64" ]; then
     ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if [[ "${ARCH}" = "arm64" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 101:
    case "$VERSION" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.
          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 125:
echo "Detected platform : $PLATFORM"
                          ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected platform : ${PLATFORM}"


In thirdparty/download-prebuild-thirdparty.sh line 126:
echo "Detected arch     : $ARCH"
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected arch     : ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 127:
echo "Version           : $VERSION"
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Version           : ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 128:
echo "Downloading       : $URL"
                          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Downloading       : ${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 135:
  curl -fL -o "$FILENAME" "$URL"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  curl -fL -o "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 137:
  wget -O "$FILENAME" "$URL"
           ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  wget -O "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 145:
echo "  $(pwd)/$FILENAME"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  $(pwd)/${FILENAME}"


In thirdparty/download-thirdparty.sh line 718:
    cd $TP_SOURCE_DIR/$CCTZ_SOURCE
       ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
       ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    cd "${TP_SOURCE_DIR}"/"${CCTZ_SOURCE}"


In thirdparty/download-thirdparty.sh line 719:
    if [[ ! -f "$PATCHED_MARK" ]] ; then
                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ ! -f "${PATCHED_MARK}" ]] ; then


In thirdparty/download-thirdparty.sh line 724:
        touch "$PATCHED_MARK"
               ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        touch "${PATCHED_MARK}"


In tools/export_mysql_rule_to_json.sh line 30:
echo "Database Host: $DB_HOST"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Host: ${DB_HOST}"


In tools/export_mysql_rule_to_json.sh line 31:
echo "Database User: $DB_USER"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database User: ${DB_USER}"


In tools/export_mysql_rule_to_json.sh line 32:
echo "Database Name: $DB_NAME"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Name: ${DB_NAME}"


In tools/export_mysql_rule_to_json.sh line 33:
echo "Password: $(if [ -n "$DB_PASS" ]; then echo "Set"; else echo "Not set"; fi)"
                     ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Password: $(if [[ -n "${DB_PASS}" ]]; then echo "Set"; else echo "Not set"; fi)"


In tools/export_mysql_rule_to_json.sh line 34:
echo "Table Name: $TABLE_NAME"
                  ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Table Name: ${TABLE_NAME}"


In tools/export_mysql_rule_to_json.sh line 35:
echo "Output File: $OUTPUT_FILE"
                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Output File: ${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 61:
if [ -n "$DB_PASS" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -n "${DB_PASS}" ]]; then


In tools/export_mysql_rule_to_json.sh line 62:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -N 2>/dev/null)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" -N 2>/dev/null)


In tools/export_mysql_rule_to_json.sh line 64:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER $DB_NAME -N)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" "${DB_NAME}" -N)


In tools/export_mysql_rule_to_json.sh line 68:
if [ "$JSON_DATA" = "NULL" ] || [ -z "$JSON_DATA" ]; then
   ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${JSON_DATA}" = "NULL" ]] || [[ -z "${JSON_DATA}" ]]; then


In tools/export_mysql_rule_to_json.sh line 73:
echo "$JSON_DATA" > "$OUTPUT_FILE"
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${JSON_DATA}" > "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 77:
    jq '.' "$OUTPUT_FILE" | awk '
            ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jq '.' "${OUTPUT_FILE}" | awk '


In tools/export_mysql_rule_to_json.sh line 80:
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
                                                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 83:
echo "Export completed: $OUTPUT_FILE"
                        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Export completed: ${OUTPUT_FILE}"


In tools/lzo/build.sh line 1:
# Licensed to the Apache Software Foundation (ASF) under one
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.


In tools/lzo/build.sh line 20:
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I${DORIS_THIRDPARTY}/installed/include -L${DORIS_THIRDPARTY}/installed/lib -llzo2 -std=c++17
                                             ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                     ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I"${DORIS_THIRDPARTY}"/installed/include -L"${DORIS_THIRDPARTY}"/installed/lib -llzo2 -std=c++17

For more information:
  https://www.shellcheck.net/wiki/SC1128 -- The shebang must be on the first ...
  https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
  https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt ' returned error 1 finding the following formatting issues:

----------
--- bin/start_be.sh.orig
+++ bin/start_be.sh
@@ -450,45 +450,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_fe.sh.orig
+++ bin/start_fe.sh
@@ -210,45 +210,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_file_cache_microbench.sh.orig
+++ bin/start_file_cache_microbench.sh
@@ -115,7 +115,6 @@
     exit 1
 fi
 
-
 JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:5000,dirty_decay_ms:5000,oversize_threshold:0,prof:true,lg_prof_interval:30,lg_prof_sample:19,prof_final:false,prof_active:true"
 JEMALLOC_PROF_PRFIX="jeprofile_doris_cloud"
 
--- build-support/clang-format.sh.orig
+++ build-support/clang-format.sh
@@ -36,7 +36,7 @@
         echo "Error: Homebrew is missing. Please install it first due to we use Homebrew to manage the tools which are needed to build the project."
         exit 1
     fi
-    if ! brew list llvm@16 > /dev/null 2>&1; then
+    if ! brew list llvm@16 >/dev/null 2>&1; then
         echo "Error: Please install llvm@16 firt due to we use it to format code."
         exit 1
     fi
--- build-support/run-clang-tidy.sh.orig
+++ build-support/run-clang-tidy.sh
@@ -86,36 +86,36 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --base)
-            BASE_REF="$2"
-            shift 2
-            ;;
-        --files)
+    --base)
+        BASE_REF="$2"
+        shift 2
+        ;;
+    --files)
+        shift
+        while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
+            SPECIFIC_FILES+=("$1")
             shift
-            while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
-                SPECIFIC_FILES+=("$1")
-                shift
-            done
-            ;;
-        --build-dir)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        --fix)
-            FIX_MODE="-fix"
-            shift
-            ;;
-        --full)
-            FULL_FILE_MODE=true
-            shift
-            ;;
-        -h|--help)
-            usage
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage 1
-            ;;
+        done
+        ;;
+    --build-dir)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    --fix)
+        FIX_MODE="-fix"
+        shift
+        ;;
+    --full)
+        FULL_FILE_MODE=true
+        shift
+        ;;
+    -h | --help)
+        usage
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage 1
+        ;;
     esac
 done
 
@@ -255,7 +255,7 @@
             # Append range to the file's entry (space-separated "start:end" pairs)
             CHANGED_LINES_MAP["${current_file}"]+="${start}:${end} "
         fi
-    done <<< "${diff_output}"
+    done <<<"${diff_output}"
 }
 
 # Check if a line number falls within any changed range for a file.
@@ -348,7 +348,7 @@
                         FILE_COUNT=$((FILE_COUNT + 1))
                     fi
                 fi
-            done <<< "$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
+            done <<<"$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
 
             if [[ ${FILE_COUNT} -gt 0 ]]; then
                 echo "${FILE_WARNINGS}"
--- build.sh.orig
+++ build.sh
@@ -275,11 +275,11 @@
         --be-cdc-client)
             BUILD_BE_CDC_CLIENT=1
             shift
-            ;;    
+            ;;
         --exclude-obs-dependencies)
             BUILD_OBS_DEPENDENCIES=0
             shift
-            ;; 
+            ;;
         --exclude-cos-dependencies)
             BUILD_COS_DEPENDENCIES=0
             shift
@@ -291,7 +291,7 @@
         --disable-dynamic-arch)
             ENABLE_DYNAMIC_ARCH='OFF'
             shift
-            ;;           
+            ;;
         --clean)
             CLEAN=1
             shift
@@ -340,7 +340,7 @@
         BUILD_META_TOOL='ON'
         BUILD_FILE_CACHE_MICROBENCH_TOOL='OFF'
         BUILD_INDEX_TOOL='ON'
-	    BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
+        BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
         BUILD_HIVE_UDF=1
         BUILD_BE_JAVA_EXTENSIONS=1
         BUILD_BE_CDC_CLIENT=1
@@ -590,7 +590,10 @@
 FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
 FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
 
-export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
+export DORIS_FEATURE_LIST=$(
+    IFS=','
+    echo "${FEAT[*]}"
+)
 echo "Feature List: ${DORIS_FEATURE_LIST}"
 
 # Clean and build generated code
@@ -838,8 +841,8 @@
         rm -f "${log_file}"
         return 0
     fi
-    if [[ "${thread_count}" != "${retry_thread_count}" ]] && \
-            grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
+    if [[ "${thread_count}" != "${retry_thread_count}" ]] &&
+        grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
         echo "FE Maven build hit parallel build issue (lock contention or reactor artifact race). Retrying with -T ${retry_thread_count}."
         mvn_cmd=("${mvn_cmd[@]:0:${#mvn_cmd[@]}-2}" -T "${retry_thread_count}")
         "${mvn_cmd[@]}"
@@ -927,12 +930,12 @@
     unset FS_PLUGIN_DIR fs_module fs_plugin_target fs_module_dir
 
     if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
-      mkdir -p "${DORIS_OUTPUT}/fe/arthas"
-      rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
-      unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
-      unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
-      rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
-      rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
+        mkdir -p "${DORIS_OUTPUT}/fe/arthas"
+        rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
+        unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
+        unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
+        rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
+        rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
     fi
 fi
 
@@ -1050,15 +1053,15 @@
         module_proj_jar="${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/${extensions_module}-project.jar"
         mkdir "${BE_JAVA_EXTENSIONS_DIR}"/"${extensions_module}"
         echo "Copy Be Extensions ${extensions_module} jar to ${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}"
-     if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
-          
+        if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
+
             BE_HADOOP_HDFS_DIR="${DORIS_OUTPUT}/be/lib/hadoop_hdfs/"
             echo "Copy Be Extensions hadoop deps jars to ${BE_HADOOP_HDFS_DIR}"
             rm -rf "${BE_HADOOP_HDFS_DIR}"
             mkdir "${BE_HADOOP_HDFS_DIR}"
             HADOOP_DEPS_JAR_DIR="${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}/target"
             echo "HADOOP_DEPS_JAR_DIR: ${HADOOP_DEPS_JAR_DIR}"
-            if  [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
+            if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
                 echo "WARN: lib directory missing (likely due to Maven cache). Regenerating..."
                 pushd "${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}"
                 "${MVN_CMD}" dependency:copy-dependencies -DskipTests -Dcheckstyle.skip=true
@@ -1083,7 +1086,7 @@
                 cp -r "${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/lib" "${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}/"
             fi
         fi
-    done        
+    done
 
     # Third-party filesystem jars (JuiceFS, JindoFS) are packaged by post-build.sh
     "${DORIS_HOME}/post-build.sh" --be --output "${DORIS_OUTPUT}"
--- build_profile.sh.orig
+++ build_profile.sh
@@ -58,7 +58,10 @@
             mtime=$(stat -c %Y "$f")
         fi
         [[ "$mtime" -gt "$last_time" ]] && echo "$f"
-    done < <(git diff --name-only 2>/dev/null; git ls-files --others --exclude-standard 2>/dev/null)
+    done < <(
+        git diff --name-only 2>/dev/null
+        git ls-files --others --exclude-standard 2>/dev/null
+    )
 }
 
 # Read last_build_time from log (0 for first build)
@@ -96,7 +99,7 @@
     files=$(collect_files "${last_time}")
 
     # Write state to temp file
-    cat > "${state_file}" <<EOF
+    cat >"${state_file}" <<EOF
 _BP_START=${start_time}
 _BP_USER=${user}
 _BP_DIR=${build_dir}
@@ -105,8 +108,8 @@
 _BP_ARGS=${build_args}
 EOF
     # Write files as separate lines after a marker
-    echo "===FILES==="  >> "${state_file}"
-    echo "${files}"     >> "${state_file}"
+    echo "===FILES===" >>"${state_file}"
+    echo "${files}" >>"${state_file}"
 }
 
 cmd_record() {
@@ -124,7 +127,7 @@
         [[ "$key" == "===FILES===" ]] && break
         [[ "$key" == _BP_* ]] || continue
         eval "${key}='${value}'"
-    done < "${state_file}"
+    done <"${state_file}"
 
     # Read files (everything after ===FILES=== marker)
     local files
@@ -136,17 +139,17 @@
     load_avg=$(uptime | grep -oE 'load average[s]?: .*' | sed 's/load average[s]\{0,1\}: //')
 
     # Write record via python3 (env vars + stdin for safety)
-    echo "${files}" | \
-    _BP_USER="${_BP_USER}" \
-    _BP_DIR="${_BP_DIR}" \
-    _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
-    _BP_COMMIT="${_BP_COMMIT}" \
-    _BP_ARGS="${_BP_ARGS}" \
-    _BP_START="${_BP_START}" \
-    _BP_EXIT_CODE="${exit_code}" \
-    _BP_END_TIME="${end_time}" \
-    _BP_LOAD_AVG="${load_avg}" \
-    python3 -c "
+    echo "${files}" |
+        _BP_USER="${_BP_USER}" \
+            _BP_DIR="${_BP_DIR}" \
+            _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
+            _BP_COMMIT="${_BP_COMMIT}" \
+            _BP_ARGS="${_BP_ARGS}" \
+            _BP_START="${_BP_START}" \
+            _BP_EXIT_CODE="${exit_code}" \
+            _BP_END_TIME="${end_time}" \
+            _BP_LOAD_AVG="${load_avg}" \
+            python3 -c "
 import json, os, sys
 
 files = [line.strip() for line in sys.stdin if line.strip()]
@@ -166,21 +169,21 @@
     'load_avg': os.environ['_BP_LOAD_AVG'],
 }
 print(json.dumps(record))
-" >> "${LOG_FILE}"
+" >>"${LOG_FILE}"
 
     # Clean up state file
     rm -f "${state_file}"
 }
 
 case "$1" in
-    collect)
-        cmd_collect "$2" "$3"
-        ;;
-    record)
-        cmd_record "$2" "$3"
-        ;;
-    *)
-        echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
-        exit 1
-        ;;
+collect)
+    cmd_collect "$2" "$3"
+    ;;
+record)
+    cmd_record "$2" "$3"
+    ;;
+*)
+    echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
+    exit 1
+    ;;
 esac
--- cloud/script/build_fdb.sh.orig
+++ cloud/script/build_fdb.sh
@@ -53,7 +53,7 @@
 
 # Print help message
 show_help() {
-    cat << EOF
+    cat <<EOF
 Usage: $0 [OPTIONS]
 
 Build FoundationDB using Docker.
@@ -110,110 +110,110 @@
 # Parse command line arguments
 while [[ $# -gt 0 ]]; do
     case $1 in
-        -v)
-            VERSION="$2"
-            shift 2
-            ;;
-        -o)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        -i)
-            DOCKER_IMAGE="$2"
-            shift 2
-            ;;
-        -s)
-            SRC_DIR="$2"
-            shift 2
-            ;;
-        -u)
-            UPDATE_REPO=false
-            shift
-            ;;
-        --aws)
-            BUILD_AWS_BACKUP=true
-            shift
-            ;;
-        --azure)
-            BUILD_AZURE_BACKUP=true
-            shift
-            ;;
-        --no-jemalloc)
-            USE_JEMALLOC=false
-            shift
-            ;;
-        --no-lto)
-            USE_LTO=false
-            shift
-            ;;
-        --no-debug-syms)
-            FULL_DEBUG_SYMBOLS=false
-            shift
-            ;;
-        --no-docs)
-            BUILD_DOCUMENTATION=false
-            shift
-            ;;
-        --no-rocksdb)
-            WITH_ROCKSDB=false
-            shift
-            ;;
-        --no-grpc)
-            WITH_GRPC=false
-            shift
-            ;;
-        --debug-syms)
-            FULL_DEBUG_SYMBOLS=true
-            shift
-            ;;
-        --docs)
-            BUILD_DOCUMENTATION=true
-            shift
-            ;;
-        --rocksdb)
-            WITH_ROCKSDB=true
-            shift
-            ;;
-        --grpc)
-            WITH_GRPC=true
-            shift
-            ;;
-        --java)
-            BUILD_JAVA_BINDING=true
-            shift
-            ;;
-        --go)
-            BUILD_GO_BINDING=true
-            shift
-            ;;
-        --swift)
-            BUILD_SWIFT_BINDING=true
-            shift
-            ;;
-        --ruby)
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --all-bindings)
-            BUILD_JAVA_BINDING=true
-            BUILD_GO_BINDING=true
-            BUILD_SWIFT_BINDING=true
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --minimal-bindings)
-            BUILD_PYTHON_BINDING=false
-            shift
-            ;;
-        -h)
-            show_help
-            exit 0
-            ;;
-        *)
-            echo -e "${RED}Unknown option: $1${NC}" >&2
-            show_help
-            exit 1
-            ;;
+    -v)
+        VERSION="$2"
+        shift 2
+        ;;
+    -o)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    -i)
+        DOCKER_IMAGE="$2"
+        shift 2
+        ;;
+    -s)
+        SRC_DIR="$2"
+        shift 2
+        ;;
+    -u)
+        UPDATE_REPO=false
+        shift
+        ;;
+    --aws)
+        BUILD_AWS_BACKUP=true
+        shift
+        ;;
+    --azure)
+        BUILD_AZURE_BACKUP=true
+        shift
+        ;;
+    --no-jemalloc)
+        USE_JEMALLOC=false
+        shift
+        ;;
+    --no-lto)
+        USE_LTO=false
+        shift
+        ;;
+    --no-debug-syms)
+        FULL_DEBUG_SYMBOLS=false
+        shift
+        ;;
+    --no-docs)
+        BUILD_DOCUMENTATION=false
+        shift
+        ;;
+    --no-rocksdb)
+        WITH_ROCKSDB=false
+        shift
+        ;;
+    --no-grpc)
+        WITH_GRPC=false
+        shift
+        ;;
+    --debug-syms)
+        FULL_DEBUG_SYMBOLS=true
+        shift
+        ;;
+    --docs)
+        BUILD_DOCUMENTATION=true
+        shift
+        ;;
+    --rocksdb)
+        WITH_ROCKSDB=true
+        shift
+        ;;
+    --grpc)
+        WITH_GRPC=true
+        shift
+        ;;
+    --java)
+        BUILD_JAVA_BINDING=true
+        shift
+        ;;
+    --go)
+        BUILD_GO_BINDING=true
+        shift
+        ;;
+    --swift)
+        BUILD_SWIFT_BINDING=true
+        shift
+        ;;
+    --ruby)
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --all-bindings)
+        BUILD_JAVA_BINDING=true
+        BUILD_GO_BINDING=true
+        BUILD_SWIFT_BINDING=true
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --minimal-bindings)
+        BUILD_PYTHON_BINDING=false
+        shift
+        ;;
+    -h)
+        show_help
+        exit 0
+        ;;
+    *)
+        echo -e "${RED}Unknown option: $1${NC}" >&2
+        show_help
+        exit 1
+        ;;
     esac
 done
 
--- cloud/script/start.sh.orig
+++ cloud/script/start.sh
@@ -54,9 +54,9 @@
 fi
 # echo "$@" "daemonized=${daemonized}"}
 
-custom_start="${DORIS_HOME}/bin/custom_start.sh" 
+custom_start="${DORIS_HOME}/bin/custom_start.sh"
 if [[ -f "${custom_start}" ]]; then
-  source "${custom_start}" 
+    source "${custom_start}"
 fi
 enable_hdfs=${enable_hdfs:-1}
 process_name="${process_name:-doris_cloud}"
--- docker/thirdparties/docker-compose/common/event-hook.sh.orig
+++ docker/thirdparties/docker-compose/common/event-hook.sh
--- docker/thirdparties/docker-compose/common/hive-configure.sh.orig
+++ docker/thirdparties/docker-compose/common/hive-configure.sh
@@ -19,16 +19,16 @@
 # Referenced from [docker-hive](https://github.com/big-data-europe/docker-hive)
 
 # Set some sensible defaults
-export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
+export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}
 
 function addProperty() {
-  local path=$1
-  local name=$2
-  local value=$3
+    local path=$1
+    local name=$2
+    local value=$3
 
-  local entry="<property><name>$name</name><value>${value}</value></property>"
-  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
-  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
+    local entry="<property><name>$name</name><value>${value}</value></property>"
+    local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
+    sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
 }
 
 function configure() {
@@ -38,10 +38,10 @@
 
     local var
     local value
-    
+
     echo "Configuring $module"
-    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
-        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
+    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix); do
+        name=$(echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')
         var="${envPrefix}_${c}"
         value=${!var}
         echo " - Setting $name=$  "
--- docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh.orig
+++ docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh
@@ -24,18 +24,18 @@
     local output_file=$5
 
     # clear output file
-    echo "" > "$output_file"
+    echo "" >"$output_file"
 
     local id=1
     while IFS= read -r line; do
         if [ -n "$type_value" ]; then
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         else
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         fi
-        echo "$line"  >> "$output_file"
+        echo "$line" >>"$output_file"
         id=$((id + 1))
-    done < "$data_file"
+    done <"$data_file"
 }
 
 array_data_file="/mnt/scripts/data/composite_type_array_bulk.json"
--- docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh
@@ -31,12 +31,11 @@
         return 0
     fi
 
-    IFS=',' read -r -a parsed_groups <<< "${cleaned_groups}"
+    IFS=',' read -r -a parsed_groups <<<"${cleaned_groups}"
     for group in "${parsed_groups[@]}"; do
         [[ -n "${group}" ]] || continue
         case "${group}" in
-        all|common|hive2_only|hive3_only)
-            ;;
+        all | common | hive2_only | hive3_only) ;;
         *)
             echo "Unknown hive bootstrap group: ${group}" >&2
             return 1
@@ -56,7 +55,7 @@
         deduped_groups+=("${group}")
     done
 
-    if (( ${#deduped_groups[@]} == 0 )); then
+    if ((${#deduped_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
@@ -98,11 +97,11 @@
         bootstrap_group_enabled "${normalized_groups}" "hive3_only" && include_hive3_only=1
     done
 
-    (( include_common == 1 )) && merged_groups+=("common")
-    (( include_hive2_only == 1 )) && merged_groups+=("hive2_only")
-    (( include_hive3_only == 1 )) && merged_groups+=("hive3_only")
+    ((include_common == 1)) && merged_groups+=("common")
+    ((include_hive2_only == 1)) && merged_groups+=("hive2_only")
+    ((include_hive3_only == 1)) && merged_groups+=("hive3_only")
 
-    if (( ${#merged_groups[@]} == 0 )); then
+    if ((${#merged_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
--- docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh
@@ -11,4 +11,3 @@
 hive -f "${CUR_DIR}"/create_table.hql
 
 hadoop fs -rm -r /user/doris/suites/default/hive_ignore_absent_partitions_table/country=India
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/orc_predicate_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh
@@ -3,11 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/regression/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/regression/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/some_serde_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/test/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/test/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh
@@ -19,4 +19,3 @@
 
 # # create table
 # hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh
@@ -36,7 +36,7 @@
 # Add JuiceFS jar into Hadoop classpath for `hadoop fs jfs://...`.
 shopt -s nullglob
 juicefs_jars=("${AUX_LIB}"/juicefs-hadoop-*.jar)
-if (( ${#juicefs_jars[@]} > 0 )); then
+if ((${#juicefs_jars[@]} > 0)); then
     for target in /opt/hadoop-3.2.1/share/hadoop/common/lib /opt/hadoop/share/hadoop/common/lib; do
         if [[ -d "${target}" ]]; then
             cp -f "${juicefs_jars[@]}" "${target}"/
@@ -48,7 +48,6 @@
 # start metastore
 nohup /opt/hive/bin/hive --service metastore &
 
-
 # wait metastore start
 while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
     sleep 5s
@@ -84,7 +83,7 @@
     fi
 done < <(find "${DATA_DIR}" -type f -name "run.sh" -print0)
 
-if (( ${#run_scripts[@]} > 0 )); then
+if ((${#run_scripts[@]} > 0)); then
     printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         bash -e "{}" || (echo "Failed to executing script: {}" && exit 1)
@@ -122,23 +121,20 @@
     hadoop_put_paths+=("${relative_path}")
 }
 
-
 ## put tpch1
 copy_to_hdfs_if_selected "tpch1.db"
 
 ## put paimon1
 copy_to_hdfs_if_selected "paimon1"
 
-
 ## put tvf_data
 copy_to_hdfs_if_selected "tvf_data"
 
 ## put other preinstalled data
 copy_to_hdfs_if_selected "preinstalled_data"
 
-
 # wait put finish
-if (( ${#hadoop_put_pids[@]} > 0 )); then
+if ((${#hadoop_put_pids[@]} > 0)); then
     wait "${hadoop_put_pids[@]}"
 fi
 
@@ -160,7 +156,7 @@
 done
 shopt -u nullglob
 
-if (( ${#preinstalled_hqls[@]} > 0 )); then
+if ((${#preinstalled_hqls[@]} > 0)); then
     printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         hive -f {} || (echo "Failed to executing hql: {}" && exit 1)
--- docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh
@@ -31,7 +31,7 @@
     fi
 done < <(find "${CUR_DIR}/data" -type f -name "*.tar.gz" -print0)
 
-if (( ${#extract_archives[@]} > 0 )); then
+if ((${#extract_archives[@]} > 0)); then
     printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
       f="$0"
       echo "Extracting hive data $f"
--- docker/thirdparties/docker-compose/hudi/scripts/init.sh.orig
+++ docker/thirdparties/docker-compose/hudi/scripts/init.sh
@@ -21,8 +21,8 @@
 # Remove SUCCESS file from previous run to ensure fresh initialization
 SUCCESS_FILE="/opt/hudi-scripts/SUCCESS"
 if [[ -f "${SUCCESS_FILE}" ]]; then
-  echo "Removing previous SUCCESS file to ensure fresh initialization..."
-  rm -f "${SUCCESS_FILE}"
+    echo "Removing previous SUCCESS file to ensure fresh initialization..."
+    rm -f "${SUCCESS_FILE}"
 fi
 
 SPARK_HOME=/opt/spark
@@ -34,50 +34,50 @@
 
 # Function to download a JAR file if it doesn't exist
 download_jar() {
-  local jar_name="$1"
-  local version="$2"
-  local url="$3"
-  local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
-  
-  if [[ ! -f "${jar_file}" ]]; then
-    echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
-    local download_success=false
-    if command -v curl >/dev/null 2>&1; then
-      if curl -sSfL "${url}" -o "${jar_file}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    elif command -v wget >/dev/null 2>&1; then
-      if wget -qO "${jar_file}" "${url}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    else
-      echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
-      exit 1
-    fi
-    
-    if [[ "${download_success}" == "false" ]]; then
-      echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
-      exit 1
-    fi
-    
+    local jar_name="$1"
+    local version="$2"
+    local url="$3"
+    local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
+
     if [[ ! -f "${jar_file}" ]]; then
-      echo "Error: Downloaded file ${jar_file} does not exist" >&2
-      exit 1
+        echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
+        local download_success=false
+        if command -v curl >/dev/null 2>&1; then
+            if curl -sSfL "${url}" -o "${jar_file}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        elif command -v wget >/dev/null 2>&1; then
+            if wget -qO "${jar_file}" "${url}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        else
+            echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
+            exit 1
+        fi
+
+        if [[ "${download_success}" == "false" ]]; then
+            echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
+            exit 1
+        fi
+
+        if [[ ! -f "${jar_file}" ]]; then
+            echo "Error: Downloaded file ${jar_file} does not exist" >&2
+            exit 1
+        fi
     fi
-  fi
-  echo "${jar_file}"
+    echo "${jar_file}"
 }
 
 # Function to link a JAR file to Spark jars directory
 link_jar() {
-  local jar_file="$1"
-  local jar_name="$2"
-  local version="$3"
-  ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
+    local jar_file="$1"
+    local jar_name="$2"
+    local version="$3"
+    ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
 }
 
 # Wait for Hive Metastore to be ready
@@ -88,35 +88,35 @@
 RETRY_COUNT=0
 
 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
-  if command -v nc >/dev/null 2>&1; then
-    if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+    if command -v nc >/dev/null 2>&1; then
+        if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    elif command -v timeout >/dev/null 2>&1; then
+        if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    else
+        # Fallback: just wait a bit and assume it's ready
+        if [ $RETRY_COUNT -eq 0 ]; then
+            echo "Warning: nc or timeout command not available, skipping metastore readiness check"
+            sleep 10
+            break
+        fi
     fi
-  elif command -v timeout >/dev/null 2>&1; then
-    if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+
+    RETRY_COUNT=$((RETRY_COUNT + 1))
+    if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
+        echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
     fi
-  else
-    # Fallback: just wait a bit and assume it's ready
-    if [ $RETRY_COUNT -eq 0 ]; then
-      echo "Warning: nc or timeout command not available, skipping metastore readiness check"
-      sleep 10
-      break
-    fi
-  fi
-  
-  RETRY_COUNT=$((RETRY_COUNT + 1))
-  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
-    echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
-  fi
-  sleep 2
+    sleep 2
 done
 
 if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
-  echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
-  exit 1
+    echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
+    exit 1
 fi
 
 # Write core-site for MinIO (S3A)
@@ -191,37 +191,37 @@
 TEMP_SQL_DIR="/tmp/hudi_sql"
 
 if [[ -d "${SCRIPTS_DIR}" ]]; then
-  mkdir -p "${TEMP_SQL_DIR}"
-  
-  # Process each SQL file: substitute environment variables and combine them
-  echo "Processing Hudi SQL scripts..."
-  for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
-    echo "Processing ${sql_file}..."
-    # Use sed to replace environment variables in SQL files
-    # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
-    sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-    echo "" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-  done
-  
-  # Run Spark SQL to execute all SQL scripts
-  echo "Executing Hudi SQL scripts..."
-  START_TIME=$(date +%s)
-  ${SPARK_HOME}/bin/spark-sql \
-    --master local[*] \
-    --name hudi-init \
-    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
-    --conf spark.sql.catalogImplementation=hive \
-    --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
-    --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
-    -f "${TEMP_SQL_DIR}/hudi_total.sql"
-  END_TIME=$(date +%s)
-  EXECUTION_TIME=$((END_TIME - START_TIME))
-  echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
-  
-  # Clean up temporary SQL file
-  rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    mkdir -p "${TEMP_SQL_DIR}"
+
+    # Process each SQL file: substitute environment variables and combine them
+    echo "Processing Hudi SQL scripts..."
+    for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
+        echo "Processing ${sql_file}..."
+        # Use sed to replace environment variables in SQL files
+        # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
+        sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+        echo "" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+    done
+
+    # Run Spark SQL to execute all SQL scripts
+    echo "Executing Hudi SQL scripts..."
+    START_TIME=$(date +%s)
+    ${SPARK_HOME}/bin/spark-sql \
+        --master local[*] \
+        --name hudi-init \
+        --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
+        --conf spark.sql.catalogImplementation=hive \
+        --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
+        --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
+        -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    END_TIME=$(date +%s)
+    EXECUTION_TIME=$((END_TIME - START_TIME))
+    echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
+
+    # Clean up temporary SQL file
+    rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
 else
-  echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
+    echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
 fi
 
 # Create success marker file to indicate initialization is complete
--- docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh.orig
+++ docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh
--- docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh
@@ -57,7 +57,6 @@
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/paimon-hive-connector-3.1-1.3-SNAPSHOT.jar
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/gcs-connector-hadoop3-2.2.24-shaded.jar
 
-
 /usr/local/hadoop-run.sh &
 
 # check healthy hear
@@ -87,7 +86,7 @@
     echo "Invalid index parameter. Exiting."
     exit 1
 fi
-hive  -f /usr/local/sql/create_kerberos_hive_table.sql
+hive -f /usr/local/sql/create_kerberos_hive_table.sql
 if [[ ${enablePaimonHms} == "true" ]]; then
     echo "Creating Paimon HMS catalog and table"
     hadoop fs -put /tmp/paimon_data/* /user/hive/warehouse/
--- docker/thirdparties/docker-compose/kerberos/health-checks/health.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/health.sh
@@ -29,6 +29,6 @@
 
 if test -d "${HEALTH_D}"; then
     for health_script in "${HEALTH_D}"/*; do
-        "${health_script}" &>> /var/log/container-health.log || exit 1
+        "${health_script}" &>>/var/log/container-health.log || exit 1
     done
 fi
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh
@@ -32,9 +32,9 @@
 FAILED=$(supervisorctl status | grep -v RUNNING || true)
 
 if [ "$FAILED" == "" ]; then
-  echo "All services are running"
-  exit 0
+    echo "All services are running"
+    exit 0
 else
-  echo "Some of the services are failing: ${FAILED}"
-  exit 1
+    echo "Some of the services are failing: ${FAILED}"
+    exit 1
 fi
--- docker/thirdparties/docker-compose/polaris/init-catalog.sh.orig
+++ docker/thirdparties/docker-compose/polaris/init-catalog.sh
@@ -26,29 +26,30 @@
 
 echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
 for i in $(seq 1 120); do
-  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
-    break
-  fi
-  sleep 2
+    if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
+        break
+    fi
+    sleep 2
 done
 
 echo "[polaris-init] Fetching OAuth token via client_credentials ..."
 # Try to obtain token using correct OAuth endpoint
 TOKEN_JSON=$(curl -sS \
-  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
-  -H 'Content-Type: application/x-www-form-urlencoded' \
-  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
+    -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
+    -H 'Content-Type: application/x-www-form-urlencoded' \
+    -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
 
 # Extract access_token field
 TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
 
 if [ -z "$TOKEN" ]; then
-  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
-  exit 1
+    echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
+    exit 1
 fi
 
 echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
-CREATE_PAYLOAD=$(cat <<JSON
+CREATE_PAYLOAD=$(
+    cat <<JSON
 {
   "name": "$CATALOG",
   "type": "INTERNAL",
@@ -71,19 +72,19 @@
 
 # Try create; on 409 Conflict, treat as success
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d "$CREATE_PAYLOAD")
+    -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d "$CREATE_PAYLOAD")
 
 if [ "$HTTP_CODE" = "201" ]; then
-  echo "[polaris-init] Catalog created."
+    echo "[polaris-init] Catalog created."
 elif [ "$HTTP_CODE" = "409" ]; then
-  echo "[polaris-init] Catalog already exists. Skipping."
+    echo "[polaris-init] Catalog already exists. Skipping."
 else
-  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
-  cat /tmp/resp.json || true
-  exit 1
+    echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
+    cat /tmp/resp.json || true
+    exit 1
 fi
 
 echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
@@ -91,55 +92,54 @@
 # Create a catalog admin role grants
 echo "[polaris-init] Creating catalog admin role grants ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Create a data engineer role
 echo "[polaris-init] Creating data engineer role ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole":{"name":"data_engineer"}}')
+    -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole":{"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
-  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Connect the roles
 echo "[polaris-init] Connecting roles ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"catalogRole":{"name":"catalog_admin"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"catalogRole":{"name":"catalog_admin"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Give root the data engineer role
 echo "[polaris-init] Assigning data engineer role to root ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole": {"name":"data_engineer"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole": {"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 echo "[polaris-init] Permissions setup completed."
 echo "[polaris-init] Done."
-
--- docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh
--- docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh
--- docker/thirdparties/jindofs-helpers.sh.orig
+++ docker/thirdparties/jindofs-helpers.sh
@@ -32,15 +32,15 @@
     [ "${target_system}" = "Linux" ] || return 1
 
     case "${target_arch}" in
-        x86_64)
-            printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
-            ;;
-        aarch64)
-            printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
-            ;;
-        *)
-            return 1
-            ;;
+    x86_64)
+        printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
+        ;;
+    aarch64)
+        printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
+        ;;
+    *)
+        return 1
+        ;;
     esac
 }
 
@@ -51,10 +51,10 @@
     local pattern
     jindofs_all_platform_jar_patterns | while IFS= read -r pattern; do
         case "${jar_name}" in
-            ${pattern})
-                echo "match"
-                return
-                ;;
+        ${pattern})
+            echo "match"
+            return
+            ;;
         esac
     done
 }
@@ -97,8 +97,8 @@
     [ "${target_system}" = "Linux" ] || return 0
 
     case "${target_arch}" in
-        x86_64 | aarch64) ;;
-        *) return 0 ;;
+    x86_64 | aarch64) ;;
+    *) return 0 ;;
     esac
 
     jindofs_log_source_jars "${jindofs_dir}" "${target_dir}"
--- docker/thirdparties/run-thirdparties-docker.sh.orig
+++ docker/thirdparties/run-thirdparties-docker.sh
@@ -54,7 +54,7 @@
 STOP=0
 NEED_RESERVE_PORTS=0
 export NEED_LOAD_DATA=1
-export LOAD_PARALLEL=$(( $(getconf _NPROCESSORS_ONLN) / 2 ))
+export LOAD_PARALLEL=$(($(getconf _NPROCESSORS_ONLN) / 2))
 export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
 
 if ! OPTS="$(getopt \
@@ -204,7 +204,7 @@
         RUN_MARIADB=1
     elif [[ "${element}"x == "db2"x ]]; then
         RUN_DB2=1
-    elif [[ "${element}"x == "oceanbase"x ]];then
+    elif [[ "${element}"x == "oceanbase"x ]]; then
         RUN_OCEANBASE=1
     elif [[ "${element}"x == "lakesoul"x ]]; then
         RUN_LAKESOUL=1
@@ -567,7 +567,7 @@
     . "${ROOT}"/docker-compose/hive/hive-2x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-2x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-2x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
     sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
@@ -587,7 +587,7 @@
     . "${ROOT}"/docker-compose/hive/hive-3x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-3x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-3x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
     sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
@@ -606,12 +606,12 @@
     if [[ "${STOP}" -ne 1 ]]; then
         if [[ ! -d "${ICEBERG_DIR}/data" ]]; then
             echo "${ICEBERG_DIR}/data does not exist"
-            cd "${ICEBERG_DIR}" \
-            && rm -f iceberg_data*.zip \
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip \
-            && sudo unzip iceberg_data_spark40.zip \
-            && sudo mv iceberg_data data \
-            && sudo rm -rf iceberg_data_spark40.zip
+            cd "${ICEBERG_DIR}" &&
+                rm -f iceberg_data*.zip &&
+                wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip &&
+                sudo unzip iceberg_data_spark40.zip &&
+                sudo mv iceberg_data data &&
+                sudo rm -rf iceberg_data_spark40.zip
             cd -
         else
             echo "${ICEBERG_DIR}/data exist, continue !"
@@ -690,9 +690,9 @@
     for i in {1..2}; do
         . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
         envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
     done
     sudo chmod a+w /etc/hosts
     sudo sed -i "1i${IP_HOST} hadoop-master" /etc/hosts
@@ -758,12 +758,12 @@
     echo "RUN_ICEBERG_REST"
     # iceberg-rest with multiple cloud storage backends
     ICEBERG_REST_DIR=${ROOT}/docker-compose/iceberg-rest
-    
+
     # generate iceberg-rest.yaml
     export CONTAINER_UID=${CONTAINER_UID}
     . "${ROOT}"/docker-compose/iceberg-rest/iceberg-rest_settings.env
     envsubst <"${ICEBERG_REST_DIR}/docker-compose.yaml.tpl" >"${ICEBERG_REST_DIR}/docker-compose.yaml"
-    
+
     sudo docker compose -f "${ICEBERG_REST_DIR}/docker-compose.yaml" down
     if [[ "${STOP}" -ne 1 ]]; then
         # Start all three REST catalogs (S3, OSS, COS)
@@ -806,102 +806,102 @@
 declare -A pids
 
 if [[ "${RUN_ES}" -eq 1 ]]; then
-    start_es > start_es.log  2>&1 &
+    start_es >start_es.log 2>&1 &
     pids["es"]=$!
 fi
 
 if [[ "${RUN_MYSQL}" -eq 1 ]]; then
-    start_mysql > start_mysql.log 2>&1 &
+    start_mysql >start_mysql.log 2>&1 &
     pids["mysql"]=$!
 fi
 
 if [[ "${RUN_PG}" -eq 1 ]]; then
-    start_pg > start_pg.log 2>&1 &
+    start_pg >start_pg.log 2>&1 &
     pids["pg"]=$!
 fi
 
 if [[ "${RUN_ORACLE}" -eq 1 ]]; then
-    start_oracle > start_oracle.log 2>&1 &
+    start_oracle >start_oracle.log 2>&1 &
     pids["oracle"]=$!
 fi
 
 if [[ "${RUN_DB2}" -eq 1 ]]; then
-    start_db2 > start_db2.log 2>&1 &
+    start_db2 >start_db2.log 2>&1 &
     pids["db2"]=$!
 fi
 
 if [[ "${RUN_OCEANBASE}" -eq 1 ]]; then
-    start_oceanbase > start_oceanbase.log 2>&1 &
+    start_oceanbase >start_oceanbase.log 2>&1 &
     pids["oceanbase"]=$!
 fi
 
 if [[ "${RUN_SQLSERVER}" -eq 1 ]]; then
-    start_sqlserver > start_sqlserver.log 2>&1 &
+    start_sqlserver >start_sqlserver.log 2>&1 &
     pids["sqlserver"]=$!
 fi
 
 if [[ "${RUN_CLICKHOUSE}" -eq 1 ]]; then
-    start_clickhouse > start_clickhouse.log 2>&1 &
+    start_clickhouse >start_clickhouse.log 2>&1 &
     pids["clickhouse"]=$!
 fi
 
 if [[ "${RUN_KAFKA}" -eq 1 ]]; then
-    start_kafka > start_kafka.log 2>&1 &
+    start_kafka >start_kafka.log 2>&1 &
     pids["kafka"]=$!
 fi
 
 if [[ "${RUN_HIVE2}" -eq 1 ]]; then
-    start_hive2 > start_hive2.log 2>&1 &
+    start_hive2 >start_hive2.log 2>&1 &
     pids["hive2"]=$!
 fi
 
 if [[ "${RUN_HIVE3}" -eq 1 ]]; then
-    start_hive3 > start_hive3.log 2>&1 &
+    start_hive3 >start_hive3.log 2>&1 &
     pids["hive3"]=$!
 fi
 
 if [[ "${RUN_ICEBERG}" -eq 1 ]]; then
-    start_iceberg > start_iceberg.log 2>&1 &
+    start_iceberg >start_iceberg.log 2>&1 &
     pids["iceberg"]=$!
 fi
 
 if [[ "${RUN_ICEBERG_REST}" -eq 1 ]]; then
-    start_iceberg_rest > start_iceberg_rest.log 2>&1 &
+    start_iceberg_rest >start_iceberg_rest.log 2>&1 &
     pids["iceberg-rest"]=$!
 fi
 
 if [[ "${RUN_HUDI}" -eq 1 ]]; then
-    start_hudi > start_hudi.log 2>&1 &
+    start_hudi >start_hudi.log 2>&1 &
     pids["hudi"]=$!
 fi
 
 if [[ "${RUN_MARIADB}" -eq 1 ]]; then
-    start_mariadb > start_mariadb.log 2>&1 &
+    start_mariadb >start_mariadb.log 2>&1 &
     pids["mariadb"]=$!
 fi
 
 if [[ "${RUN_LAKESOUL}" -eq 1 ]]; then
-    start_lakesoul > start_lakesoule.log 2>&1 &
+    start_lakesoul >start_lakesoule.log 2>&1 &
     pids["lakesoul"]=$!
 fi
 
 if [[ "${RUN_MINIO}" -eq 1 ]]; then
-    start_minio > start_minio.log 2>&1 &
+    start_minio >start_minio.log 2>&1 &
     pids["minio"]=$!
 fi
 
 if [[ "${RUN_POLARIS}" -eq 1 ]]; then
-    start_polaris > start_polaris.log 2>&1 &
+    start_polaris >start_polaris.log 2>&1 &
     pids["polaris"]=$!
 fi
 
 if [[ "${RUN_KERBEROS}" -eq 1 ]]; then
-    start_kerberos > start_kerberos.log 2>&1 &
+    start_kerberos >start_kerberos.log 2>&1 &
     pids["kerberos"]=$!
 fi
 
 if [[ "${RUN_RANGER}" -eq 1 ]]; then
-    start_ranger > start_ranger.log 2>&1 &
+    start_ranger >start_ranger.log 2>&1 &
     pids["ranger"]=$!
 fi
 echo "waiting all dockers starting done"
--- docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh
@@ -39,7 +39,7 @@
     local kind="$2"
     local relative_path="$3"
 
-    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" || \
+    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" ||
         fail "expected selected: groups=${groups}, kind=${kind}, path=${relative_path}"
 }
 
--- docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh
@@ -38,17 +38,17 @@
 
 docker_container_state_cmd() {
     case "$1" in
-    doris-external--hadoop2-namenode|\
-    doris-external--hadoop2-datanode|\
-    doris-external--hive2-server|\
-    doris-external--hive2-metastore|\
-    doris-external--hive2-metastore-postgresql)
+    doris-external--hadoop2-namenode | \
+        doris-external--hadoop2-datanode | \
+        doris-external--hive2-server | \
+        doris-external--hive2-metastore | \
+        doris-external--hive2-metastore-postgresql)
         echo "running|healthy"
         ;;
-    doris-stuck--hadoop3-namenode|\
-    doris-stuck--hive3-server|\
-    doris-stuck--hive3-metastore|\
-    doris-stuck--hive3-metastore-postgresql)
+    doris-stuck--hadoop3-namenode | \
+        doris-stuck--hive3-server | \
+        doris-stuck--hive3-metastore | \
+        doris-stuck--hive3-metastore-postgresql)
         echo "running|healthy"
         ;;
     doris-stuck--hadoop3-datanode)
--- hooks/setup_worktree.sh.orig
+++ hooks/setup_worktree.sh
--- post-build.sh.orig
+++ post-build.sh
@@ -157,35 +157,35 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --fe)
-            PROCESS_FE=1
-            shift
-            ;;
-        --be)
-            PROCESS_BE=1
-            shift
-            ;;
-        --output)
-            OUTPUT_DIR="$2"
-            shift 2
-            ;;
-        --juicefs)
-            BUILD_JUICEFS="ON"
-            shift
-            ;;
-        --jindofs)
-            BUILD_JINDOFS="ON"
-            shift
-            ;;
-        --help | -h)
-            usage
-            exit 0
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage
-            exit 1
-            ;;
+    --fe)
+        PROCESS_FE=1
+        shift
+        ;;
+    --be)
+        PROCESS_BE=1
+        shift
+        ;;
+    --output)
+        OUTPUT_DIR="$2"
+        shift 2
+        ;;
+    --juicefs)
+        BUILD_JUICEFS="ON"
+        shift
+        ;;
+    --jindofs)
+        BUILD_JINDOFS="ON"
+        shift
+        ;;
+    --help | -h)
+        usage
+        exit 0
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage
+        exit 1
+        ;;
     esac
 done
 
--- regression-test/pipeline/external/external-stage-timer.sh.orig
+++ regression-test/pipeline/external/external-stage-timer.sh
@@ -50,20 +50,20 @@
     fi
 
     case "${current_command}" in
-        *"bash deploy_cluster.sh "*)
-            external_regression_stage_timer__enter_if_needed "启动 Doris"
-            ;;
-        *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
-            if [[ "${current_command}" != *"--stop"* ]]; then
-                external_regression_stage_timer__enter_if_needed "启动依赖"
-            fi
-            ;;
-        *"./run-regression-test.sh --teamcity --clean --run"*)
-            external_regression_stage_timer__enter_if_needed "执行 Case"
-            ;;
-        *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
-            external_regression_stage_timer__enter_if_needed "收尾归档"
-            ;;
+    *"bash deploy_cluster.sh "*)
+        external_regression_stage_timer__enter_if_needed "启动 Doris"
+        ;;
+    *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
+        if [[ "${current_command}" != *"--stop"* ]]; then
+            external_regression_stage_timer__enter_if_needed "启动依赖"
+        fi
+        ;;
+    *"./run-regression-test.sh --teamcity --clean --run"*)
+        external_regression_stage_timer__enter_if_needed "执行 Case"
+        ;;
+    *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
+        external_regression_stage_timer__enter_if_needed "收尾归档"
+        ;;
     esac
 }
 
--- run-be-ut.sh.orig
+++ run-be-ut.sh
@@ -480,7 +480,6 @@
 profraw=${DORIS_TEST_BINARY_DIR}/doris_be_test.profraw
 profdata=${DORIS_TEST_BINARY_DIR}/doris_be_test.profdata
 
-
 if [[ ${GDB} -ge 1 ]]; then
     gdb --args "${test}" "${FILTER}"
     exit
--- run-fs-env-test.sh.orig
+++ run-fs-env-test.sh
@@ -42,56 +42,88 @@
 # Parse --key=value arguments into env vars
 for arg in "$@"; do
     case "$arg" in
-        --s3-endpoint=*)  export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
-        --s3-region=*)    export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
-        --s3-bucket=*)    export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
-        --s3-ak=*)        export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
-        --s3-sk=*)        export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
-        --azure-account=*)    export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
-        --azure-key=*)        export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
-        --azure-container=*)  export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
-        --cos-endpoint=*)  export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
-        --cos-region=*)    export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
-        --cos-bucket=*)    export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
-        --cos-ak=*)        export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
-        --cos-sk=*)        export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
-        --oss-endpoint=*)  export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
-        --oss-region=*)    export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
-        --oss-bucket=*)    export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
-        --oss-ak=*)        export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
-        --oss-sk=*)        export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
-        --obs-endpoint=*)  export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
-        --obs-region=*)    export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
-        --obs-bucket=*)    export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
-        --obs-ak=*)        export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
-        --obs-sk=*)        export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
-        --hdfs-host=*)    export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
-        --hdfs-port=*)    export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
-        --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
-        --kdc-keytab=*)    export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
-        --broker-host=*)  export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
-        --broker-port=*)  export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
-        *) echo "Unknown option: $arg"; exit 1 ;;
+    --s3-endpoint=*) export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
+    --s3-region=*) export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
+    --s3-bucket=*) export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
+    --s3-ak=*) export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
+    --s3-sk=*) export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
+    --azure-account=*) export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
+    --azure-key=*) export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
+    --azure-container=*) export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
+    --cos-endpoint=*) export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
+    --cos-region=*) export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
+    --cos-bucket=*) export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
+    --cos-ak=*) export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
+    --cos-sk=*) export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
+    --oss-endpoint=*) export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
+    --oss-region=*) export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
+    --oss-bucket=*) export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
+    --oss-ak=*) export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
+    --oss-sk=*) export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
+    --obs-endpoint=*) export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
+    --obs-region=*) export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
+    --obs-bucket=*) export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
+    --obs-ak=*) export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
+    --obs-sk=*) export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
+    --hdfs-host=*) export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
+    --hdfs-port=*) export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
+    --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
+    --kdc-keytab=*) export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
+    --broker-host=*) export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
+    --broker-port=*) export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
+    *)
+        echo "Unknown option: $arg"
+        exit 1
+        ;;
     esac
 done
 
 # Map service name to JUnit 5 tag and Maven module(s)
 # NOTE: Do NOT use GROUPS as variable name — it is a bash builtin (user group IDs).
 case "$SERVICE" in
-    s3)        TAG="s3";       MODULES="fe-filesystem/fe-filesystem-s3" ;;
-    oss)       TAG="oss";      MODULES="fe-filesystem/fe-filesystem-oss" ;;
-    cos)       TAG="cos";      MODULES="fe-filesystem/fe-filesystem-cos" ;;
-    obs)       TAG="obs";      MODULES="fe-filesystem/fe-filesystem-obs" ;;
-    azure)     TAG="azure";    MODULES="fe-filesystem/fe-filesystem-azure" ;;
-    hdfs)      TAG="hdfs";     MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    kerberos)  TAG="kerberos"; MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    broker)    TAG="broker";   MODULES="fe-filesystem/fe-filesystem-broker" ;;
-    all)       TAG="environment"
-               MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-broker" ;;
-    *) echo "Unknown service: $SERVICE"; exit 1 ;;
+s3)
+    TAG="s3"
+    MODULES="fe-filesystem/fe-filesystem-s3"
+    ;;
+oss)
+    TAG="oss"
+    MODULES="fe-filesystem/fe-filesystem-oss"
+    ;;
+cos)
+    TAG="cos"
+    MODULES="fe-filesystem/fe-filesystem-cos"
+    ;;
+obs)
+    TAG="obs"
+    MODULES="fe-filesystem/fe-filesystem-obs"
+    ;;
+azure)
+    TAG="azure"
+    MODULES="fe-filesystem/fe-filesystem-azure"
+    ;;
+hdfs)
+    TAG="hdfs"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+kerberos)
+    TAG="kerberos"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+broker)
+    TAG="broker"
+    MODULES="fe-filesystem/fe-filesystem-broker"
+    ;;
+all)
+    TAG="environment"
+    MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-broker"
+    ;;
+*)
+    echo "Unknown service: $SERVICE"
+    exit 1
+    ;;
 esac
 
 cd "${ROOT}/fe"
--- run-regression-test.sh.orig
+++ run-regression-test.sh
@@ -180,7 +180,7 @@
         local cmd="$1"
         local max_attempts=3
         local attempt=1
-        
+
         while [[ ${attempt} -le ${max_attempts} ]]; do
             echo "Attempt ${attempt}/${max_attempts}: ${cmd}"
             if eval "${cmd}"; then
@@ -189,56 +189,71 @@
             else
                 echo "Command failed on attempt ${attempt}"
                 if [[ ${attempt} -lt ${max_attempts} ]]; then
-                    sleep $((attempt * 5))  # Linear backoff
+                    sleep $((attempt * 5)) # Linear backoff
                 fi
                 ((attempt++))
             fi
         done
-        
+
         echo "Command failed after ${max_attempts} attempts"
         return 1
     }
 
     # Navigate to framework directory and build with retry
-    cd "${DORIS_HOME}/regression-test/framework" || { echo "Failed to change directory"; exit 1; }
-    
+    cd "${DORIS_HOME}/regression-test/framework" || {
+        echo "Failed to change directory"
+        exit 1
+    }
+
     # First try to download dependencies only
     echo "Downloading dependencies..."
-    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || { echo "Failed to create temporary file for dependency output"; exit 1; }
+    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || {
+        echo "Failed to create temporary file for dependency output"
+        exit 1
+    }
     execute_maven_with_retry "${MVN_CMD} dependency:resolve -B -DskipTests=true -Dmdep.prependGroupId=true -DoutputFile=${dep_output_file}" || {
         echo "Failed to download dependencies"
         exit 1
     }
-    
+
     # Then package with retry
     echo "Building package..."
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build package"
         exit 1
     }
-    
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
 
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
+
     mkdir -p "${OUTPUT_DIR}"/{lib,log}
     cp -r "${REGRESSION_TEST_BUILD_DIR}"/regression-test-*.jar "${OUTPUT_DIR}/lib"
 
     echo "===== BUILD JAVA_UDF_SRC TO GENERATE JAR ====="
     mkdir -p "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars
-    cd "${DORIS_HOME}"/regression-test/java-udf-src || { echo "Failed to change directory to java-udf-src"; exit 1; }
-    
+    cd "${DORIS_HOME}"/regression-test/java-udf-src || {
+        echo "Failed to change directory to java-udf-src"
+        exit 1
+    }
+
     # Build UDF with retry
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build UDF package"
         exit 1
     }
-    
+
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars/
     # be and fe dir is compiled output
     mkdir -p "${DORIS_HOME}"/output/fe/custom_lib/
     mkdir -p "${DORIS_HOME}"/output/be/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/fe/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/be/custom_lib/
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
 fi
 
 # check java home
@@ -249,8 +264,8 @@
 
 # check java version
 export JAVA="${JAVA_HOME}/bin/java"
-JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 \
-    | awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
+JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 |
+    awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
 JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION%%.*}"
 if [[ "${JAVA_SPEC_VERSION}" == 1.* ]]; then
     JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION#1.}"
@@ -258,8 +273,8 @@
 fi
 
 # Arrow Flight SQL JDBC needs java.nio opened when the regression framework runs on JDK 17+.
-if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] \
-    && [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
+if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] &&
+    [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
     JAVA_OPTS="${JAVA_OPTS:+${JAVA_OPTS} }--add-opens=java.base/java.nio=ALL-UNNAMED"
 fi
 
@@ -276,12 +291,12 @@
         SKIP_NEXT=0
         continue
     fi
-    
+
     if [[ "${arg}" == "-f" ]] || [[ "${arg}" == "--file" ]]; then
         SKIP_NEXT=1
         continue
     fi
-    
+
     NEW_ARGS+=("${arg}")
 done
 
@@ -290,7 +305,7 @@
     # Extract directory (parent path)
     # e.g., "regression-test/suites/shape_check/tpch_sf1000/shape/q1.groovy" -> "regression-test/suites/shape_check/tpch_sf1000/shape"
     FILE_DIR=$(dirname "${FILE_PATH}")
-    
+
     # Extract suite name (filename without .groovy or .sql extension)
     # e.g., "q1.groovy" -> "q1" or "q01.sql" -> "q01"
     FILE_NAME=$(basename "${FILE_PATH}")
@@ -298,9 +313,9 @@
     SUITE_NAME="${FILE_NAME%.groovy}"
     # Remove .sql extension if exists
     SUITE_NAME="${SUITE_NAME%.sql}"
-    
+
     echo "Converted -f ${FILE_PATH} to -d ${FILE_DIR} -s ${SUITE_NAME}"
-    
+
     # Add -d and -s to arguments
     NEW_ARGS+=("-d" "${FILE_DIR}" "-s" "${SUITE_NAME}")
 fi
--- thirdparty/build-thirdparty.sh.orig
+++ thirdparty/build-thirdparty.sh
@@ -520,7 +520,7 @@
 
     rm -rf CMakeCache.txt CMakeFiles/
     "${CMAKE_CMD}" ../ -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-      -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
     # -DCMAKE_CXX_FLAGS="$warning_uninitialized"
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
@@ -1307,7 +1307,7 @@
     rm -rf CMakeCache.txt CMakeFiles/
 
     "${CMAKE_CMD}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-     -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+        -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
     "${BUILD_SYSTEM}" -j"${PARALLEL}"
     "${BUILD_SYSTEM}" install
 }
@@ -1383,10 +1383,10 @@
 
     # -Wno-elaborated-enum-base to make C++20 on MacOS happy
     "${CMAKE_CMD}" -G "${GENERATOR}" \
-    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
-    -DBUILD_EXAMPLES=OFF \
-    -DBUILD_TOOLS=OFF \
-    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
+        -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
+        -DBUILD_EXAMPLES=OFF \
+        -DBUILD_TOOLS=OFF \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}" install
 }
 
@@ -1892,7 +1892,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     MACHINE_TYPE="$(uname -m)"
     if [[ "${MACHINE_TYPE}" == "aarch64" || "${MACHINE_TYPE}" == 'arm64' ]]; then
         CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crc" NEON64_CFLAGS=" "
@@ -1922,10 +1922,10 @@
 
         # Add -ldl for clang compatibility (libcrypto.a requires dlopen/dlsym/dlclose/dlerror)
         "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-        -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
-        -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
-        -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
-        -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+            -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
+            -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
+            -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
+            -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
         "${BUILD_SYSTEM}" -j "${PARALLEL}"
         "${BUILD_SYSTEM}" install
     fi
@@ -1941,7 +1941,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
@@ -1996,7 +1996,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
 
@@ -2020,7 +2020,7 @@
     fi
 
     CXXFLAGS="-Wno-nontrivial-memcall" \
-    "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
+        "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
         -G "${GENERATOR}" \
         -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
         -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
@@ -2180,105 +2180,105 @@
 
     # Map package name to the uppercase *_SOURCE variable name
     case "${pkg}" in
-        libevent)        src_var="LIBEVENT_SOURCE" ;;
-        openssl)         src_var="OPENSSL_SOURCE" ;;
-        thrift)          src_var="THRIFT_SOURCE" ;;
-        protobuf)        src_var="PROTOBUF_SOURCE" ;;
-        gflags)          src_var="GFLAGS_SOURCE" ;;
-        glog)            src_var="GLOG_SOURCE" ;;
-        gtest)           src_var="GTEST_SOURCE" ;;
-        rapidjson)       src_var="RAPIDJSON_SOURCE" ;;
-        snappy)          src_var="SNAPPY_SOURCE" ;;
-        gperftools)      src_var="GPERFTOOLS_SOURCE" ;;
-        zlib)            src_var="ZLIB_SOURCE" ;;
-        crc32c)          src_var="CRC32C_SOURCE" ;;
-        lz4)             src_var="LZ4_SOURCE" ;;
-        bzip)            src_var="BZIP_SOURCE" ;;
-        lzo2)            src_var="LZO2_SOURCE" ;;
-        zstd)            src_var="ZSTD_SOURCE" ;;
-        #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
-        abseil)          src_var="ABSEIL_SOURCE" ;;
-        curl)            src_var="CURL_SOURCE" ;;
-        re2)             src_var="RE2_SOURCE" ;;
-        hyperscan)
-            # hyperscan also builds ragel, clean both
-            if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
-                echo "Cleaning up source: ${RAGEL_SOURCE}"
-                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+    libevent) src_var="LIBEVENT_SOURCE" ;;
+    openssl) src_var="OPENSSL_SOURCE" ;;
+    thrift) src_var="THRIFT_SOURCE" ;;
+    protobuf) src_var="PROTOBUF_SOURCE" ;;
+    gflags) src_var="GFLAGS_SOURCE" ;;
+    glog) src_var="GLOG_SOURCE" ;;
+    gtest) src_var="GTEST_SOURCE" ;;
+    rapidjson) src_var="RAPIDJSON_SOURCE" ;;
+    snappy) src_var="SNAPPY_SOURCE" ;;
+    gperftools) src_var="GPERFTOOLS_SOURCE" ;;
+    zlib) src_var="ZLIB_SOURCE" ;;
+    crc32c) src_var="CRC32C_SOURCE" ;;
+    lz4) src_var="LZ4_SOURCE" ;;
+    bzip) src_var="BZIP_SOURCE" ;;
+    lzo2) src_var="LZO2_SOURCE" ;;
+    zstd) src_var="ZSTD_SOURCE" ;;
+    #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
+    abseil) src_var="ABSEIL_SOURCE" ;;
+    curl) src_var="CURL_SOURCE" ;;
+    re2) src_var="RE2_SOURCE" ;;
+    hyperscan)
+        # hyperscan also builds ragel, clean both
+        if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
+            echo "Cleaning up source: ${RAGEL_SOURCE}"
+            rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+        fi
+        src_var="HYPERSCAN_SOURCE"
+        ;;
+    mysql) src_var="MYSQL_SOURCE" ;;
+    odbc) src_var="ODBC_SOURCE" ;;
+    leveldb) src_var="LEVELDB_SOURCE" ;;
+    brpc) src_var="BRPC_SOURCE" ;;
+    rocksdb) src_var="ROCKSDB_SOURCE" ;;
+    cyrus_sasl) src_var="CYRUS_SASL_SOURCE" ;;
+    librdkafka) src_var="LIBRDKAFKA_SOURCE" ;;
+    flatbuffers) src_var="FLATBUFFERS_SOURCE" ;;
+    arrow) src_var="ARROW_SOURCE" ;;
+    brotli) src_var="BROTLI_SOURCE" ;;
+    cares) src_var="CARES_SOURCE" ;;
+    grpc) src_var="GRPC_SOURCE" ;;
+    s2) src_var="S2_SOURCE" ;;
+    bitshuffle) src_var="BITSHUFFLE_SOURCE" ;;
+    croaringbitmap) src_var="CROARINGBITMAP_SOURCE" ;;
+    fmt) src_var="FMT_SOURCE" ;;
+    parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
+    orc) src_var="ORC_SOURCE" ;;
+    cctz) src_var="CCTZ_SOURCE" ;;
+    jemalloc_doris) src_var="JEMALLOC_DORIS_SOURCE" ;;
+    libunwind) src_var="LIBUNWIND_SOURCE" ;;
+    benchmark) src_var="BENCHMARK_SOURCE" ;;
+    simdjson) src_var="SIMDJSON_SOURCE" ;;
+    nlohmann_json) src_var="NLOHMANN_JSON_SOURCE" ;;
+    libbacktrace) src_var="LIBBACKTRACE_SOURCE" ;;
+    sse2neon) src_var="SSE2NEON_SOURCE" ;;
+    xxhash) src_var="XXHASH_SOURCE" ;;
+    concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
+    fast_float) src_var="FAST_FLOAT_SOURCE" ;;
+    hadoop_libs) src_var="HADOOP_LIBS_SOURCE" ;;
+    hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
+    avx2neon) src_var="AVX2NEON_SOURCE" ;;
+    libdeflate) src_var="LIBDEFLATE_SOURCE" ;;
+    streamvbyte) src_var="STREAMVBYTE_SOURCE" ;;
+    ali_sdk)
+        # ali_sdk internally builds jsoncpp and libuuid, clean all three
+        for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
+            dep_dir="${!dep_var}"
+            if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
+                echo "Cleaning up source: ${dep_dir}"
+                rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
             fi
-            src_var="HYPERSCAN_SOURCE"
-            ;;
-        mysql)           src_var="MYSQL_SOURCE" ;;
-        odbc)            src_var="ODBC_SOURCE" ;;
-        leveldb)         src_var="LEVELDB_SOURCE" ;;
-        brpc)            src_var="BRPC_SOURCE" ;;
-        rocksdb)         src_var="ROCKSDB_SOURCE" ;;
-        cyrus_sasl)      src_var="CYRUS_SASL_SOURCE" ;;
-        librdkafka)      src_var="LIBRDKAFKA_SOURCE" ;;
-        flatbuffers)     src_var="FLATBUFFERS_SOURCE" ;;
-        arrow)           src_var="ARROW_SOURCE" ;;
-        brotli)          src_var="BROTLI_SOURCE" ;;
-        cares)           src_var="CARES_SOURCE" ;;
-        grpc)            src_var="GRPC_SOURCE" ;;
-        s2)              src_var="S2_SOURCE" ;;
-        bitshuffle)      src_var="BITSHUFFLE_SOURCE" ;;
-        croaringbitmap)  src_var="CROARINGBITMAP_SOURCE" ;;
-        fmt)             src_var="FMT_SOURCE" ;;
-        parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
-        orc)             src_var="ORC_SOURCE" ;;
-        cctz)            src_var="CCTZ_SOURCE" ;;
-        jemalloc_doris)  src_var="JEMALLOC_DORIS_SOURCE" ;;
-        libunwind)       src_var="LIBUNWIND_SOURCE" ;;
-        benchmark)       src_var="BENCHMARK_SOURCE" ;;
-        simdjson)        src_var="SIMDJSON_SOURCE" ;;
-        nlohmann_json)   src_var="NLOHMANN_JSON_SOURCE" ;;
-        libbacktrace)    src_var="LIBBACKTRACE_SOURCE" ;;
-        sse2neon)        src_var="SSE2NEON_SOURCE" ;;
-        xxhash)          src_var="XXHASH_SOURCE" ;;
-        concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
-        fast_float)      src_var="FAST_FLOAT_SOURCE" ;;
-        hadoop_libs)     src_var="HADOOP_LIBS_SOURCE" ;;
-        hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
-        avx2neon)        src_var="AVX2NEON_SOURCE" ;;
-        libdeflate)      src_var="LIBDEFLATE_SOURCE" ;;
-        streamvbyte)     src_var="STREAMVBYTE_SOURCE" ;;
-        ali_sdk)
-            # ali_sdk internally builds jsoncpp and libuuid, clean all three
-            for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
-                dep_dir="${!dep_var}"
-                if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
-                    echo "Cleaning up source: ${dep_dir}"
-                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
-                fi
-            done
-            return
-            ;;
-        base64)          src_var="BASE64_SOURCE" ;;
-        azure)           src_var="AZURE_SOURCE" ;;
-        dragonbox)       src_var="DRAGONBOX_SOURCE" ;;
-        icu)             src_var="ICU_SOURCE" ;;
-        jindofs)         src_var="JINDOFS_SOURCE" ;;
-        juicefs)         src_var="JUICEFS_SOURCE" ;;
-        pugixml)         src_var="PUGIXML_SOURCE" ;;
-        paimon_cpp)      src_var="PAIMON_CPP_SOURCE" ;;
-        aws_sdk)         src_var="AWS_SDK_SOURCE" ;;
-        lzma)            src_var="LZMA_SOURCE" ;;
-        xml2)            src_var="XML2_SOURCE" ;;
-        idn)             src_var="IDN_SOURCE" ;;
-        gsasl)           src_var="GSASL_SOURCE" ;;
-        krb5)            src_var="KRB5_SOURCE" ;;
-        hdfs3)           src_var="HDFS3_SOURCE" ;;
-        libdivide)       src_var="LIBDIVIDE_SOURCE" ;;
-        binutils)        src_var="BINUTILS_SOURCE" ;;
-        gettext)         src_var="GETTEXT_SOURCE" ;;
-        # Header-only files, skip cleanup
-        pdqsort|timsort|tsan_header|js_and_css)
-            return
-            ;;
-        *)
-            echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
-            return
-            ;;
+        done
+        return
+        ;;
+    base64) src_var="BASE64_SOURCE" ;;
+    azure) src_var="AZURE_SOURCE" ;;
+    dragonbox) src_var="DRAGONBOX_SOURCE" ;;
+    icu) src_var="ICU_SOURCE" ;;
+    jindofs) src_var="JINDOFS_SOURCE" ;;
+    juicefs) src_var="JUICEFS_SOURCE" ;;
+    pugixml) src_var="PUGIXML_SOURCE" ;;
+    paimon_cpp) src_var="PAIMON_CPP_SOURCE" ;;
+    aws_sdk) src_var="AWS_SDK_SOURCE" ;;
+    lzma) src_var="LZMA_SOURCE" ;;
+    xml2) src_var="XML2_SOURCE" ;;
+    idn) src_var="IDN_SOURCE" ;;
+    gsasl) src_var="GSASL_SOURCE" ;;
+    krb5) src_var="KRB5_SOURCE" ;;
+    hdfs3) src_var="HDFS3_SOURCE" ;;
+    libdivide) src_var="LIBDIVIDE_SOURCE" ;;
+    binutils) src_var="BINUTILS_SOURCE" ;;
+    gettext) src_var="GETTEXT_SOURCE" ;;
+    # Header-only files, skip cleanup
+    pdqsort | timsort | tsan_header | js_and_css)
+        return
+        ;;
+    *)
+        echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
+        return
+        ;;
     esac
 
     src_dir="${!src_var}"
--- thirdparty/download-prebuild-thirdparty.sh.orig
+++ thirdparty/download-prebuild-thirdparty.sh
@@ -28,8 +28,8 @@
 VERSION="$1"
 
 if [ -z "$VERSION" ]; then
-  echo "Usage: sh download-prebuild-thirdparty.sh <version>"
-  exit 1
+    echo "Usage: sh download-prebuild-thirdparty.sh <version>"
+    exit 1
 fi
 
 # ----------------------------
@@ -39,13 +39,13 @@
 ARCH="$(uname -m)"
 
 case "$OS" in
-  Darwin)
+Darwin)
     PLATFORM="darwin"
     ;;
-  Linux)
+Linux)
     PLATFORM="linux"
     ;;
-  *)
+*)
     echo "Unsupported OS: $OS"
     exit 1
     ;;
@@ -55,13 +55,13 @@
 # Detect ARCH
 # ----------------------------
 case "$ARCH" in
-  x86_64|amd64)
+x86_64 | amd64)
     ARCH="x86_64"
     ;;
-  arm64|aarch64)
+arm64 | aarch64)
     ARCH="arm64"
     ;;
-  *)
+*)
     echo "Unsupported architecture: $ARCH"
     exit 1
     ;;
@@ -71,19 +71,19 @@
 # Resolve base release tag
 # ----------------------------
 case "$VERSION" in
-  master|4.0)
+master | 4.0)
     RELEASE_TAG="automation"
     ;;
-  3.1)
+3.1)
     RELEASE_TAG="automation-3.1"
     ;;
-  3.0)
+3.0)
     RELEASE_TAG="automation-3.0"
     ;;
-  2.1)
+2.1)
     RELEASE_TAG="automation-2.1"
     ;;
-  *)
+*)
     echo "Unsupported version: $VERSION"
     exit 1
     ;;
@@ -95,26 +95,26 @@
 FILENAME=""
 
 if [ "$PLATFORM" = "darwin" ]; then
-  FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
+    FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
 else
-  if [ "$ARCH" = "arm64" ]; then
-    case "$VERSION" in
-      master|4.0)
-        FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
-        ;;
-      3.1)
-        FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
-        ;;
-      3.0)
-        FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
-        ;;
-      2.1)
-        FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
-        ;;
-    esac
-  else
-    FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
-  fi
+    if [ "$ARCH" = "arm64" ]; then
+        case "$VERSION" in
+        master | 4.0)
+            FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
+            ;;
+        3.1)
+            FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
+            ;;
+        3.0)
+            FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
+            ;;
+        2.1)
+            FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
+            ;;
+        esac
+    else
+        FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
+    fi
 fi
 
 # ----------------------------
@@ -132,15 +132,14 @@
 # Download
 # ----------------------------
 if command -v curl >/dev/null 2>&1; then
-  curl -fL -o "$FILENAME" "$URL"
+    curl -fL -o "$FILENAME" "$URL"
 elif command -v wget >/dev/null 2>&1; then
-  wget -O "$FILENAME" "$URL"
+    wget -O "$FILENAME" "$URL"
 else
-  echo "Error: curl or wget is required"
-  exit 1
+    echo "Error: curl or wget is required"
+    exit 1
 fi
 
 echo
 echo "Download completed:"
 echo "  $(pwd)/$FILENAME"
-
--- thirdparty/download-thirdparty.sh.orig
+++ thirdparty/download-thirdparty.sh
@@ -272,7 +272,7 @@
     GIT_URL_VAR="${TP_ARCH}_GIT_URL"
     GIT_TAG_VAR="${TP_ARCH}_GIT_TAG"
     SOURCE_VAR="${TP_ARCH}_SOURCE"
-    
+
     GIT_URL="${!GIT_URL_VAR}"
     GIT_TAG="${!GIT_TAG_VAR}"
     SOURCE_DIR="${TP_SOURCE_DIR}/${!SOURCE_VAR}"
@@ -407,7 +407,7 @@
             patch -p1 <"${TP_PATCH_DIR}/rocksdb-5.14.2.patch"
             if [[ "$(uname -s)" == "Darwin" ]]; then
                 patch -p1 <"${TP_PATCH_DIR}/rocksdb-mac-compile-fix.patch"
-            fi 
+            fi
             touch "${PATCHED_MARK}"
         fi
         cd -
@@ -432,8 +432,8 @@
             # GetBufferedSize(), int96 NANO guard, and Thrift_VERSION empty fix.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-paimon.patch"
 
-            # apache-arrow-17.0.0-force-write-int96-timestamps.patch : 
-            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp. 
+            # apache-arrow-17.0.0-force-write-int96-timestamps.patch :
+            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-force-write-int96-timestamps.patch"
             touch "${PATCHED_MARK}"
         fi
@@ -714,9 +714,9 @@
     echo "Finished patching ${PAIMON_CPP_SOURCE}"
 fi
 
-if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]] ; then
+if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]]; then
     cd $TP_SOURCE_DIR/$CCTZ_SOURCE
-    if [[ ! -f "$PATCHED_MARK" ]] ; then
+    if [[ ! -f "$PATCHED_MARK" ]]; then
         for patch_file in "${TP_PATCH_DIR}"/cctz-*; do
             echo "patch ${patch_file}"
             patch -p1 --ignore-whitespace <"${patch_file}"
--- tools/coffeebench-tools/bin/run-queries.sh.orig
+++ tools/coffeebench-tools/bin/run-queries.sh
@@ -73,7 +73,6 @@
     usage
 fi
 
-
 check_prerequest() {
     local CMD=$1
     local NAME=$2
--- tools/export_mysql_rule_to_json.sh.orig
+++ tools/export_mysql_rule_to_json.sh
@@ -37,7 +37,8 @@
 echo ""
 
 # Query and convert to JSON (including long type timestamps)
-QUERY=$(cat <<SQL
+QUERY=$(
+    cat <<SQL
 SELECT
     JSON_ARRAYAGG(
         JSON_OBJECT(
@@ -70,14 +71,14 @@
 fi
 
 # Save to file
-echo "$JSON_DATA" > "$OUTPUT_FILE"
+echo "$JSON_DATA" >"$OUTPUT_FILE"
 
 # Format
-if command -v jq &> /dev/null; then
+if command -v jq &>/dev/null; then
     jq '.' "$OUTPUT_FILE" | awk '
         /^    {/ && NR > 3 {print ""}
         {print}
-    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
+    ' >"${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
 fi
 
 echo "Export completed: $OUTPUT_FILE"
--- tools/tpcds-tools/bin/run-tpcds-queries.sh.orig
+++ tools/tpcds-tools/bin/run-tpcds-queries.sh
@@ -142,15 +142,15 @@
 run_query() {
     local query_file=$1
     local query_name=$2
-    
+
     if [[ ! -f "${query_file}" ]]; then
         return
     fi
-    
+
     local cold=0
     local hot1=0
     local hot2=0
-    
+
     echo -ne "${query_name}\t" | tee -a result.csv
     start=$(date +%s%3N)
     if ! output=$(mysql -h"${FE_HOST}" -u"${USER}" -P"${FE_QUERY_PORT}" -D"${DB}" --comments \
@@ -201,7 +201,7 @@
 for i in ${query_array[@]}; do
     # Run main query file
     run_query "${TPCDS_QUERIES_DIR}/query${i}.sql" "query${i}"
-    
+
     # Run variant query file if exists
     run_query "${TPCDS_QUERIES_DIR}/query${i}_1.sql" "query${i}_1"
 done
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt  -w filename


@github-actions

Copy link
Copy Markdown

sh-checker report

To get the full details, please check in the job output.

shellcheck errors

'shellcheck ' returned error 1 finding the following syntactical issues:

----------

In bin/flight_record_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In bin/profile_fe.sh line 47:
FE_PID=$(${JAVA_HOME}/bin/jps | grep DorisFE | awk '{print $1}')
         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
FE_PID=$("${JAVA_HOME}"/bin/jps | grep DorisFE | awk '{print $1}')


In build-support/clang-format.sh line 43:
    export PATH=$(brew --prefix llvm@16)/bin:$PATH
           ^--^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                                             ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    export PATH=$(brew --prefix llvm@16)/bin:${PATH}


In build-support/run-clang-tidy.sh line 187:
    if [[ -z "$f" ]]; then
              ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ -z "${f}" ]]; then


In build-support/run-clang-tidy.sh line 190:
    if ! echo "$f" | grep -qE "\.(${CPP_EXTENSIONS})$"; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if ! echo "${f}" | grep -qE "\.(${CPP_EXTENSIONS})$"; then


In build-support/run-clang-tidy.sh line 195:
        if [[ "$f" == *"${pattern}"* ]]; then
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${f}" == *"${pattern}"* ]]; then


In build-support/run-clang-tidy.sh line 200:
    if [[ "${excluded}" == "false" && -f "$f" ]]; then
                                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${excluded}" == "false" && -f "${f}" ]]; then


In build-support/run-clang-tidy.sh line 201:
        FILTERED_FILES+=("$f")
                          ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        FILTERED_FILES+=("${f}")


In build-support/run-clang-tidy.sh line 246:
        if [[ "$line" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ "${line}" =~ ^diff\ --git\ a/(.+)\ b/(.+)$ ]]; then


In build-support/run-clang-tidy.sh line 248:
        elif [[ "$line" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        elif [[ "${line}" =~ ^@@.*\+([0-9]+)(,([0-9]+))?.* ]]; then


In build-support/run-clang-tidy.sh line 310:
    OUTPUT=$("${CLANG_TIDY}" "${TIDY_ARGS[@]}" "${f}" 2>&1) || TIDY_EXIT=$?
                                                               ^-------^ SC2034 (warning): TIDY_EXIT appears unused. Verify use (or export if used externally).


In build-support/run-clang-tidy.sh line 341:
                if [[ "$wline" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then
                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
                if [[ "${wline}" =~ ^([^:]+):([0-9]+):[0-9]+:\ (warning|error): ]]; then


In build.sh line 42:
if [[ "${DORIS_BUILD_PROFILE}" == "1" ]]; then
       ^--------------------^ SC2154 (warning): DORIS_BUILD_PROFILE is referenced but not assigned.


In build.sh line 264:
            BUILD_SPARK_DPP=1
            ^-------------^ SC2034 (warning): BUILD_SPARK_DPP appears unused. Verify use (or export if used externally).


In build.sh line 586:
FEAT+=($([[ -n "${WITH_TDE_DIR}" ]] && echo "+TDE" || echo "-TDE"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 587:
FEAT+=($([[ "${ENABLE_HDFS_STORAGE_VAULT:-OFF}" == "ON" ]] && echo "+HDFS_STORAGE_VAULT" || echo "-HDFS_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 588:
FEAT+=($([[ ${BUILD_UI} -eq 1 ]] && echo "+UI" || echo "-UI"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 589:
FEAT+=($([[ "${BUILD_AZURE}" == "ON" ]] && echo "+AZURE_BLOB,+AZURE_STORAGE_VAULT" || echo "-AZURE_BLOB,-AZURE_STORAGE_VAULT"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 590:
FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 591:
FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
       ^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).


In build.sh line 593:
export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
       ^----------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In build.sh line 757:
        "${CMAKE_USE_CCACHE}" \
         ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
         ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In build.sh line 759:
        -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                    ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In build.sh line 917:
        if [ ! -d "${fs_module_dir}" ]; then
           ^-------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
        if [[ ! -d "${fs_module_dir}" ]]; then


In build.sh line 929:
    if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                            ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ "${TARGET_SYSTEM}" = "Darwin" ]] || [[ "${TARGET_SYSTEM}" = "Linux" ]]; then


In build_profile.sh line 53:
        [[ -z "$f" || ! -f "$f" ]] && continue
               ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ -z "${f}" || ! -f "${f}" ]] && continue


In build_profile.sh line 56:
            mtime=$(stat -f %m "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -f %m "${f}")


In build_profile.sh line 58:
            mtime=$(stat -c %Y "$f")
                                ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            mtime=$(stat -c %Y "${f}")


In build_profile.sh line 60:
        [[ "$mtime" -gt "$last_time" ]] && echo "$f"
            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                 ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${mtime}" -gt "${last_time}" ]] && echo "${f}"


In build_profile.sh line 124:
        [[ "$key" == "===FILES===" ]] && break
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == "===FILES===" ]] && break


In build_profile.sh line 125:
        [[ "$key" == _BP_* ]] || continue
            ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        [[ "${key}" == _BP_* ]] || continue


In cloud/script/build_fdb.sh line 17:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In cloud/script/build_fdb.sh line 221:
if [ "$FDB_ENABLE_JAVA" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_JAVA is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_JAVA}" = "true" ]]; then


In cloud/script/build_fdb.sh line 224:
if [ "$FDB_ENABLE_GO" = "true" ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------^ SC2154 (warning): FDB_ENABLE_GO is referenced but not assigned.
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_GO}" = "true" ]]; then


In cloud/script/build_fdb.sh line 227:
if [ "$FDB_ENABLE_SWIFT" = "true" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2154 (warning): FDB_ENABLE_SWIFT is referenced but not assigned.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_SWIFT}" = "true" ]]; then


In cloud/script/build_fdb.sh line 230:
if [ "$FDB_ENABLE_RUBY" = "true" ]; then
   ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2154 (warning): FDB_ENABLE_RUBY is referenced but not assigned.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FDB_ENABLE_RUBY}" = "true" ]]; then


In cloud/script/build_fdb.sh line 243:
if [ "$USE_JEMALLOC" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_JEMALLOC}" = true ]]; then


In cloud/script/build_fdb.sh line 249:
if [ "$USE_LTO" = true ]; then
   ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${USE_LTO}" = true ]]; then


In cloud/script/build_fdb.sh line 255:
if [ "$FULL_DEBUG_SYMBOLS" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FULL_DEBUG_SYMBOLS}" = true ]]; then


In cloud/script/build_fdb.sh line 259:
if [ "$BUILD_DOCUMENTATION" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_DOCUMENTATION}" = true ]]; then


In cloud/script/build_fdb.sh line 263:
if [ "$WITH_ROCKSDB" = true ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_ROCKSDB}" = true ]]; then


In cloud/script/build_fdb.sh line 267:
if [ "$WITH_GRPC" = true ]; then
   ^---------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${WITH_GRPC}" = true ]]; then


In cloud/script/build_fdb.sh line 272:
if [ "$BUILD_AWS_BACKUP" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AWS_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 276:
if [ "$BUILD_AZURE_BACKUP" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_AZURE_BACKUP}" = true ]]; then


In cloud/script/build_fdb.sh line 281:
if [ "$BUILD_C_BINDING" = true ]; then
   ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_C_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 285:
if [ "$BUILD_PYTHON_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_PYTHON_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 289:
if [ "$BUILD_JAVA_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_JAVA_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 293:
if [ "$BUILD_GO_BINDING" = true ]; then
   ^----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_GO_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 297:
if [ "$BUILD_SWIFT_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_SWIFT_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 301:
if [ "$BUILD_RUBY_BINDING" = true ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${BUILD_RUBY_BINDING}" = true ]]; then


In cloud/script/build_fdb.sh line 308:
echo "  Version:      $VERSION"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Version:      ${VERSION}"


In cloud/script/build_fdb.sh line 309:
echo "  Build Dir:    $BUILD_DIR"
                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Build Dir:    ${BUILD_DIR}"


In cloud/script/build_fdb.sh line 310:
echo "  Source Dir:   $SRC_DIR"
                      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Source Dir:   ${SRC_DIR}"


In cloud/script/build_fdb.sh line 311:
echo "  Docker Image: $DOCKER_IMAGE"
                      ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Docker Image: ${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 312:
echo "  Update Repo:  $UPDATE_REPO"
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Update Repo:  ${UPDATE_REPO}"


In cloud/script/build_fdb.sh line 316:
echo "  JEMALLOC:       $USE_JEMALLOC"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  JEMALLOC:       ${USE_JEMALLOC}"


In cloud/script/build_fdb.sh line 317:
echo "  LTO:            $USE_LTO"
                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  LTO:            ${USE_LTO}"


In cloud/script/build_fdb.sh line 318:
echo "  Debug Symbols:  $FULL_DEBUG_SYMBOLS"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Debug Symbols:  ${FULL_DEBUG_SYMBOLS}"


In cloud/script/build_fdb.sh line 319:
echo "  Documentation:  $BUILD_DOCUMENTATION"
                        ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Documentation:  ${BUILD_DOCUMENTATION}"


In cloud/script/build_fdb.sh line 320:
echo "  RocksDB:        $WITH_ROCKSDB"
                        ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  RocksDB:        ${WITH_ROCKSDB}"


In cloud/script/build_fdb.sh line 321:
echo "  gRPC:           $WITH_GRPC"
                        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  gRPC:           ${WITH_GRPC}"


In cloud/script/build_fdb.sh line 322:
echo "  AWS Backup:     $BUILD_AWS_BACKUP"
                        ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  AWS Backup:     ${BUILD_AWS_BACKUP}"


In cloud/script/build_fdb.sh line 323:
echo "  Azure Backup:   $BUILD_AZURE_BACKUP"
                        ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Azure Backup:   ${BUILD_AZURE_BACKUP}"


In cloud/script/build_fdb.sh line 327:
echo "  C:      $BUILD_C_BINDING"
                ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  C:      ${BUILD_C_BINDING}"


In cloud/script/build_fdb.sh line 328:
echo "  Python: $BUILD_PYTHON_BINDING"
                ^-------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Python: ${BUILD_PYTHON_BINDING}"


In cloud/script/build_fdb.sh line 329:
echo "  Java:   $BUILD_JAVA_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Java:   ${BUILD_JAVA_BINDING}"


In cloud/script/build_fdb.sh line 330:
echo "  Go:     $BUILD_GO_BINDING"
                ^---------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Go:     ${BUILD_GO_BINDING}"


In cloud/script/build_fdb.sh line 331:
echo "  Swift:  $BUILD_SWIFT_BINDING"
                ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Swift:  ${BUILD_SWIFT_BINDING}"


In cloud/script/build_fdb.sh line 332:
echo "  Ruby:   $BUILD_RUBY_BINDING"
                ^-----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  Ruby:   ${BUILD_RUBY_BINDING}"


In cloud/script/build_fdb.sh line 336:
echo "$CMAKE_OPTIONS" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'
      ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${CMAKE_OPTIONS}" | tr ' ' '\n' | grep -v '^$' | sed 's/^/  /'


In cloud/script/build_fdb.sh line 341:
docker pull "$DOCKER_IMAGE"
             ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
docker pull "${DOCKER_IMAGE}"


In cloud/script/build_fdb.sh line 344:
if [ -d "$SRC_DIR" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -d "${SRC_DIR}" ]]; then


In cloud/script/build_fdb.sh line 346:
    if [ "$UPDATE_REPO" = true ]; then
       ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${UPDATE_REPO}" = true ]]; then


In cloud/script/build_fdb.sh line 348:
        cd "$SRC_DIR"
            ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 357:
    git clone "$REPO_URL" "$SRC_DIR"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    git clone "${REPO_URL}" "${SRC_DIR}"


In cloud/script/build_fdb.sh line 361:
echo -e "${YELLOW}Checking out version: $VERSION${NC}"
                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo -e "${YELLOW}Checking out version: ${VERSION}${NC}"


In cloud/script/build_fdb.sh line 362:
cd "$SRC_DIR"
    ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${SRC_DIR}"


In cloud/script/build_fdb.sh line 363:
git checkout "$VERSION"
              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
git checkout "${VERSION}"


In cloud/script/build_fdb.sh line 367:
mkdir -p "$BUILD_DIR"
          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
mkdir -p "${BUILD_DIR}"


In cloud/script/build_fdb.sh line 372:
    -v "$(pwd)/$SRC_DIR:/foundationdb/src:ro" \
               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${SRC_DIR}:/foundationdb/src:ro" \


In cloud/script/build_fdb.sh line 373:
    -v "$(pwd)/$BUILD_DIR:/foundationdb/build" \
               ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -v "$(pwd)/${BUILD_DIR}:/foundationdb/build" \


In cloud/script/build_fdb.sh line 374:
    "$DOCKER_IMAGE" \
     ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "${DOCKER_IMAGE}" \


In cloud/script/build_fdb.sh line 378:
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja $CMAKE_OPTIONS /foundationdb/src && \
                                                                                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        CC=clang CXX=clang++ LD=lld cmake -B build -D USE_LD=LLD -D USE_LIBCXX=1 -G Ninja ${CMAKE_OPTIONS} /foundationdb/src && \


In cloud/script/build_fdb.sh line 384:
echo "Artifacts location: $(pwd)/$BUILD_DIR"
                                 ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Artifacts location: $(pwd)/${BUILD_DIR}"


In cloud/script/run_all_tests.sh line 175:
exit ${ret}
     ^----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
exit "${ret}"


In cloud/script/start.sh line 59:
  source "${custom_start}" 
         ^---------------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.


In docker/thirdparties/docker-compose/common/hive-configure.sh line 22:
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
                                                               ^-----------^ SC2006 (style): Use $(...) notation instead of legacy backticks `...`.

Did you mean: 
export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}


In docker/thirdparties/docker-compose/common/hive-configure.sh line 29:
  local entry="<property><name>$name</name><value>${value}</value></property>"
                               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local entry="<property><name>${name}</name><value>${value}</value></property>"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 30:
  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
        ^----------^ SC2155 (warning): Declare and assign separately to avoid masking return values.
                            ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  local escapedEntry=$(echo "${entry}" | sed 's/\//\\\//g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 31:
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
                                                        ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" "${path}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 42:
    echo "Configuring $module"
                      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Configuring ${module}"


In docker/thirdparties/docker-compose/common/hive-configure.sh line 43:
    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                                                                                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix="${envPrefix}"); do 


In docker/thirdparties/docker-compose/common/hive-configure.sh line 44:
        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
             ^-- SC2006 (style): Use $(...) notation instead of legacy backticks `...`.
                   ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        name=$(echo "${c}" | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')


In docker/thirdparties/docker-compose/common/hive-configure.sh line 47:
        echo " - Setting $name=$  "
                         ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo " - Setting ${name}=$  "


In docker/thirdparties/docker-compose/common/hive-configure.sh line 48:
        addProperty $path $name "$value"
                    ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^---^ SC2086 (info): Double quote to prevent globbing and word splitting.
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                 ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        addProperty "${path}" "${name}" "${value}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 27:
    echo "" > "$output_file"
               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "" > "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 31:
        if [ -n "$type_value" ]; then
           ^------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                 ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        if [[ -n "${type_value}" ]]; then


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 32:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                                               ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_type\": \"${type_value}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 34:
            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
                                             ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            echo "{\"index\": {\"_index\": \"${index_name}\", \"_id\": \"${id_prefix}${id}\"}}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 36:
        echo "$line"  >> "$output_file"
              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "${line}"  >> "${output_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 38:
    done < "$data_file"
            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    done < "${data_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 79:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 80:
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_5_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 119:
generate_bulk_request "composite_type_array" "doc" "item_" "$array_data_file" "$bulk_request_file"
                                                            ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                               ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 120:
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_6_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 126:
curl "http://${ES_7_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_7_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 172:
generate_bulk_request "composite_type_array" "_doc" "item_" "$array_data_file" "$bulk_request_file"
                                                             ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "_doc" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 173:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 182:
generate_bulk_request "test_keyword_array" "_doc" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                           ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                      ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "_doc" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 183:
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_7_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 187:
curl "http://${ES_8_HOST}:9200/test1" -H "Content-Type:application/json" -X PUT -d "@/mnt/scripts/index/es7_test1.json"
             ^----------^ SC2154 (warning): ES_8_HOST is referenced but not assigned.


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 223:
generate_bulk_request "composite_type_array" "" "item_" "$array_data_file" "$bulk_request_file"
                                                         ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                            ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "composite_type_array" "" "item_" "${array_data_file}" "${bulk_request_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 224:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$bulk_request_file" -H "Content-Type: application/json"
                                                              ^----------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${bulk_request_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 233:
generate_bulk_request "test_keyword_array" "" "item_" "$keyword_array_data_file" "$keyword_array_bulk_file"
                                                       ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                  ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
generate_bulk_request "test_keyword_array" "" "item_" "${keyword_array_data_file}" "${keyword_array_bulk_file}"


In docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh line 234:
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@$keyword_array_bulk_file" -H "Content-Type: application/json"
                                                              ^----------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
curl -X POST "http://${ES_8_HOST}:9200/_bulk" --data-binary "@${keyword_array_bulk_file}" -H "Content-Type: application/json"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 21:
. /mnt/scripts/bootstrap/bootstrap-groups.sh
  ^-- SC1091 (info): Not following: /mnt/scripts/bootstrap/bootstrap-groups.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 27:
    [ -e "$file" ] || continue
    ^------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    [[ -e "${file}" ]] || continue


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 28:
    tar -xzvf "$file" -C "$AUX_LIB"
               ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    tar -xzvf "${file}" -C "${AUX_LIB}"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 53:
while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
        ^-- SC2091 (warning): Remove surrounding $() to avoid executing output (or use eval if intentional).


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 57:
if [[ ${NEED_LOAD_DATA} = "0" ]]; then
      ^---------------^ SC2154 (warning): NEED_LOAD_DATA is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 64:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 69:
    echo "Script: create_paimon_table.hql executed in $EXECUTION_TIME seconds"
                                                      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Script: create_paimon_table.hql executed in ${EXECUTION_TIME} seconds"


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 88:
    printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                     ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                      ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh line 164:
    printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
                                                                                            ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 28:
    relative_archive_path="${archive_path#${CUR_DIR}/}"
                                          ^--------^ SC2295 (info): Expansions inside ${..} need to be quoted separately, otherwise they match as patterns.

Did you mean: 
    relative_archive_path="${archive_path#"${CUR_DIR}"/}"


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 35:
    printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
                                                             ^--------------^ SC2154 (warning): LOAD_PARALLEL is referenced but not assigned.
                                                                                       ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 56:
        curl -O "https://${s3BucketName}.${s3Endpoint}/regression/datalake/pipeline_data/${remote_path}"
                         ^-------------^ SC2154 (warning): s3BucketName is referenced but not assigned.
                                         ^-----------^ SC2154 (warning): s3Endpoint is referenced but not assigned.


In docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh line 108:
cd ${CUR_DIR}/auxlib
   ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
cd "${CUR_DIR}"/auxlib


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 85:
METASTORE_HOST=$(echo "${HIVE_METASTORE_URIS}" | sed 's|thrift://||' | cut -d: -f1)
                       ^--------------------^ SC2154 (warning): HIVE_METASTORE_URIS is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 90:
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
      ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
while [[ "${RETRY_COUNT}" -lt "${MAX_RETRIES}" ]]; do


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 103:
    if [ $RETRY_COUNT -eq 0 ]; then
       ^--------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${RETRY_COUNT}" -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 111:
  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
     ^-----------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
  if [[ $((RETRY_COUNT % 10)) -eq 0 ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 117:
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${RETRY_COUNT}" -ge "${MAX_RETRIES}" ]]; then


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 127:
    <value>${S3_ENDPOINT}</value>
           ^------------^ SC2154 (warning): S3_ENDPOINT is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 131:
    <value>${MINIO_ROOT_USER}</value>
           ^----------------^ SC2154 (warning): MINIO_ROOT_USER is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 135:
    <value>${MINIO_ROOT_PASSWORD}</value>
           ^--------------------^ SC2154 (warning): MINIO_ROOT_PASSWORD is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 165:
    <value>s3a://${HUDI_BUCKET}/warehouse</value>
                 ^------------^ SC2154 (warning): HUDI_BUCKET is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 171:
HUDI_BUNDLE_JAR_FILE=$(download_jar "hudi-spark3.5-bundle_2.12" "${HUDI_BUNDLE_VERSION}" "${HUDI_BUNDLE_URL}")
                                                                 ^--------------------^ SC2154 (warning): HUDI_BUNDLE_VERSION is referenced but not assigned.
                                                                                          ^----------------^ SC2154 (warning): HUDI_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 176:
HADOOP_AWS_JAR=$(download_jar "hadoop-aws" "${HADOOP_AWS_VERSION}" "${HADOOP_AWS_URL}")
                                            ^-------------------^ SC2154 (warning): HADOOP_AWS_VERSION is referenced but not assigned.
                                                                    ^---------------^ SC2154 (warning): HADOOP_AWS_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 181:
AWS_SDK_BUNDLE_JAR=$(download_jar "aws-java-sdk-bundle" "${AWS_SDK_BUNDLE_VERSION}" "${AWS_SDK_BUNDLE_URL}")
                                                         ^-----------------------^ SC2154 (warning): AWS_SDK_BUNDLE_VERSION is referenced but not assigned.
                                                                                     ^-------------------^ SC2154 (warning): AWS_SDK_BUNDLE_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 185:
POSTGRESQL_JDBC_JAR=$(download_jar "postgresql" "${POSTGRESQL_JDBC_VERSION}" "${POSTGRESQL_JDBC_URL}")
                                                 ^------------------------^ SC2154 (warning): POSTGRESQL_JDBC_VERSION is referenced but not assigned.
                                                                              ^--------------------^ SC2154 (warning): POSTGRESQL_JDBC_URL is referenced but not assigned.


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 209:
  ${SPARK_HOME}/bin/spark-sql \
  ^-----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
  "${SPARK_HOME}"/bin/spark-sql \


In docker/thirdparties/docker-compose/hudi/scripts/init.sh line 229:
touch ${SUCCESS_FILE}
      ^-------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
touch "${SUCCESS_FILE}"


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 19:
source /usr/local/common/hive-configure.sh
       ^-- SC1091 (info): Not following: /usr/local/common/hive-configure.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 20:
source /usr/local/common/event-hook.sh
       ^-----------------------------^ SC1091 (info): Not following: /usr/local/common/event-hook.sh: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 34:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 36:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 75:
if [ $i -eq 60 ]; then
   ^-----------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
     ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
     ^-- SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${i}" -eq 60 ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 82:
if [ "$1" == "1" ]; then
   ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
if [[ "$1" == "1" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 84:
elif [ "$1" == "2" ]; then
     ^-------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
elif [[ "$1" == "2" ]]; then


In docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh line 91:
if [[ ${enablePaimonHms} == "true" ]]; then
      ^----------------^ SC2154 (warning): enablePaimonHms is referenced but not assigned.


In docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh line 34:
if [ "$FAILED" == "" ]; then
   ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${FAILED}" == "" ]]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 27:
echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
                                                                ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Waiting for Polaris health check at http://${HOST}:${PORT}/q/health ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 28:
for i in $(seq 1 120); do
^-^ SC2034 (warning): i appears unused. Verify use (or export if used externally).


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 29:
  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if curl -sSf "http://${HOST}:8182/q/health" >/dev/null; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 38:
  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/catalog/v1/oauth/tokens" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 40:
  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
                                              ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "grant_type=client_credentials&client_id=${USER}&client_secret=${PASS}&scope=PRINCIPAL_ROLE:ALL")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 43:
TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
                     ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
TOKEN=$(printf "%s" "${TOKEN_JSON}" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 45:
if [ -z "$TOKEN" ]; then
         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ -z "${TOKEN}" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 46:
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
                                                                      ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: ${TOKEN_JSON}" >&2


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 50:
echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
                                       ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                            ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Creating catalog '${CATALOG}' with base '${BASE_LOCATION}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 53:
  "name": "$CATALOG",
           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  "name": "${CATALOG}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 56:
    "default-base-location": "$BASE_LOCATION",
                              ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "default-base-location": "${BASE_LOCATION}",


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 66:
    "allowedLocations": ["$BASE_LOCATION"]
                          ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    "allowedLocations": ["${BASE_LOCATION}"]


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 74:
  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/catalogs" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 75:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 77:
  -d "$CREATE_PAYLOAD")
      ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -d "${CREATE_PAYLOAD}")


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 79:
if [ "$HTTP_CODE" = "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" = "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 81:
elif [ "$HTTP_CODE" = "409" ]; then
        ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
elif [ "${HTTP_CODE}" = "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 84:
  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
                                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Create catalog failed (HTTP ${HTTP_CODE}):"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 89:
echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "[polaris-init] Setting up permissions for catalog '${CATALOG}' ..."


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 94:
  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                        ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/catalogs/${CATALOG}/catalog-roles/catalog_admin/grants" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 95:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 99:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 100:
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
                                                                            ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 107:
  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
                  ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X POST "http://${HOST}:${PORT}/api/management/v1/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 108:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 112:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ] && [ "${HTTP_CODE}" != "409" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 113:
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
                                                                          ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 120:
  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principal-roles/data_engineer/catalog-roles/${CATALOG}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 121:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 125:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 126:
  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
                                                              ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to connect roles (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 133:
  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
                 ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -X PUT "http://${HOST}:${PORT}/api/management/v1/principals/root/principal-roles" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 134:
  -H "Authorization: Bearer $TOKEN" \
                            ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  -H "Authorization: Bearer ${TOKEN}" \


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 138:
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                   ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [ "${HTTP_CODE}" != "200" ] && [ "${HTTP_CODE}" != "201" ]; then


In docker/thirdparties/docker-compose/polaris/init-catalog.sh line 139:
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
                                                                                  ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP ${HTTP_CODE})"


In docker/thirdparties/docker-compose/ranger/ranger-admin/ranger-entrypoint.sh line 24:
cd $RANGER_HOME
   ^----------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.
   ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.
   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cd "${RANGER_HOME}"


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 16:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh line 19:
if [ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]; then
   ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
           ^------------^ SC2154 (warning): RANGER_HOME is referenced but not assigned.

Did you mean: 
if [[ ! -d "${RANGER_HOME}/ews/webapp/WEB-INF/classes/ranger-plugins/doris" ]]; then


In docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh line 15:
#!/bin/bash
^-- SC1128 (error): The shebang must be on the first line. Delete blanks and move comments.


In docker/thirdparties/jindofs-helpers.sh line 29:
    local target_system="$1"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 30:
    local target_arch="$2"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 50:
    local jar_name="$1"
    ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 51:
    local pattern
    ^-----------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 53:
        case "${jar_name}" in
        ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In docker/thirdparties/jindofs-helpers.sh line 54:
            ${pattern})
            ^--------^ SC2254 (warning): Quote expansions in case patterns to match literally rather than as a glob.


In docker/thirdparties/jindofs-helpers.sh line 63:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 64:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 74:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 75:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 76:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 77:
    local count=0
    ^---------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 90:
    local jindofs_dir="$1"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 91:
    local target_dir="$2"
    ^--------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 92:
    local target_system="$3"
    ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 93:
    local target_arch="$4"
    ^---------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 94:
    local jar
    ^-------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/jindofs-helpers.sh line 95:
    local platform_jar_pattern
    ^------------------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In docker/thirdparties/run-thirdparties-docker.sh line 58:
export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
       ^-----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 135:
    echo ${COMPONENTS}
         ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    echo "${COMPONENTS}"


In docker/thirdparties/run-thirdparties-docker.sh line 167:
RUN_OCENABASE=0
^-----------^ SC2034 (warning): RUN_OCENABASE appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 538:
        local backup_dir=/home/work/pipline/backup_center
              ^--------^ SC2034 (warning): backup_dir appears unused. Verify use (or export if used externally).


In docker/thirdparties/run-thirdparties-docker.sh line 543:
            echo "docker exec "${container_id}" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"
                               ^-------------^ SC2027 (warning): The surrounding quotes actually unquote this. Remove or escape them.
                               ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
            echo "docker exec ""${container_id}"" bash -c echo '/opt/bitnami/kafka/bin/kafka-topics.sh --create --bootstrap-server '${ip_host}:19193' --topic '${topic}'"


In docker/thirdparties/run-thirdparties-docker.sh line 571:
    sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 573:
        sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 591:
    sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
                           ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down


In docker/thirdparties/run-thirdparties-docker.sh line 593:
        sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
                               ^--------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
        sudo docker compose -p "${CONTAINER_UID}"hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait


In docker/thirdparties/run-thirdparties-docker.sh line 629:
    . "${HUDI_DIR}"/hudi.env
      ^--------------------^ SC1091 (info): Not following: ./hudi.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 673:
        mv *.tbl ../lakesoul/test_files/tpch/data
           ^-- SC2035 (info): Use ./*glob* or -- *glob* so names with dashes won't become options.


In docker/thirdparties/run-thirdparties-docker.sh line 675:
        export TPCH_DATA=$(realpath lakesoul/test_files/tpch/data)
               ^-------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 691:
        . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
          ^-- SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location.
                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        . "${ROOT}"/docker-compose/kerberos/kerberos"${i}"_settings.env


In docker/thirdparties/run-thirdparties-docker.sh line 692:
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
                                                                                                                       ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-"${i}".env


In docker/thirdparties/run-thirdparties-docker.sh line 693:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/my.cnf


In docker/thirdparties/run-thirdparties-docker.sh line 694:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                    ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/kdc.conf


In docker/thirdparties/run-thirdparties-docker.sh line 695:
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                                     ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos"${i}"/krb5.conf


In docker/thirdparties/run-thirdparties-docker.sh line 731:
    . "${POLARIS_DIR}/polaris_settings.env"
      ^-- SC1091 (info): Not following: ./polaris_settings.env: openBinaryFile: does not exist (No such file or directory)


In docker/thirdparties/run-thirdparties-docker.sh line 780:
if [[ "$NEED_LOAD_DATA" -eq 1 ]]; then
       ^-------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${NEED_LOAD_DATA}" -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 786:
if [[ $need_prepare_hive_data -eq 1 ]]; then
      ^---------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ ${need_prepare_hive_data} -eq 1 ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 794:
    export HIVE_BOOTSTRAP_GROUPS="$(bootstrap_merge_groups "${prepare_hive_bootstrap_groups[@]}")"
           ^-------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In docker/thirdparties/run-thirdparties-docker.sh line 912:
    wait "${pids[$compose]}" || status=$?
                 ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    wait "${pids[${compose}]}" || status=$?


In docker/thirdparties/run-thirdparties-docker.sh line 913:
    if [ $status -ne 0 ] && [ $compose != "db2" ]; then
       ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^-----^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                            ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                              ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ "${status}" -ne 0 ]] && [[ "${compose}" != "db2" ]]; then


In docker/thirdparties/run-thirdparties-docker.sh line 914:
        echo "docker $compose started failed with status $status"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                         ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        echo "docker ${compose} started failed with status ${status}"


In docker/thirdparties/run-thirdparties-docker.sh line 916:
        cat start_${compose}.log || true
                  ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
        cat start_"${compose}".log || true


In env.sh line 369:
    CMAKE_USE_CCACHE_C="-DCMAKE_C_COMPILER_LAUNCHER=ccache"
    ^----------------^ SC2034 (warning): CMAKE_USE_CCACHE_C appears unused. Verify use (or export if used externally).


In hooks/setup_worktree.sh line 21:
cp "$ROOT_WORKSPACE_PATH/custom_env.sh" custom_env.sh
    ^------------------^ SC2154 (warning): ROOT_WORKSPACE_PATH is referenced but not assigned.
    ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp "${ROOT_WORKSPACE_PATH}/custom_env.sh" custom_env.sh


In hooks/setup_worktree.sh line 24:
cp -r "$ROOT_WORKSPACE_PATH/thirdparty/installed" thirdparty/
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -r "${ROOT_WORKSPACE_PATH}/thirdparty/installed" thirdparty/


In hooks/setup_worktree.sh line 27:
cp -f "$ROOT_WORKSPACE_PATH/build.sh" build.sh
       ^------------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
cp -f "${ROOT_WORKSPACE_PATH}/build.sh" build.sh


In post-build.sh line 196:
    if [[ "$(echo "${DISABLE_BUILD_JUICEFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JUICEFS is referenced but not assigned.


In post-build.sh line 203:
    if [[ "$(echo "${DISABLE_BUILD_JINDOFS}" | tr '[:lower:]' '[:upper:]')" == "OFF" ]]; then
                   ^----------------------^ SC2154 (warning): DISABLE_BUILD_JINDOFS is referenced but not assigned.


In regression-test/pipeline/cloud_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 67:
        echo "regressionAliyunStsRegion='${regressionAliyunStsRegion:-cn-hongkong}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 68:
        echo "regressionAliyunStsRoleArn='${regressionAliyunStsRoleArn:-}'"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 70:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 73:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 74:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 75:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh --stop; then echo; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 76:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c kafka; then echo; else echo "ERROR: start kafka docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                          ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                                     ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 77:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 78:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 79:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 87:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 89:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 93:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 94:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 97:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 98:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 99:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 100:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 101:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 102:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/cloud_p0/run.sh line 104:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/common/doris-utils.sh line 1013:
    local fe_pid=$(pgrep -f "org.apache.doris.DorisFE")
          ^----^ SC2155 (warning): Declare and assign separately to avoid masking return values.


In regression-test/pipeline/common/doris-utils.sh line 1015:
    jstack $fe_pid >${DORIS_HOME}/fe/log/fe_stack.txt
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack ${fe_pid} >${DORIS_HOME}/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1016:
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof $fe_pid
                                                            ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file=${DORIS_HOME}/fe/log/DorisFE.hprof ${fe_pid}


In regression-test/pipeline/common/doris-utils.sh line 1018:
    jstack $fe_pid >"${DORIS_HOME}"/fe/log/fe_stack.txt
           ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
           ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jstack "${fe_pid}" >"${DORIS_HOME}"/fe/log/fe_stack.txt


In regression-test/pipeline/common/doris-utils.sh line 1019:
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof $fe_pid
                                                              ^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                              ^-----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jmap -dump:live,file="${DORIS_HOME}"/fe/log/DorisFE.hprof "${fe_pid}"


In regression-test/pipeline/common/stage-timer.sh line 59:
            "${STAGE_TIMER_STAGE_NAMES[$index]}" \
                                       ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_NAMES[${index}]}" \


In regression-test/pipeline/common/stage-timer.sh line 60:
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[$index]}")" \
                                                                        ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "$(stage_timer__format_seconds "${STAGE_TIMER_STAGE_SECONDS[${index}]}")" \


In regression-test/pipeline/common/stage-timer.sh line 61:
            "${STAGE_TIMER_STAGE_SECONDS[$index]}"
                                         ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
            "${STAGE_TIMER_STAGE_SECONDS[${index}]}"


In regression-test/pipeline/external/external-stage-timer.sh line 21:
    return 1 2>/dev/null || exit 1
                            ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/external/external-stage-timer.sh line 52:
    case "${current_command}" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.


In regression-test/pipeline/external/external-stage-timer.sh line 78:
    local current_command="${1:-$BASH_COMMAND}"
                                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    local current_command="${1:-${BASH_COMMAND}}"


In regression-test/pipeline/vault_p0/run.sh line 55:
    set -e
    ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 56:
    shopt -s inherit_errexit
    ^----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 58:
    cd "${teamcity_build_checkoutDir}" || return 1
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                          ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 59:
    {
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 60:
        echo # add a new line to prevent two config items from being combined, which will cause the error "No signature of method"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 61:
        echo "ak='${s3SourceAk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 62:
        echo "sk='${s3SourceSk}'"
        ^-----------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 63:
        echo "hwYunAk='${hwYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 64:
        echo "hwYunSk='${hwYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 65:
        echo "txYunAk='${txYunAk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 66:
        echo "txYunSk='${txYunSk:-}'"
        ^---------------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 68:
    cp -f "${teamcity_build_checkoutDir}"/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 72:
    sed -i "s/^CONTAINER_UID=\"doris--\"/CONTAINER_UID=\"doris-external--\"/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 73:
    sed -i "s/oss-cn-hongkong.aliyuncs.com/oss-cn-hongkong-internal.aliyuncs.com/" "${teamcity_build_checkoutDir}"/docker/thirdparties/custom_settings.env
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 74:
    if bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio ||
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 75:
        bash "${teamcity_build_checkoutDir}"/docker/thirdparties/run-thirdparties-docker.sh -c minio; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 76:
        echo "INFO: start minio docker success"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 78:
        echo "ERROR: start minio docker twice failed" && return 1
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                         ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 82:
    docker_compose_hdfs_yaml='
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 116:
    if echo "${docker_compose_hdfs_yaml}" >docker-compose.yaml && docker-compose up -d; then echo; else echo "ERROR: start hdfs docker failed"; fi
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                  ^------------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                             ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                                                                                                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 117:
    JAVA_HOME="$(find /usr/lib/jvm -maxdepth 1 -type d -name 'java-8-*' | sed -n '1p')"
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                 ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 118:
    export JAVA_HOME
    ^--------------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 119:
    if "${teamcity_build_checkoutDir}"/run-regression-test.sh \
    ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
       ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 127:
        echo
        ^--^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 129:
        bash "${teamcity_build_checkoutDir}"/regression-test/pipeline/common/get-or-set-tmp-env.sh 'set' "export need_collect_log=true"
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 133:
        summary=$(
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 134:
            grep -aoE 'Test ([0-9]+) suites, failed ([0-9]+) suites, fatal ([0-9]+) scripts, skipped ([0-9]+) scripts' \
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 137:
        set -x
        ^----^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 138:
        test_suites=$(echo "${summary}" | cut -d ' ' -f 2)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                      ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 139:
        failed_suites=$(echo "${summary}" | cut -d ' ' -f 5)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 140:
        fatal_scripts=$(echo "${summary}" | cut -d ' ' -f 8)
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
                        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 141:
        if [[ ${test_suites} -gt 0 && ${failed_suites} -le ${failed_suites_threshold:=100} && ${fatal_scripts} -eq 0 ]]; then
        ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).
           ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 142:
            echo "INFO: regression test result meet (test_suites>0 && failed_suites<=${failed_suites_threshold} && fatal_scripts=0)"
            ^-- SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In regression-test/pipeline/vault_p0/run.sh line 144:
            return 1
            ^------^ SC2317 (info): Command appears to be unreachable. Check usage (or ignore if invoked indirectly).


In run-be-ut.sh line 150:
    WITH_TDE_DIR        -- ${WITH_TDE_DIR}
                           ^-------------^ SC2154 (warning): WITH_TDE_DIR is referenced but not assigned.


In run-cloud-ut.sh line 199:
    -DENABLE_HDFS_STORAGE_VAULT=${ENABLE_HDFS_STORAGE_VAULT:-ON} \
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
    -DENABLE_HDFS_STORAGE_VAULT="${ENABLE_HDFS_STORAGE_VAULT:-ON}" \


In run-cloud-ut.sh line 204:
    "${CMAKE_USE_CCACHE}" \
     ^-----------------^ SC2154 (warning): CMAKE_USE_CCACHE is referenced but not assigned (did you mean 'CMAKE_USE_CCACHE_C'?).
     ^-----------------^ SC2153 (info): Possible misspelling: CMAKE_USE_CCACHE may not be assigned. Did you mean CMAKE_USE_CCACHE_C?


In run-fs-env-test.sh line 44:
    case "$arg" in
          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${arg}" in


In run-fs-env-test.sh line 74:
        *) echo "Unknown option: $arg"; exit 1 ;;
                                 ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        *) echo "Unknown option: ${arg}"; exit 1 ;;


In run-fs-env-test.sh line 80:
case "$SERVICE" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${SERVICE}" in


In run-fs-env-test.sh line 94:
    *) echo "Unknown service: $SERVICE"; exit 1 ;;
                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    *) echo "Unknown service: ${SERVICE}"; exit 1 ;;


In run-fs-env-test.sh line 98:
echo "Running filesystem environment tests for: $TAG (modules: $MODULES)"
                                                ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Running filesystem environment tests for: ${TAG} (modules: ${MODULES})"


In run-fs-env-test.sh line 101:
    -Dgroups="$TAG" \
              ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -Dgroups="${TAG}" \


In thirdparty/build-thirdparty.sh line 1386:
    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
                       ^--------------^ SC2154 (warning): CMAKE_CXX_FLAGS is referenced but not assigned.
                       ^--------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wno-elaborated-enum-base" \


In thirdparty/build-thirdparty.sh line 1977:
    cp -r ${TP_SOURCE_DIR}/${JINDOFS_SOURCE}/* "${TP_INSTALL_DIR}/jindofs_libs/"
          ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                           ^---------------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.

Did you mean: 
    cp -r "${TP_SOURCE_DIR}"/"${JINDOFS_SOURCE}"/* "${TP_INSTALL_DIR}/jindofs_libs/"


In thirdparty/build-thirdparty.sh line 2051:
    if [ -d "arrow_ep-install/lib" ]; then
       ^---------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -d "arrow_ep-install/lib" ]]; then


In thirdparty/build-thirdparty.sh line 2059:
            if [ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]; then
               ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
            if [[ -f "arrow_ep-install/lib/${paimon_arrow_dep}" ]]; then


In thirdparty/build-thirdparty.sh line 2068:
    if [ -f "release/libroaring_bitmap.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libroaring_bitmap.a" ]]; then


In thirdparty/build-thirdparty.sh line 2073:
    if [ -f "release/libxxhash.a" ]; then
       ^--------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "release/libxxhash.a" ]]; then


In thirdparty/build-thirdparty.sh line 2078:
    if [ -f "fmt_ep-install/lib/libfmt.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "fmt_ep-install/lib/libfmt.a" ]]; then


In thirdparty/build-thirdparty.sh line 2083:
    if [ -f "tbb_ep-install/lib/libtbb.a" ]; then
       ^-- SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.

Did you mean: 
    if [[ -f "tbb_ep-install/lib/libtbb.a" ]]; then


In thirdparty/build-thirdparty.sh line 2207:
                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
                       ^-- SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2251:
                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
                           ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/build-thirdparty.sh line 2287:
        rm -rf "${TP_SOURCE_DIR}/${src_dir}"
               ^---------------------------^ SC2115 (warning): Use "${var:?}" to ensure this never expands to / .


In thirdparty/download-prebuild-thirdparty.sh line 30:
if [ -z "$VERSION" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -z "${VERSION}" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 41:
case "$OS" in
      ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${OS}" in


In thirdparty/download-prebuild-thirdparty.sh line 49:
    echo "Unsupported OS: $OS"
                          ^-^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported OS: ${OS}"


In thirdparty/download-prebuild-thirdparty.sh line 57:
case "$ARCH" in
      ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${ARCH}" in


In thirdparty/download-prebuild-thirdparty.sh line 65:
    echo "Unsupported architecture: $ARCH"
                                    ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported architecture: ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 73:
case "$VERSION" in
      ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 87:
    echo "Unsupported version: $VERSION"
                               ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    echo "Unsupported version: ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 97:
if [ "$PLATFORM" = "darwin" ]; then
   ^------------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${PLATFORM}" = "darwin" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 100:
  if [ "$ARCH" = "arm64" ]; then
     ^-------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
        ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  if [[ "${ARCH}" = "arm64" ]]; then


In thirdparty/download-prebuild-thirdparty.sh line 101:
    case "$VERSION" in
    ^-- SC2249 (info): Consider adding a default *) case, even if it just exits with error.
          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    case "${VERSION}" in


In thirdparty/download-prebuild-thirdparty.sh line 125:
echo "Detected platform : $PLATFORM"
                          ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected platform : ${PLATFORM}"


In thirdparty/download-prebuild-thirdparty.sh line 126:
echo "Detected arch     : $ARCH"
                          ^---^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Detected arch     : ${ARCH}"


In thirdparty/download-prebuild-thirdparty.sh line 127:
echo "Version           : $VERSION"
                          ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Version           : ${VERSION}"


In thirdparty/download-prebuild-thirdparty.sh line 128:
echo "Downloading       : $URL"
                          ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Downloading       : ${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 135:
  curl -fL -o "$FILENAME" "$URL"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                           ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  curl -fL -o "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 137:
  wget -O "$FILENAME" "$URL"
           ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                       ^--^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
  wget -O "${FILENAME}" "${URL}"


In thirdparty/download-prebuild-thirdparty.sh line 145:
echo "  $(pwd)/$FILENAME"
               ^-------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "  $(pwd)/${FILENAME}"


In thirdparty/download-thirdparty.sh line 718:
    cd $TP_SOURCE_DIR/$CCTZ_SOURCE
       ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
       ^------------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                      ^----------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                      ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    cd "${TP_SOURCE_DIR}"/"${CCTZ_SOURCE}"


In thirdparty/download-thirdparty.sh line 719:
    if [[ ! -f "$PATCHED_MARK" ]] ; then
                ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    if [[ ! -f "${PATCHED_MARK}" ]] ; then


In thirdparty/download-thirdparty.sh line 724:
        touch "$PATCHED_MARK"
               ^-----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
        touch "${PATCHED_MARK}"


In tools/export_mysql_rule_to_json.sh line 30:
echo "Database Host: $DB_HOST"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Host: ${DB_HOST}"


In tools/export_mysql_rule_to_json.sh line 31:
echo "Database User: $DB_USER"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database User: ${DB_USER}"


In tools/export_mysql_rule_to_json.sh line 32:
echo "Database Name: $DB_NAME"
                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Database Name: ${DB_NAME}"


In tools/export_mysql_rule_to_json.sh line 33:
echo "Password: $(if [ -n "$DB_PASS" ]; then echo "Set"; else echo "Not set"; fi)"
                     ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                           ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Password: $(if [[ -n "${DB_PASS}" ]]; then echo "Set"; else echo "Not set"; fi)"


In tools/export_mysql_rule_to_json.sh line 34:
echo "Table Name: $TABLE_NAME"
                  ^---------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Table Name: ${TABLE_NAME}"


In tools/export_mysql_rule_to_json.sh line 35:
echo "Output File: $OUTPUT_FILE"
                   ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Output File: ${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 61:
if [ -n "$DB_PASS" ]; then
   ^---------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ -n "${DB_PASS}" ]]; then


In tools/export_mysql_rule_to_json.sh line 62:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -N 2>/dev/null)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" -N 2>/dev/null)


In tools/export_mysql_rule_to_json.sh line 64:
    JSON_DATA=$(echo "$QUERY" | mysql -h $DB_HOST -u $DB_USER $DB_NAME -N)
                      ^----^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                         ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                         ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                     ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                     ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                                              ^------^ SC2248 (style): Prefer double quoting even when variables don't contain special characters.
                                                              ^------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    JSON_DATA=$(echo "${QUERY}" | mysql -h "${DB_HOST}" -u "${DB_USER}" "${DB_NAME}" -N)


In tools/export_mysql_rule_to_json.sh line 68:
if [ "$JSON_DATA" = "NULL" ] || [ -z "$JSON_DATA" ]; then
   ^-----------------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                                ^-----------------^ SC2292 (style): Prefer [[ ]] over [ ] for tests in Bash/Ksh.
                                      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
if [[ "${JSON_DATA}" = "NULL" ]] || [[ -z "${JSON_DATA}" ]]; then


In tools/export_mysql_rule_to_json.sh line 73:
echo "$JSON_DATA" > "$OUTPUT_FILE"
      ^--------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.
                     ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "${JSON_DATA}" > "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 77:
    jq '.' "$OUTPUT_FILE" | awk '
            ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    jq '.' "${OUTPUT_FILE}" | awk '


In tools/export_mysql_rule_to_json.sh line 80:
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
                                                         ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "${OUTPUT_FILE}"


In tools/export_mysql_rule_to_json.sh line 83:
echo "Export completed: $OUTPUT_FILE"
                        ^----------^ SC2250 (style): Prefer putting braces around variable references even when not strictly required.

Did you mean: 
echo "Export completed: ${OUTPUT_FILE}"


In tools/lzo/build.sh line 1:
# Licensed to the Apache Software Foundation (ASF) under one
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.


In tools/lzo/build.sh line 20:
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I${DORIS_THIRDPARTY}/installed/include -L${DORIS_THIRDPARTY}/installed/lib -llzo2 -std=c++17
                                             ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                     ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
g++ -o lzo_writer lzo_writer.cpp -I. -Isrc -I"${DORIS_THIRDPARTY}"/installed/include -L"${DORIS_THIRDPARTY}"/installed/lib -llzo2 -std=c++17

For more information:
  https://www.shellcheck.net/wiki/SC1128 -- The shebang must be on the first ...
  https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
  https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const...
----------

You can address the above issues in one of three ways:
1. Manually correct the issue in the offending shell script;
2. Disable specific issues by adding the comment:
  # shellcheck disable=NNNN
above the line that contains the issue, where NNNN is the error code;
3. Add '-e NNNN' to the SHELLCHECK_OPTS setting in your .yml action file.



shfmt errors

'shfmt ' returned error 1 finding the following formatting issues:

----------
--- bin/start_be.sh.orig
+++ bin/start_be.sh
@@ -450,45 +450,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_fe.sh.orig
+++ bin/start_fe.sh
@@ -210,45 +210,45 @@
     local param="$1"
 
     case "${param}" in
-        "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
-            # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-            # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
-            echo "${param%=*}"
-            ;;
-        -XX:+* | -XX:-*)
-            # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
-            # Extract flag name for pattern matching: -XX:[+-]FlagName
-            local flag_name="${param#-XX:?}"
-            echo "-XX:[+-]${flag_name}"
-            ;;
-        -XX:*=*)
-            # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
-            # Extract key before '=': -XX:HeapDumpPath
-            echo "${param%%=*}"
-            ;;
-        -D*=*)
-            # -Dfile.encoding=UTF-8
-            # Extract property name: -Dfile.encoding
-            echo "${param%%=*}"
-            ;;
-        -D*)
-            # -Dfoo (boolean property without value)
-            echo "${param}"
-            ;;
-        -Xms* | -Xmx* | -Xmn* | -Xss*)
-            # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
-            # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
-            echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
-            ;;
-        -Xlog:*)
-            # -Xlog:gc*:file:decorators
-            # Use prefix as key
-            echo "-Xlog:"
-            ;;
-        *)
-            # For other options, use the full parameter as key
-            echo "${param}"
-            ;;
+    "--add-opens="* | "--add-exports="* | "--add-reads="* | "--add-modules="*)
+        # --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+        # Extract module/package path as key: --add-opens=java.base/sun.util.calendar
+        echo "${param%=*}"
+        ;;
+    -XX:+* | -XX:-*)
+        # -XX:+HeapDumpOnOutOfMemoryError or -XX:-OmitStackTraceInFastThrow
+        # Extract flag name for pattern matching: -XX:[+-]FlagName
+        local flag_name="${param#-XX:?}"
+        echo "-XX:[+-]${flag_name}"
+        ;;
+    -XX:*=*)
+        # -XX:HeapDumpPath=/path or -XX:OnOutOfMemoryError="cmd"
+        # Extract key before '=': -XX:HeapDumpPath
+        echo "${param%%=*}"
+        ;;
+    -D*=*)
+        # -Dfile.encoding=UTF-8
+        # Extract property name: -Dfile.encoding
+        echo "${param%%=*}"
+        ;;
+    -D*)
+        # -Dfoo (boolean property without value)
+        echo "${param}"
+        ;;
+    -Xms* | -Xmx* | -Xmn* | -Xss*)
+        # -Xmx8192m, -Xms8192m, -Xmn2g, -Xss512k
+        # Extract the prefix: -Xmx, -Xms, -Xmn, -Xss
+        echo "${param}" | sed -E 's/^(-Xm[sxn]|-Xss).*/\1/'
+        ;;
+    -Xlog:*)
+        # -Xlog:gc*:file:decorators
+        # Use prefix as key
+        echo "-Xlog:"
+        ;;
+    *)
+        # For other options, use the full parameter as key
+        echo "${param}"
+        ;;
     esac
 }
 
--- bin/start_file_cache_microbench.sh.orig
+++ bin/start_file_cache_microbench.sh
@@ -115,7 +115,6 @@
     exit 1
 fi
 
-
 JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:5000,dirty_decay_ms:5000,oversize_threshold:0,prof:true,lg_prof_interval:30,lg_prof_sample:19,prof_final:false,prof_active:true"
 JEMALLOC_PROF_PRFIX="jeprofile_doris_cloud"
 
--- build-support/clang-format.sh.orig
+++ build-support/clang-format.sh
@@ -36,7 +36,7 @@
         echo "Error: Homebrew is missing. Please install it first due to we use Homebrew to manage the tools which are needed to build the project."
         exit 1
     fi
-    if ! brew list llvm@16 > /dev/null 2>&1; then
+    if ! brew list llvm@16 >/dev/null 2>&1; then
         echo "Error: Please install llvm@16 firt due to we use it to format code."
         exit 1
     fi
--- build-support/run-clang-tidy.sh.orig
+++ build-support/run-clang-tidy.sh
@@ -86,36 +86,36 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --base)
-            BASE_REF="$2"
-            shift 2
-            ;;
-        --files)
+    --base)
+        BASE_REF="$2"
+        shift 2
+        ;;
+    --files)
+        shift
+        while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
+            SPECIFIC_FILES+=("$1")
             shift
-            while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do
-                SPECIFIC_FILES+=("$1")
-                shift
-            done
-            ;;
-        --build-dir)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        --fix)
-            FIX_MODE="-fix"
-            shift
-            ;;
-        --full)
-            FULL_FILE_MODE=true
-            shift
-            ;;
-        -h|--help)
-            usage
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage 1
-            ;;
+        done
+        ;;
+    --build-dir)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    --fix)
+        FIX_MODE="-fix"
+        shift
+        ;;
+    --full)
+        FULL_FILE_MODE=true
+        shift
+        ;;
+    -h | --help)
+        usage
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage 1
+        ;;
     esac
 done
 
@@ -255,7 +255,7 @@
             # Append range to the file's entry (space-separated "start:end" pairs)
             CHANGED_LINES_MAP["${current_file}"]+="${start}:${end} "
         fi
-    done <<< "${diff_output}"
+    done <<<"${diff_output}"
 }
 
 # Check if a line number falls within any changed range for a file.
@@ -348,7 +348,7 @@
                         FILE_COUNT=$((FILE_COUNT + 1))
                     fi
                 fi
-            done <<< "$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
+            done <<<"$(echo "${OUTPUT}" | grep -E "${DIAG_PATTERN}")"
 
             if [[ ${FILE_COUNT} -gt 0 ]]; then
                 echo "${FILE_WARNINGS}"
--- build.sh.orig
+++ build.sh
@@ -275,11 +275,11 @@
         --be-cdc-client)
             BUILD_BE_CDC_CLIENT=1
             shift
-            ;;    
+            ;;
         --exclude-obs-dependencies)
             BUILD_OBS_DEPENDENCIES=0
             shift
-            ;; 
+            ;;
         --exclude-cos-dependencies)
             BUILD_COS_DEPENDENCIES=0
             shift
@@ -291,7 +291,7 @@
         --disable-dynamic-arch)
             ENABLE_DYNAMIC_ARCH='OFF'
             shift
-            ;;           
+            ;;
         --clean)
             CLEAN=1
             shift
@@ -340,7 +340,7 @@
         BUILD_META_TOOL='ON'
         BUILD_FILE_CACHE_MICROBENCH_TOOL='OFF'
         BUILD_INDEX_TOOL='ON'
-	    BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
+        BUILD_TASK_EXECUTOR_SIMULATOR='OFF'
         BUILD_HIVE_UDF=1
         BUILD_BE_JAVA_EXTENSIONS=1
         BUILD_BE_CDC_CLIENT=1
@@ -590,7 +590,10 @@
 FEAT+=($([[ ${BUILD_HIVE_UDF} -eq 1 ]] && echo "+HIVE_UDF" || echo "-HIVE_UDF"))
 FEAT+=($([[ ${BUILD_BE_JAVA_EXTENSIONS} -eq 1 ]] && echo "+BE_JAVA_EXTENSIONS" || echo "-BE_JAVA_EXTENSIONS"))
 
-export DORIS_FEATURE_LIST=$(IFS=','; echo "${FEAT[*]}")
+export DORIS_FEATURE_LIST=$(
+    IFS=','
+    echo "${FEAT[*]}"
+)
 echo "Feature List: ${DORIS_FEATURE_LIST}"
 
 # Clean and build generated code
@@ -838,8 +841,8 @@
         rm -f "${log_file}"
         return 0
     fi
-    if [[ "${thread_count}" != "${retry_thread_count}" ]] && \
-            grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
+    if [[ "${thread_count}" != "${retry_thread_count}" ]] &&
+        grep -Eq "Could not acquire lock\(s\)|isn't a file" "${log_file}"; then
         echo "FE Maven build hit parallel build issue (lock contention or reactor artifact race). Retrying with -T ${retry_thread_count}."
         mvn_cmd=("${mvn_cmd[@]:0:${#mvn_cmd[@]}-2}" -T "${retry_thread_count}")
         "${mvn_cmd[@]}"
@@ -927,12 +930,12 @@
     unset FS_PLUGIN_DIR fs_module fs_plugin_target fs_module_dir
 
     if [ "${TARGET_SYSTEM}" = "Darwin" ] || [ "${TARGET_SYSTEM}" = "Linux" ]; then
-      mkdir -p "${DORIS_OUTPUT}/fe/arthas"
-      rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
-      unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
-      unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
-      rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
-      rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
+        mkdir -p "${DORIS_OUTPUT}/fe/arthas"
+        rm -rf "${DORIS_OUTPUT}/fe/arthas/*"
+        unzip -o "${DORIS_OUTPUT}/fe/lib/arthas-packaging-*.jar" arthas-bin.zip -d "${DORIS_OUTPUT}/fe/arthas/"
+        unzip -o "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip" -d "${DORIS_OUTPUT}/fe/arthas/"
+        rm "${DORIS_OUTPUT}/fe/arthas/math-game.jar"
+        rm "${DORIS_OUTPUT}/fe/arthas/arthas-bin.zip"
     fi
 fi
 
@@ -1050,15 +1053,15 @@
         module_proj_jar="${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/${extensions_module}-project.jar"
         mkdir "${BE_JAVA_EXTENSIONS_DIR}"/"${extensions_module}"
         echo "Copy Be Extensions ${extensions_module} jar to ${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}"
-     if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
-          
+        if [[ "${extensions_module}" == "${HADOOP_DEPS_NAME}" ]]; then
+
             BE_HADOOP_HDFS_DIR="${DORIS_OUTPUT}/be/lib/hadoop_hdfs/"
             echo "Copy Be Extensions hadoop deps jars to ${BE_HADOOP_HDFS_DIR}"
             rm -rf "${BE_HADOOP_HDFS_DIR}"
             mkdir "${BE_HADOOP_HDFS_DIR}"
             HADOOP_DEPS_JAR_DIR="${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}/target"
             echo "HADOOP_DEPS_JAR_DIR: ${HADOOP_DEPS_JAR_DIR}"
-            if  [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
+            if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && ! -d "${HADOOP_DEPS_JAR_DIR}/lib" ]]; then
                 echo "WARN: lib directory missing (likely due to Maven cache). Regenerating..."
                 pushd "${DORIS_HOME}/fe/be-java-extensions/${HADOOP_DEPS_NAME}"
                 "${MVN_CMD}" dependency:copy-dependencies -DskipTests -Dcheckstyle.skip=true
@@ -1083,7 +1086,7 @@
                 cp -r "${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/lib" "${BE_JAVA_EXTENSIONS_DIR}/${extensions_module}/"
             fi
         fi
-    done        
+    done
 
     # Third-party filesystem jars (JuiceFS, JindoFS) are packaged by post-build.sh
     "${DORIS_HOME}/post-build.sh" --be --output "${DORIS_OUTPUT}"
--- build_profile.sh.orig
+++ build_profile.sh
@@ -58,7 +58,10 @@
             mtime=$(stat -c %Y "$f")
         fi
         [[ "$mtime" -gt "$last_time" ]] && echo "$f"
-    done < <(git diff --name-only 2>/dev/null; git ls-files --others --exclude-standard 2>/dev/null)
+    done < <(
+        git diff --name-only 2>/dev/null
+        git ls-files --others --exclude-standard 2>/dev/null
+    )
 }
 
 # Read last_build_time from log (0 for first build)
@@ -96,7 +99,7 @@
     files=$(collect_files "${last_time}")
 
     # Write state to temp file
-    cat > "${state_file}" <<EOF
+    cat >"${state_file}" <<EOF
 _BP_START=${start_time}
 _BP_USER=${user}
 _BP_DIR=${build_dir}
@@ -105,8 +108,8 @@
 _BP_ARGS=${build_args}
 EOF
     # Write files as separate lines after a marker
-    echo "===FILES==="  >> "${state_file}"
-    echo "${files}"     >> "${state_file}"
+    echo "===FILES===" >>"${state_file}"
+    echo "${files}" >>"${state_file}"
 }
 
 cmd_record() {
@@ -124,7 +127,7 @@
         [[ "$key" == "===FILES===" ]] && break
         [[ "$key" == _BP_* ]] || continue
         eval "${key}='${value}'"
-    done < "${state_file}"
+    done <"${state_file}"
 
     # Read files (everything after ===FILES=== marker)
     local files
@@ -136,17 +139,17 @@
     load_avg=$(uptime | grep -oE 'load average[s]?: .*' | sed 's/load average[s]\{0,1\}: //')
 
     # Write record via python3 (env vars + stdin for safety)
-    echo "${files}" | \
-    _BP_USER="${_BP_USER}" \
-    _BP_DIR="${_BP_DIR}" \
-    _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
-    _BP_COMMIT="${_BP_COMMIT}" \
-    _BP_ARGS="${_BP_ARGS}" \
-    _BP_START="${_BP_START}" \
-    _BP_EXIT_CODE="${exit_code}" \
-    _BP_END_TIME="${end_time}" \
-    _BP_LOAD_AVG="${load_avg}" \
-    python3 -c "
+    echo "${files}" |
+        _BP_USER="${_BP_USER}" \
+            _BP_DIR="${_BP_DIR}" \
+            _BP_BASE_BRANCH="${_BP_BASE_BRANCH}" \
+            _BP_COMMIT="${_BP_COMMIT}" \
+            _BP_ARGS="${_BP_ARGS}" \
+            _BP_START="${_BP_START}" \
+            _BP_EXIT_CODE="${exit_code}" \
+            _BP_END_TIME="${end_time}" \
+            _BP_LOAD_AVG="${load_avg}" \
+            python3 -c "
 import json, os, sys
 
 files = [line.strip() for line in sys.stdin if line.strip()]
@@ -166,21 +169,21 @@
     'load_avg': os.environ['_BP_LOAD_AVG'],
 }
 print(json.dumps(record))
-" >> "${LOG_FILE}"
+" >>"${LOG_FILE}"
 
     # Clean up state file
     rm -f "${state_file}"
 }
 
 case "$1" in
-    collect)
-        cmd_collect "$2" "$3"
-        ;;
-    record)
-        cmd_record "$2" "$3"
-        ;;
-    *)
-        echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
-        exit 1
-        ;;
+collect)
+    cmd_collect "$2" "$3"
+    ;;
+record)
+    cmd_record "$2" "$3"
+    ;;
+*)
+    echo "Usage: $0 {collect|record} <state_file> <args|exit_code>"
+    exit 1
+    ;;
 esac
--- cloud/script/build_fdb.sh.orig
+++ cloud/script/build_fdb.sh
@@ -53,7 +53,7 @@
 
 # Print help message
 show_help() {
-    cat << EOF
+    cat <<EOF
 Usage: $0 [OPTIONS]
 
 Build FoundationDB using Docker.
@@ -110,110 +110,110 @@
 # Parse command line arguments
 while [[ $# -gt 0 ]]; do
     case $1 in
-        -v)
-            VERSION="$2"
-            shift 2
-            ;;
-        -o)
-            BUILD_DIR="$2"
-            shift 2
-            ;;
-        -i)
-            DOCKER_IMAGE="$2"
-            shift 2
-            ;;
-        -s)
-            SRC_DIR="$2"
-            shift 2
-            ;;
-        -u)
-            UPDATE_REPO=false
-            shift
-            ;;
-        --aws)
-            BUILD_AWS_BACKUP=true
-            shift
-            ;;
-        --azure)
-            BUILD_AZURE_BACKUP=true
-            shift
-            ;;
-        --no-jemalloc)
-            USE_JEMALLOC=false
-            shift
-            ;;
-        --no-lto)
-            USE_LTO=false
-            shift
-            ;;
-        --no-debug-syms)
-            FULL_DEBUG_SYMBOLS=false
-            shift
-            ;;
-        --no-docs)
-            BUILD_DOCUMENTATION=false
-            shift
-            ;;
-        --no-rocksdb)
-            WITH_ROCKSDB=false
-            shift
-            ;;
-        --no-grpc)
-            WITH_GRPC=false
-            shift
-            ;;
-        --debug-syms)
-            FULL_DEBUG_SYMBOLS=true
-            shift
-            ;;
-        --docs)
-            BUILD_DOCUMENTATION=true
-            shift
-            ;;
-        --rocksdb)
-            WITH_ROCKSDB=true
-            shift
-            ;;
-        --grpc)
-            WITH_GRPC=true
-            shift
-            ;;
-        --java)
-            BUILD_JAVA_BINDING=true
-            shift
-            ;;
-        --go)
-            BUILD_GO_BINDING=true
-            shift
-            ;;
-        --swift)
-            BUILD_SWIFT_BINDING=true
-            shift
-            ;;
-        --ruby)
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --all-bindings)
-            BUILD_JAVA_BINDING=true
-            BUILD_GO_BINDING=true
-            BUILD_SWIFT_BINDING=true
-            BUILD_RUBY_BINDING=true
-            shift
-            ;;
-        --minimal-bindings)
-            BUILD_PYTHON_BINDING=false
-            shift
-            ;;
-        -h)
-            show_help
-            exit 0
-            ;;
-        *)
-            echo -e "${RED}Unknown option: $1${NC}" >&2
-            show_help
-            exit 1
-            ;;
+    -v)
+        VERSION="$2"
+        shift 2
+        ;;
+    -o)
+        BUILD_DIR="$2"
+        shift 2
+        ;;
+    -i)
+        DOCKER_IMAGE="$2"
+        shift 2
+        ;;
+    -s)
+        SRC_DIR="$2"
+        shift 2
+        ;;
+    -u)
+        UPDATE_REPO=false
+        shift
+        ;;
+    --aws)
+        BUILD_AWS_BACKUP=true
+        shift
+        ;;
+    --azure)
+        BUILD_AZURE_BACKUP=true
+        shift
+        ;;
+    --no-jemalloc)
+        USE_JEMALLOC=false
+        shift
+        ;;
+    --no-lto)
+        USE_LTO=false
+        shift
+        ;;
+    --no-debug-syms)
+        FULL_DEBUG_SYMBOLS=false
+        shift
+        ;;
+    --no-docs)
+        BUILD_DOCUMENTATION=false
+        shift
+        ;;
+    --no-rocksdb)
+        WITH_ROCKSDB=false
+        shift
+        ;;
+    --no-grpc)
+        WITH_GRPC=false
+        shift
+        ;;
+    --debug-syms)
+        FULL_DEBUG_SYMBOLS=true
+        shift
+        ;;
+    --docs)
+        BUILD_DOCUMENTATION=true
+        shift
+        ;;
+    --rocksdb)
+        WITH_ROCKSDB=true
+        shift
+        ;;
+    --grpc)
+        WITH_GRPC=true
+        shift
+        ;;
+    --java)
+        BUILD_JAVA_BINDING=true
+        shift
+        ;;
+    --go)
+        BUILD_GO_BINDING=true
+        shift
+        ;;
+    --swift)
+        BUILD_SWIFT_BINDING=true
+        shift
+        ;;
+    --ruby)
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --all-bindings)
+        BUILD_JAVA_BINDING=true
+        BUILD_GO_BINDING=true
+        BUILD_SWIFT_BINDING=true
+        BUILD_RUBY_BINDING=true
+        shift
+        ;;
+    --minimal-bindings)
+        BUILD_PYTHON_BINDING=false
+        shift
+        ;;
+    -h)
+        show_help
+        exit 0
+        ;;
+    *)
+        echo -e "${RED}Unknown option: $1${NC}" >&2
+        show_help
+        exit 1
+        ;;
     esac
 done
 
--- cloud/script/start.sh.orig
+++ cloud/script/start.sh
@@ -54,9 +54,9 @@
 fi
 # echo "$@" "daemonized=${daemonized}"}
 
-custom_start="${DORIS_HOME}/bin/custom_start.sh" 
+custom_start="${DORIS_HOME}/bin/custom_start.sh"
 if [[ -f "${custom_start}" ]]; then
-  source "${custom_start}" 
+    source "${custom_start}"
 fi
 enable_hdfs=${enable_hdfs:-1}
 process_name="${process_name:-doris_cloud}"
--- docker/thirdparties/docker-compose/common/event-hook.sh.orig
+++ docker/thirdparties/docker-compose/common/event-hook.sh
--- docker/thirdparties/docker-compose/common/hive-configure.sh.orig
+++ docker/thirdparties/docker-compose/common/hive-configure.sh
@@ -19,16 +19,16 @@
 # Referenced from [docker-hive](https://github.com/big-data-europe/docker-hive)
 
 # Set some sensible defaults
-export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://`hostname -f`:8020}
+export CORE_CONF_fs_defaultFS=${CORE_CONF_fs_defaultFS:-hdfs://$(hostname -f):8020}
 
 function addProperty() {
-  local path=$1
-  local name=$2
-  local value=$3
+    local path=$1
+    local name=$2
+    local value=$3
 
-  local entry="<property><name>$name</name><value>${value}</value></property>"
-  local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
-  sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
+    local entry="<property><name>$name</name><value>${value}</value></property>"
+    local escapedEntry=$(echo $entry | sed 's/\//\\\//g')
+    sed -i "/<\/configuration>/ s/.*/${escapedEntry}\n&/" $path
 }
 
 function configure() {
@@ -38,10 +38,10 @@
 
     local var
     local value
-    
+
     echo "Configuring $module"
-    for c in `printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix`; do 
-        name=`echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g'`
+    for c in $(printenv | perl -sne 'print "$1 " if m/^${envPrefix}_(.+?)=.*/' -- -envPrefix=$envPrefix); do
+        name=$(echo ${c} | perl -pe 's/___/-/g; s/__/_/g; s/_/./g')
         var="${envPrefix}_${c}"
         value=${!var}
         echo " - Setting $name=$  "
--- docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh.orig
+++ docker/thirdparties/docker-compose/elasticsearch/scripts/es_init.sh
@@ -24,18 +24,18 @@
     local output_file=$5
 
     # clear output file
-    echo "" > "$output_file"
+    echo "" >"$output_file"
 
     local id=1
     while IFS= read -r line; do
         if [ -n "$type_value" ]; then
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_type\": \"$type_value\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         else
-            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}"  >> "$output_file"
+            echo "{\"index\": {\"_index\": \"$index_name\", \"_id\": \"${id_prefix}${id}\"}}" >>"$output_file"
         fi
-        echo "$line"  >> "$output_file"
+        echo "$line" >>"$output_file"
         id=$((id + 1))
-    done < "$data_file"
+    done <"$data_file"
 }
 
 array_data_file="/mnt/scripts/data/composite_type_array_bulk.json"
--- docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/bootstrap/bootstrap-groups.sh
@@ -31,12 +31,11 @@
         return 0
     fi
 
-    IFS=',' read -r -a parsed_groups <<< "${cleaned_groups}"
+    IFS=',' read -r -a parsed_groups <<<"${cleaned_groups}"
     for group in "${parsed_groups[@]}"; do
         [[ -n "${group}" ]] || continue
         case "${group}" in
-        all|common|hive2_only|hive3_only)
-            ;;
+        all | common | hive2_only | hive3_only) ;;
         *)
             echo "Unknown hive bootstrap group: ${group}" >&2
             return 1
@@ -56,7 +55,7 @@
         deduped_groups+=("${group}")
     done
 
-    if (( ${#deduped_groups[@]} == 0 )); then
+    if ((${#deduped_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
@@ -98,11 +97,11 @@
         bootstrap_group_enabled "${normalized_groups}" "hive3_only" && include_hive3_only=1
     done
 
-    (( include_common == 1 )) && merged_groups+=("common")
-    (( include_hive2_only == 1 )) && merged_groups+=("hive2_only")
-    (( include_hive3_only == 1 )) && merged_groups+=("hive3_only")
+    ((include_common == 1)) && merged_groups+=("common")
+    ((include_hive2_only == 1)) && merged_groups+=("hive2_only")
+    ((include_hive3_only == 1)) && merged_groups+=("hive3_only")
 
-    if (( ${#merged_groups[@]} == 0 )); then
+    if ((${#merged_groups[@]} == 0)); then
         echo "all"
         return 0
     fi
--- docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/account_fund/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/hive01/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/sale_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/string_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/student/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/default/test_hive_doris/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/default/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/default/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_csv/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/datev2_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_config_test/run.sh
@@ -11,4 +11,3 @@
 hive -f "${CUR_DIR}"/create_table.hql
 
 hadoop fs -rm -r /user/doris/suites/default/hive_ignore_absent_partitions_table/country=India
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_text_complex_type_delimiter3/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_all_types/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_array_delimiter/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_textfile_nestedarray/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_orc/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/hive_upper_case_parquet/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/logs1_parquet/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/one_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/orc_predicate/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/orc_predicate_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/par_fields_in_file_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_bigint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_boolean/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_char/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_date/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_decimal/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_double/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_float/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_int/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_smallint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_string/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_timestamp/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_tinyint/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_alter_column_to_varchar/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_bloom_filter/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lz4_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_lzo_compression/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_nested_types/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/parquet_predicate_table/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_1/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_location_2/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/partition_manual_remove/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_chinese_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_complex_types/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_compress_partitioned/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_csv_format_error/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_date_string_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_same_db_table_name/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_hive_special_char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_mixed_par_locations_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_multi_langs_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_special_orc_formats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_truncate_char_or_varchar_columns_text/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/test_wide_table/run.sh
@@ -9,4 +9,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_columns/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/text_partitioned_one_column/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/timestamp_with_time_zone/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/two_partition/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_orc/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_origin/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/multi_catalog/type_change_parquet/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/multi_catalog/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/multi_catalog/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/bigint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/char_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/date_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/decimal_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/double_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/float_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/int_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/smallint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/string_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/tinyint_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/partition_type/varchar_partition/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/partition_type/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/partition_type/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/crdmm_data/run.sh
@@ -3,11 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/regression/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/regression/
 
 # create table
 hive -f "${CUR_DIR}"/create_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/regression/serde_prop/run.sh
@@ -5,5 +5,3 @@
 
 # create table
 hive -f "${CUR_DIR}"/some_serde_table.hql
-
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/statistics/run.sh
@@ -3,10 +3,8 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
 # create table
 hive -f "${CUR_DIR}/create_table.hql"
-
--- docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/statistics/stats/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/statistics/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/statistics/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/test/hive_test/run.sh
@@ -3,7 +3,6 @@
 
 CUR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
 
-
 hadoop fs -mkdir -p /user/doris/suites/test/
 hadoop fs -put "${CUR_DIR}"/data/* /user/doris/suites/test/
 
--- docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/data/tpch_1000_parquet/part/run.sh
@@ -19,4 +19,3 @@
 
 # # create table
 # hive -f "${CUR_DIR}"/create_table.hql
-
--- docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh
@@ -36,7 +36,7 @@
 # Add JuiceFS jar into Hadoop classpath for `hadoop fs jfs://...`.
 shopt -s nullglob
 juicefs_jars=("${AUX_LIB}"/juicefs-hadoop-*.jar)
-if (( ${#juicefs_jars[@]} > 0 )); then
+if ((${#juicefs_jars[@]} > 0)); then
     for target in /opt/hadoop-3.2.1/share/hadoop/common/lib /opt/hadoop/share/hadoop/common/lib; do
         if [[ -d "${target}" ]]; then
             cp -f "${juicefs_jars[@]}" "${target}"/
@@ -48,7 +48,6 @@
 # start metastore
 nohup /opt/hive/bin/hive --service metastore &
 
-
 # wait metastore start
 while ! $(nc -z localhost "${HMS_PORT:-9083}"); do
     sleep 5s
@@ -84,7 +83,7 @@
     fi
 done < <(find "${DATA_DIR}" -type f -name "run.sh" -print0)
 
-if (( ${#run_scripts[@]} > 0 )); then
+if ((${#run_scripts[@]} > 0)); then
     printf '%s\0' "${run_scripts[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         bash -e "{}" || (echo "Failed to executing script: {}" && exit 1)
@@ -122,23 +121,20 @@
     hadoop_put_paths+=("${relative_path}")
 }
 
-
 ## put tpch1
 copy_to_hdfs_if_selected "tpch1.db"
 
 ## put paimon1
 copy_to_hdfs_if_selected "paimon1"
 
-
 ## put tvf_data
 copy_to_hdfs_if_selected "tvf_data"
 
 ## put other preinstalled data
 copy_to_hdfs_if_selected "preinstalled_data"
 
-
 # wait put finish
-if (( ${#hadoop_put_pids[@]} > 0 )); then
+if ((${#hadoop_put_pids[@]} > 0)); then
     wait "${hadoop_put_pids[@]}"
 fi
 
@@ -160,7 +156,7 @@
 done
 shopt -u nullglob
 
-if (( ${#preinstalled_hqls[@]} > 0 )); then
+if ((${#preinstalled_hqls[@]} > 0)); then
     printf '%s\0' "${preinstalled_hqls[@]}" | xargs -0 -P "${LOAD_PARALLEL}" -I {} bash -ec '
         START_TIME=$(date +%s)
         hive -f {} || (echo "Failed to executing hql: {}" && exit 1)
--- docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh.orig
+++ docker/thirdparties/docker-compose/hive/scripts/prepare-hive-data.sh
@@ -31,7 +31,7 @@
     fi
 done < <(find "${CUR_DIR}/data" -type f -name "*.tar.gz" -print0)
 
-if (( ${#extract_archives[@]} > 0 )); then
+if ((${#extract_archives[@]} > 0)); then
     printf '%s\0' "${extract_archives[@]}" | xargs -0 -n1 -P"${LOAD_PARALLEL}" bash -c '
       f="$0"
       echo "Extracting hive data $f"
--- docker/thirdparties/docker-compose/hudi/scripts/init.sh.orig
+++ docker/thirdparties/docker-compose/hudi/scripts/init.sh
@@ -21,8 +21,8 @@
 # Remove SUCCESS file from previous run to ensure fresh initialization
 SUCCESS_FILE="/opt/hudi-scripts/SUCCESS"
 if [[ -f "${SUCCESS_FILE}" ]]; then
-  echo "Removing previous SUCCESS file to ensure fresh initialization..."
-  rm -f "${SUCCESS_FILE}"
+    echo "Removing previous SUCCESS file to ensure fresh initialization..."
+    rm -f "${SUCCESS_FILE}"
 fi
 
 SPARK_HOME=/opt/spark
@@ -34,50 +34,50 @@
 
 # Function to download a JAR file if it doesn't exist
 download_jar() {
-  local jar_name="$1"
-  local version="$2"
-  local url="$3"
-  local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
-  
-  if [[ ! -f "${jar_file}" ]]; then
-    echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
-    local download_success=false
-    if command -v curl >/dev/null 2>&1; then
-      if curl -sSfL "${url}" -o "${jar_file}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    elif command -v wget >/dev/null 2>&1; then
-      if wget -qO "${jar_file}" "${url}"; then
-        download_success=true
-      else
-        echo "Error: Failed to download ${jar_name} from ${url}" >&2
-      fi
-    else
-      echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
-      exit 1
-    fi
-    
-    if [[ "${download_success}" == "false" ]]; then
-      echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
-      exit 1
-    fi
-    
+    local jar_name="$1"
+    local version="$2"
+    local url="$3"
+    local jar_file="${CACHE_DIR}/${jar_name}-${version}.jar"
+
     if [[ ! -f "${jar_file}" ]]; then
-      echo "Error: Downloaded file ${jar_file} does not exist" >&2
-      exit 1
+        echo "Downloading ${jar_name} JAR ${version} from ${url} ..." >&2
+        local download_success=false
+        if command -v curl >/dev/null 2>&1; then
+            if curl -sSfL "${url}" -o "${jar_file}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        elif command -v wget >/dev/null 2>&1; then
+            if wget -qO "${jar_file}" "${url}"; then
+                download_success=true
+            else
+                echo "Error: Failed to download ${jar_name} from ${url}" >&2
+            fi
+        else
+            echo "Error: Neither curl nor wget is available in hudi-spark container." >&2
+            exit 1
+        fi
+
+        if [[ "${download_success}" == "false" ]]; then
+            echo "Error: Failed to download ${jar_name} JAR. Please check the URL: ${url}" >&2
+            exit 1
+        fi
+
+        if [[ ! -f "${jar_file}" ]]; then
+            echo "Error: Downloaded file ${jar_file} does not exist" >&2
+            exit 1
+        fi
     fi
-  fi
-  echo "${jar_file}"
+    echo "${jar_file}"
 }
 
 # Function to link a JAR file to Spark jars directory
 link_jar() {
-  local jar_file="$1"
-  local jar_name="$2"
-  local version="$3"
-  ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
+    local jar_file="$1"
+    local jar_name="$2"
+    local version="$3"
+    ln -sf "${jar_file}" "${JARS_DIR}/${jar_name}-${version}.jar"
 }
 
 # Wait for Hive Metastore to be ready
@@ -88,35 +88,35 @@
 RETRY_COUNT=0
 
 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
-  if command -v nc >/dev/null 2>&1; then
-    if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+    if command -v nc >/dev/null 2>&1; then
+        if nc -z "${METASTORE_HOST}" "${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    elif command -v timeout >/dev/null 2>&1; then
+        if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
+            echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
+            break
+        fi
+    else
+        # Fallback: just wait a bit and assume it's ready
+        if [ $RETRY_COUNT -eq 0 ]; then
+            echo "Warning: nc or timeout command not available, skipping metastore readiness check"
+            sleep 10
+            break
+        fi
     fi
-  elif command -v timeout >/dev/null 2>&1; then
-    if timeout 1 bash -c "cat < /dev/null > /dev/tcp/${METASTORE_HOST}/${METASTORE_PORT}" 2>/dev/null; then
-      echo "Hive Metastore is ready at ${METASTORE_HOST}:${METASTORE_PORT}"
-      break
+
+    RETRY_COUNT=$((RETRY_COUNT + 1))
+    if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
+        echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
     fi
-  else
-    # Fallback: just wait a bit and assume it's ready
-    if [ $RETRY_COUNT -eq 0 ]; then
-      echo "Warning: nc or timeout command not available, skipping metastore readiness check"
-      sleep 10
-      break
-    fi
-  fi
-  
-  RETRY_COUNT=$((RETRY_COUNT + 1))
-  if [ $((RETRY_COUNT % 10)) -eq 0 ]; then
-    echo "Waiting for Hive Metastore... (${RETRY_COUNT}/${MAX_RETRIES})"
-  fi
-  sleep 2
+    sleep 2
 done
 
 if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
-  echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
-  exit 1
+    echo "Error: Hive Metastore did not become ready within $((MAX_RETRIES * 2)) seconds"
+    exit 1
 fi
 
 # Write core-site for MinIO (S3A)
@@ -191,37 +191,37 @@
 TEMP_SQL_DIR="/tmp/hudi_sql"
 
 if [[ -d "${SCRIPTS_DIR}" ]]; then
-  mkdir -p "${TEMP_SQL_DIR}"
-  
-  # Process each SQL file: substitute environment variables and combine them
-  echo "Processing Hudi SQL scripts..."
-  for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
-    echo "Processing ${sql_file}..."
-    # Use sed to replace environment variables in SQL files
-    # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
-    sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-    echo "" >> "${TEMP_SQL_DIR}/hudi_total.sql"
-  done
-  
-  # Run Spark SQL to execute all SQL scripts
-  echo "Executing Hudi SQL scripts..."
-  START_TIME=$(date +%s)
-  ${SPARK_HOME}/bin/spark-sql \
-    --master local[*] \
-    --name hudi-init \
-    --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
-    --conf spark.sql.catalogImplementation=hive \
-    --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
-    --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
-    -f "${TEMP_SQL_DIR}/hudi_total.sql"
-  END_TIME=$(date +%s)
-  EXECUTION_TIME=$((END_TIME - START_TIME))
-  echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
-  
-  # Clean up temporary SQL file
-  rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    mkdir -p "${TEMP_SQL_DIR}"
+
+    # Process each SQL file: substitute environment variables and combine them
+    echo "Processing Hudi SQL scripts..."
+    for sql_file in $(find "${SCRIPTS_DIR}" -name '*.sql' | sort); do
+        echo "Processing ${sql_file}..."
+        # Use sed to replace environment variables in SQL files
+        # Replace ${HIVE_METASTORE_URIS} and ${HUDI_BUCKET} with actual values
+        sed "s|\${HIVE_METASTORE_URIS}|${HIVE_METASTORE_URIS}|g; s|\${HUDI_BUCKET}|${HUDI_BUCKET}|g" "${sql_file}" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+        echo "" >>"${TEMP_SQL_DIR}/hudi_total.sql"
+    done
+
+    # Run Spark SQL to execute all SQL scripts
+    echo "Executing Hudi SQL scripts..."
+    START_TIME=$(date +%s)
+    ${SPARK_HOME}/bin/spark-sql \
+        --master local[*] \
+        --name hudi-init \
+        --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
+        --conf spark.sql.catalogImplementation=hive \
+        --conf spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension \
+        --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog \
+        -f "${TEMP_SQL_DIR}/hudi_total.sql"
+    END_TIME=$(date +%s)
+    EXECUTION_TIME=$((END_TIME - START_TIME))
+    echo "Hudi SQL scripts executed in ${EXECUTION_TIME} seconds"
+
+    # Clean up temporary SQL file
+    rm -f "${TEMP_SQL_DIR}/hudi_total.sql"
 else
-  echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
+    echo "Warning: SQL scripts directory ${SCRIPTS_DIR} not found, skipping table initialization."
 fi
 
 # Create success marker file to indicate initialization is complete
--- docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh.orig
+++ docker/thirdparties/docker-compose/iceberg/tools/save_docker.sh
--- docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/entrypoint-hive-master.sh
@@ -57,7 +57,6 @@
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/paimon-hive-connector-3.1-1.3-SNAPSHOT.jar
 curl -O https://s3BucketName.s3Endpoint/regression/docker/hive3/gcs-connector-hadoop3-2.2.24-shaded.jar
 
-
 /usr/local/hadoop-run.sh &
 
 # check healthy hear
@@ -87,7 +86,7 @@
     echo "Invalid index parameter. Exiting."
     exit 1
 fi
-hive  -f /usr/local/sql/create_kerberos_hive_table.sql
+hive -f /usr/local/sql/create_kerberos_hive_table.sql
 if [[ ${enablePaimonHms} == "true" ]]; then
     echo "Creating Paimon HMS catalog and table"
     hadoop fs -put /tmp/paimon_data/* /user/hive/warehouse/
--- docker/thirdparties/docker-compose/kerberos/health-checks/health.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/health.sh
@@ -29,6 +29,6 @@
 
 if test -d "${HEALTH_D}"; then
     for health_script in "${HEALTH_D}"/*; do
-        "${health_script}" &>> /var/log/container-health.log || exit 1
+        "${health_script}" &>>/var/log/container-health.log || exit 1
     done
 fi
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check-2.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/hive-health-check.sh
--- docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh.orig
+++ docker/thirdparties/docker-compose/kerberos/health-checks/supervisorctl-check.sh
@@ -32,9 +32,9 @@
 FAILED=$(supervisorctl status | grep -v RUNNING || true)
 
 if [ "$FAILED" == "" ]; then
-  echo "All services are running"
-  exit 0
+    echo "All services are running"
+    exit 0
 else
-  echo "Some of the services are failing: ${FAILED}"
-  exit 1
+    echo "Some of the services are failing: ${FAILED}"
+    exit 1
 fi
--- docker/thirdparties/docker-compose/polaris/init-catalog.sh.orig
+++ docker/thirdparties/docker-compose/polaris/init-catalog.sh
@@ -26,29 +26,30 @@
 
 echo "[polaris-init] Waiting for Polaris health check at http://$HOST:$PORT/q/health ..."
 for i in $(seq 1 120); do
-  if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
-    break
-  fi
-  sleep 2
+    if curl -sSf "http://$HOST:8182/q/health" >/dev/null; then
+        break
+    fi
+    sleep 2
 done
 
 echo "[polaris-init] Fetching OAuth token via client_credentials ..."
 # Try to obtain token using correct OAuth endpoint
 TOKEN_JSON=$(curl -sS \
-  -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
-  -H 'Content-Type: application/x-www-form-urlencoded' \
-  -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
+    -X POST "http://$HOST:$PORT/api/catalog/v1/oauth/tokens" \
+    -H 'Content-Type: application/x-www-form-urlencoded' \
+    -d "grant_type=client_credentials&client_id=$USER&client_secret=$PASS&scope=PRINCIPAL_ROLE:ALL")
 
 # Extract access_token field
 TOKEN=$(printf "%s" "$TOKEN_JSON" | sed -n 's/.*"access_token"\s*:\s*"\([^"]*\)".*/\1/p')
 
 if [ -z "$TOKEN" ]; then
-  echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
-  exit 1
+    echo "[polaris-init] ERROR: Failed to obtain OAuth token. Response: $TOKEN_JSON" >&2
+    exit 1
 fi
 
 echo "[polaris-init] Creating catalog '$CATALOG' with base '$BASE_LOCATION' ..."
-CREATE_PAYLOAD=$(cat <<JSON
+CREATE_PAYLOAD=$(
+    cat <<JSON
 {
   "name": "$CATALOG",
   "type": "INTERNAL",
@@ -71,19 +72,19 @@
 
 # Try create; on 409 Conflict, treat as success
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d "$CREATE_PAYLOAD")
+    -X POST "http://$HOST:$PORT/api/management/v1/catalogs" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d "$CREATE_PAYLOAD")
 
 if [ "$HTTP_CODE" = "201" ]; then
-  echo "[polaris-init] Catalog created."
+    echo "[polaris-init] Catalog created."
 elif [ "$HTTP_CODE" = "409" ]; then
-  echo "[polaris-init] Catalog already exists. Skipping."
+    echo "[polaris-init] Catalog already exists. Skipping."
 else
-  echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
-  cat /tmp/resp.json || true
-  exit 1
+    echo "[polaris-init] Create catalog failed (HTTP $HTTP_CODE):"
+    cat /tmp/resp.json || true
+    exit 1
 fi
 
 echo "[polaris-init] Setting up permissions for catalog '$CATALOG' ..."
@@ -91,55 +92,54 @@
 # Create a catalog admin role grants
 echo "[polaris-init] Creating catalog admin role grants ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/catalogs/$CATALOG/catalog-roles/catalog_admin/grants" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"grant":{"type":"catalog", "privilege":"CATALOG_MANAGE_CONTENT"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create catalog admin grants (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Create a data engineer role
 echo "[polaris-init] Creating data engineer role ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole":{"name":"data_engineer"}}')
+    -X POST "http://$HOST:$PORT/api/management/v1/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole":{"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "409" ]; then
-  echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to create data engineer role (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Connect the roles
 echo "[polaris-init] Connecting roles ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"catalogRole":{"name":"catalog_admin"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principal-roles/data_engineer/catalog-roles/$CATALOG" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"catalogRole":{"name":"catalog_admin"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to connect roles (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 # Give root the data engineer role
 echo "[polaris-init] Assigning data engineer role to root ..."
 HTTP_CODE=$(curl -sS -o /tmp/resp.json -w "%{http_code}" \
-  -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
-  -H "Authorization: Bearer $TOKEN" \
-  -H "Content-Type: application/json" \
-  -d '{"principalRole": {"name":"data_engineer"}}')
+    -X PUT "http://$HOST:$PORT/api/management/v1/principals/root/principal-roles" \
+    -H "Authorization: Bearer $TOKEN" \
+    -H "Content-Type: application/json" \
+    -d '{"principalRole": {"name":"data_engineer"}}')
 
 if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
-  echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
-  cat /tmp/resp.json || true
+    echo "[polaris-init] Warning: Failed to assign data engineer role to root (HTTP $HTTP_CODE)"
+    cat /tmp/resp.json || true
 fi
 
 echo "[polaris-init] Permissions setup completed."
 echo "[polaris-init] Done."
-
--- docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_ranger_plugins.sh
--- docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh.orig
+++ docker/thirdparties/docker-compose/ranger/script/install_doris_service_def.sh
--- docker/thirdparties/jindofs-helpers.sh.orig
+++ docker/thirdparties/jindofs-helpers.sh
@@ -32,15 +32,15 @@
     [ "${target_system}" = "Linux" ] || return 1
 
     case "${target_arch}" in
-        x86_64)
-            printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
-            ;;
-        aarch64)
-            printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
-            ;;
-        *)
-            return 1
-            ;;
+    x86_64)
+        printf '%s\n' 'jindo-core-linux-ubuntu22-x86_64-*.jar'
+        ;;
+    aarch64)
+        printf '%s\n' 'jindo-core-linux-el7-aarch64-*.jar'
+        ;;
+    *)
+        return 1
+        ;;
     esac
 }
 
@@ -51,10 +51,10 @@
     local pattern
     jindofs_all_platform_jar_patterns | while IFS= read -r pattern; do
         case "${jar_name}" in
-            ${pattern})
-                echo "match"
-                return
-                ;;
+        ${pattern})
+            echo "match"
+            return
+            ;;
         esac
     done
 }
@@ -97,8 +97,8 @@
     [ "${target_system}" = "Linux" ] || return 0
 
     case "${target_arch}" in
-        x86_64 | aarch64) ;;
-        *) return 0 ;;
+    x86_64 | aarch64) ;;
+    *) return 0 ;;
     esac
 
     jindofs_log_source_jars "${jindofs_dir}" "${target_dir}"
--- docker/thirdparties/run-thirdparties-docker.sh.orig
+++ docker/thirdparties/run-thirdparties-docker.sh
@@ -54,7 +54,7 @@
 STOP=0
 NEED_RESERVE_PORTS=0
 export NEED_LOAD_DATA=1
-export LOAD_PARALLEL=$(( $(getconf _NPROCESSORS_ONLN) / 2 ))
+export LOAD_PARALLEL=$(($(getconf _NPROCESSORS_ONLN) / 2))
 export IP_HOST=$(ip -4 addr show scope global | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
 
 if ! OPTS="$(getopt \
@@ -204,7 +204,7 @@
         RUN_MARIADB=1
     elif [[ "${element}"x == "db2"x ]]; then
         RUN_DB2=1
-    elif [[ "${element}"x == "oceanbase"x ]];then
+    elif [[ "${element}"x == "oceanbase"x ]]; then
         RUN_OCEANBASE=1
     elif [[ "${element}"x == "lakesoul"x ]]; then
         RUN_LAKESOUL=1
@@ -567,7 +567,7 @@
     . "${ROOT}"/docker-compose/hive/hive-2x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-2x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-2x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-2x.env
     sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive2 -f "${ROOT}"/docker-compose/hive/hive-2x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-2x.env up --build --remove-orphans -d --wait
@@ -587,7 +587,7 @@
     . "${ROOT}"/docker-compose/hive/hive-3x_settings.env
     envsubst <"${ROOT}"/docker-compose/hive/hive-3x.yaml.tpl >"${ROOT}"/docker-compose/hive/hive-3x.yaml
     envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
-    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >> "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
+    envsubst <"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env.tpl >>"${ROOT}"/docker-compose/hive/hadoop-hive-3x.env
     sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env down
     if [[ "${STOP}" -ne 1 ]]; then
         sudo docker compose -p ${CONTAINER_UID}hive3 -f "${ROOT}"/docker-compose/hive/hive-3x.yaml --env-file "${ROOT}"/docker-compose/hive/hadoop-hive-3x.env up --build --remove-orphans -d --wait
@@ -606,12 +606,12 @@
     if [[ "${STOP}" -ne 1 ]]; then
         if [[ ! -d "${ICEBERG_DIR}/data" ]]; then
             echo "${ICEBERG_DIR}/data does not exist"
-            cd "${ICEBERG_DIR}" \
-            && rm -f iceberg_data*.zip \
-            && wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip \
-            && sudo unzip iceberg_data_spark40.zip \
-            && sudo mv iceberg_data data \
-            && sudo rm -rf iceberg_data_spark40.zip
+            cd "${ICEBERG_DIR}" &&
+                rm -f iceberg_data*.zip &&
+                wget -P "${ROOT}"/docker-compose/iceberg https://"${s3BucketName}.${s3Endpoint}"/regression/datalake/pipeline_data/iceberg_data_spark40.zip &&
+                sudo unzip iceberg_data_spark40.zip &&
+                sudo mv iceberg_data data &&
+                sudo rm -rf iceberg_data_spark40.zip
             cd -
         else
             echo "${ICEBERG_DIR}/data exist, continue !"
@@ -690,9 +690,9 @@
     for i in {1..2}; do
         . "${ROOT}"/docker-compose/kerberos/kerberos${i}_settings.env
         envsubst <"${ROOT}"/docker-compose/kerberos/hadoop-hive.env.tpl >"${ROOT}"/docker-compose/kerberos/hadoop-hive-${i}.env
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
-        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl > "${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/my.cnf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/my.cnf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/kdc.conf
+        envsubst <"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf.tpl >"${ROOT}"/docker-compose/kerberos/conf/kerberos${i}/krb5.conf
     done
     sudo chmod a+w /etc/hosts
     sudo sed -i "1i${IP_HOST} hadoop-master" /etc/hosts
@@ -758,12 +758,12 @@
     echo "RUN_ICEBERG_REST"
     # iceberg-rest with multiple cloud storage backends
     ICEBERG_REST_DIR=${ROOT}/docker-compose/iceberg-rest
-    
+
     # generate iceberg-rest.yaml
     export CONTAINER_UID=${CONTAINER_UID}
     . "${ROOT}"/docker-compose/iceberg-rest/iceberg-rest_settings.env
     envsubst <"${ICEBERG_REST_DIR}/docker-compose.yaml.tpl" >"${ICEBERG_REST_DIR}/docker-compose.yaml"
-    
+
     sudo docker compose -f "${ICEBERG_REST_DIR}/docker-compose.yaml" down
     if [[ "${STOP}" -ne 1 ]]; then
         # Start all three REST catalogs (S3, OSS, COS)
@@ -806,102 +806,102 @@
 declare -A pids
 
 if [[ "${RUN_ES}" -eq 1 ]]; then
-    start_es > start_es.log  2>&1 &
+    start_es >start_es.log 2>&1 &
     pids["es"]=$!
 fi
 
 if [[ "${RUN_MYSQL}" -eq 1 ]]; then
-    start_mysql > start_mysql.log 2>&1 &
+    start_mysql >start_mysql.log 2>&1 &
     pids["mysql"]=$!
 fi
 
 if [[ "${RUN_PG}" -eq 1 ]]; then
-    start_pg > start_pg.log 2>&1 &
+    start_pg >start_pg.log 2>&1 &
     pids["pg"]=$!
 fi
 
 if [[ "${RUN_ORACLE}" -eq 1 ]]; then
-    start_oracle > start_oracle.log 2>&1 &
+    start_oracle >start_oracle.log 2>&1 &
     pids["oracle"]=$!
 fi
 
 if [[ "${RUN_DB2}" -eq 1 ]]; then
-    start_db2 > start_db2.log 2>&1 &
+    start_db2 >start_db2.log 2>&1 &
     pids["db2"]=$!
 fi
 
 if [[ "${RUN_OCEANBASE}" -eq 1 ]]; then
-    start_oceanbase > start_oceanbase.log 2>&1 &
+    start_oceanbase >start_oceanbase.log 2>&1 &
     pids["oceanbase"]=$!
 fi
 
 if [[ "${RUN_SQLSERVER}" -eq 1 ]]; then
-    start_sqlserver > start_sqlserver.log 2>&1 &
+    start_sqlserver >start_sqlserver.log 2>&1 &
     pids["sqlserver"]=$!
 fi
 
 if [[ "${RUN_CLICKHOUSE}" -eq 1 ]]; then
-    start_clickhouse > start_clickhouse.log 2>&1 &
+    start_clickhouse >start_clickhouse.log 2>&1 &
     pids["clickhouse"]=$!
 fi
 
 if [[ "${RUN_KAFKA}" -eq 1 ]]; then
-    start_kafka > start_kafka.log 2>&1 &
+    start_kafka >start_kafka.log 2>&1 &
     pids["kafka"]=$!
 fi
 
 if [[ "${RUN_HIVE2}" -eq 1 ]]; then
-    start_hive2 > start_hive2.log 2>&1 &
+    start_hive2 >start_hive2.log 2>&1 &
     pids["hive2"]=$!
 fi
 
 if [[ "${RUN_HIVE3}" -eq 1 ]]; then
-    start_hive3 > start_hive3.log 2>&1 &
+    start_hive3 >start_hive3.log 2>&1 &
     pids["hive3"]=$!
 fi
 
 if [[ "${RUN_ICEBERG}" -eq 1 ]]; then
-    start_iceberg > start_iceberg.log 2>&1 &
+    start_iceberg >start_iceberg.log 2>&1 &
     pids["iceberg"]=$!
 fi
 
 if [[ "${RUN_ICEBERG_REST}" -eq 1 ]]; then
-    start_iceberg_rest > start_iceberg_rest.log 2>&1 &
+    start_iceberg_rest >start_iceberg_rest.log 2>&1 &
     pids["iceberg-rest"]=$!
 fi
 
 if [[ "${RUN_HUDI}" -eq 1 ]]; then
-    start_hudi > start_hudi.log 2>&1 &
+    start_hudi >start_hudi.log 2>&1 &
     pids["hudi"]=$!
 fi
 
 if [[ "${RUN_MARIADB}" -eq 1 ]]; then
-    start_mariadb > start_mariadb.log 2>&1 &
+    start_mariadb >start_mariadb.log 2>&1 &
     pids["mariadb"]=$!
 fi
 
 if [[ "${RUN_LAKESOUL}" -eq 1 ]]; then
-    start_lakesoul > start_lakesoule.log 2>&1 &
+    start_lakesoul >start_lakesoule.log 2>&1 &
     pids["lakesoul"]=$!
 fi
 
 if [[ "${RUN_MINIO}" -eq 1 ]]; then
-    start_minio > start_minio.log 2>&1 &
+    start_minio >start_minio.log 2>&1 &
     pids["minio"]=$!
 fi
 
 if [[ "${RUN_POLARIS}" -eq 1 ]]; then
-    start_polaris > start_polaris.log 2>&1 &
+    start_polaris >start_polaris.log 2>&1 &
     pids["polaris"]=$!
 fi
 
 if [[ "${RUN_KERBEROS}" -eq 1 ]]; then
-    start_kerberos > start_kerberos.log 2>&1 &
+    start_kerberos >start_kerberos.log 2>&1 &
     pids["kerberos"]=$!
 fi
 
 if [[ "${RUN_RANGER}" -eq 1 ]]; then
-    start_ranger > start_ranger.log 2>&1 &
+    start_ranger >start_ranger.log 2>&1 &
     pids["ranger"]=$!
 fi
 echo "waiting all dockers starting done"
--- docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-bootstrap-groups-test.sh
@@ -39,7 +39,7 @@
     local kind="$2"
     local relative_path="$3"
 
-    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" || \
+    bootstrap_item_selected "${groups}" "${kind}" "${relative_path}" ||
         fail "expected selected: groups=${groups}, kind=${kind}, path=${relative_path}"
 }
 
--- docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh.orig
+++ docker/thirdparties/test/run-thirdparties-docker-hive-restart-test.sh
@@ -38,17 +38,17 @@
 
 docker_container_state_cmd() {
     case "$1" in
-    doris-external--hadoop2-namenode|\
-    doris-external--hadoop2-datanode|\
-    doris-external--hive2-server|\
-    doris-external--hive2-metastore|\
-    doris-external--hive2-metastore-postgresql)
+    doris-external--hadoop2-namenode | \
+        doris-external--hadoop2-datanode | \
+        doris-external--hive2-server | \
+        doris-external--hive2-metastore | \
+        doris-external--hive2-metastore-postgresql)
         echo "running|healthy"
         ;;
-    doris-stuck--hadoop3-namenode|\
-    doris-stuck--hive3-server|\
-    doris-stuck--hive3-metastore|\
-    doris-stuck--hive3-metastore-postgresql)
+    doris-stuck--hadoop3-namenode | \
+        doris-stuck--hive3-server | \
+        doris-stuck--hive3-metastore | \
+        doris-stuck--hive3-metastore-postgresql)
         echo "running|healthy"
         ;;
     doris-stuck--hadoop3-datanode)
--- hooks/setup_worktree.sh.orig
+++ hooks/setup_worktree.sh
--- post-build.sh.orig
+++ post-build.sh
@@ -157,35 +157,35 @@
 
 while [[ $# -gt 0 ]]; do
     case "$1" in
-        --fe)
-            PROCESS_FE=1
-            shift
-            ;;
-        --be)
-            PROCESS_BE=1
-            shift
-            ;;
-        --output)
-            OUTPUT_DIR="$2"
-            shift 2
-            ;;
-        --juicefs)
-            BUILD_JUICEFS="ON"
-            shift
-            ;;
-        --jindofs)
-            BUILD_JINDOFS="ON"
-            shift
-            ;;
-        --help | -h)
-            usage
-            exit 0
-            ;;
-        *)
-            echo "Unknown option: $1"
-            usage
-            exit 1
-            ;;
+    --fe)
+        PROCESS_FE=1
+        shift
+        ;;
+    --be)
+        PROCESS_BE=1
+        shift
+        ;;
+    --output)
+        OUTPUT_DIR="$2"
+        shift 2
+        ;;
+    --juicefs)
+        BUILD_JUICEFS="ON"
+        shift
+        ;;
+    --jindofs)
+        BUILD_JINDOFS="ON"
+        shift
+        ;;
+    --help | -h)
+        usage
+        exit 0
+        ;;
+    *)
+        echo "Unknown option: $1"
+        usage
+        exit 1
+        ;;
     esac
 done
 
--- regression-test/pipeline/external/external-stage-timer.sh.orig
+++ regression-test/pipeline/external/external-stage-timer.sh
@@ -50,20 +50,20 @@
     fi
 
     case "${current_command}" in
-        *"bash deploy_cluster.sh "*)
-            external_regression_stage_timer__enter_if_needed "启动 Doris"
-            ;;
-        *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
-            if [[ "${current_command}" != *"--stop"* ]]; then
-                external_regression_stage_timer__enter_if_needed "启动依赖"
-            fi
-            ;;
-        *"./run-regression-test.sh --teamcity --clean --run"*)
-            external_regression_stage_timer__enter_if_needed "执行 Case"
-            ;;
-        *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
-            external_regression_stage_timer__enter_if_needed "收尾归档"
-            ;;
+    *"bash deploy_cluster.sh "*)
+        external_regression_stage_timer__enter_if_needed "启动 Doris"
+        ;;
+    *"START EXTERNAL DOCKER"* | *"run-thirdparties-docker.sh "*)
+        if [[ "${current_command}" != *"--stop"* ]]; then
+            external_regression_stage_timer__enter_if_needed "启动依赖"
+        fi
+        ;;
+    *"./run-regression-test.sh --teamcity --clean --run"*)
+        external_regression_stage_timer__enter_if_needed "执行 Case"
+        ;;
+    *"COLLECT DOCKER LOGS"* | *"collect_docker_logs "*)
+        external_regression_stage_timer__enter_if_needed "收尾归档"
+        ;;
     esac
 }
 
--- run-be-ut.sh.orig
+++ run-be-ut.sh
@@ -480,7 +480,6 @@
 profraw=${DORIS_TEST_BINARY_DIR}/doris_be_test.profraw
 profdata=${DORIS_TEST_BINARY_DIR}/doris_be_test.profdata
 
-
 if [[ ${GDB} -ge 1 ]]; then
     gdb --args "${test}" "${FILTER}"
     exit
--- run-fs-env-test.sh.orig
+++ run-fs-env-test.sh
@@ -42,56 +42,88 @@
 # Parse --key=value arguments into env vars
 for arg in "$@"; do
     case "$arg" in
-        --s3-endpoint=*)  export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
-        --s3-region=*)    export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
-        --s3-bucket=*)    export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
-        --s3-ak=*)        export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
-        --s3-sk=*)        export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
-        --azure-account=*)    export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
-        --azure-key=*)        export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
-        --azure-container=*)  export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
-        --cos-endpoint=*)  export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
-        --cos-region=*)    export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
-        --cos-bucket=*)    export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
-        --cos-ak=*)        export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
-        --cos-sk=*)        export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
-        --oss-endpoint=*)  export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
-        --oss-region=*)    export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
-        --oss-bucket=*)    export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
-        --oss-ak=*)        export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
-        --oss-sk=*)        export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
-        --obs-endpoint=*)  export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
-        --obs-region=*)    export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
-        --obs-bucket=*)    export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
-        --obs-ak=*)        export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
-        --obs-sk=*)        export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
-        --hdfs-host=*)    export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
-        --hdfs-port=*)    export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
-        --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
-        --kdc-keytab=*)    export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
-        --broker-host=*)  export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
-        --broker-port=*)  export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
-        *) echo "Unknown option: $arg"; exit 1 ;;
+    --s3-endpoint=*) export DORIS_FS_TEST_S3_ENDPOINT="${arg#*=}" ;;
+    --s3-region=*) export DORIS_FS_TEST_S3_REGION="${arg#*=}" ;;
+    --s3-bucket=*) export DORIS_FS_TEST_S3_BUCKET="${arg#*=}" ;;
+    --s3-ak=*) export DORIS_FS_TEST_S3_AK="${arg#*=}" ;;
+    --s3-sk=*) export DORIS_FS_TEST_S3_SK="${arg#*=}" ;;
+    --azure-account=*) export DORIS_FS_TEST_AZURE_ACCOUNT="${arg#*=}" ;;
+    --azure-key=*) export DORIS_FS_TEST_AZURE_KEY="${arg#*=}" ;;
+    --azure-container=*) export DORIS_FS_TEST_AZURE_CONTAINER="${arg#*=}" ;;
+    --cos-endpoint=*) export DORIS_FS_TEST_COS_ENDPOINT="${arg#*=}" ;;
+    --cos-region=*) export DORIS_FS_TEST_COS_REGION="${arg#*=}" ;;
+    --cos-bucket=*) export DORIS_FS_TEST_COS_BUCKET="${arg#*=}" ;;
+    --cos-ak=*) export DORIS_FS_TEST_COS_AK="${arg#*=}" ;;
+    --cos-sk=*) export DORIS_FS_TEST_COS_SK="${arg#*=}" ;;
+    --oss-endpoint=*) export DORIS_FS_TEST_OSS_ENDPOINT="${arg#*=}" ;;
+    --oss-region=*) export DORIS_FS_TEST_OSS_REGION="${arg#*=}" ;;
+    --oss-bucket=*) export DORIS_FS_TEST_OSS_BUCKET="${arg#*=}" ;;
+    --oss-ak=*) export DORIS_FS_TEST_OSS_AK="${arg#*=}" ;;
+    --oss-sk=*) export DORIS_FS_TEST_OSS_SK="${arg#*=}" ;;
+    --obs-endpoint=*) export DORIS_FS_TEST_OBS_ENDPOINT="${arg#*=}" ;;
+    --obs-region=*) export DORIS_FS_TEST_OBS_REGION="${arg#*=}" ;;
+    --obs-bucket=*) export DORIS_FS_TEST_OBS_BUCKET="${arg#*=}" ;;
+    --obs-ak=*) export DORIS_FS_TEST_OBS_AK="${arg#*=}" ;;
+    --obs-sk=*) export DORIS_FS_TEST_OBS_SK="${arg#*=}" ;;
+    --hdfs-host=*) export DORIS_FS_TEST_HDFS_HOST="${arg#*=}" ;;
+    --hdfs-port=*) export DORIS_FS_TEST_HDFS_PORT="${arg#*=}" ;;
+    --kdc-principal=*) export DORIS_FS_TEST_KDC_PRINCIPAL="${arg#*=}" ;;
+    --kdc-keytab=*) export DORIS_FS_TEST_KDC_KEYTAB="${arg#*=}" ;;
+    --broker-host=*) export DORIS_FS_TEST_BROKER_HOST="${arg#*=}" ;;
+    --broker-port=*) export DORIS_FS_TEST_BROKER_PORT="${arg#*=}" ;;
+    *)
+        echo "Unknown option: $arg"
+        exit 1
+        ;;
     esac
 done
 
 # Map service name to JUnit 5 tag and Maven module(s)
 # NOTE: Do NOT use GROUPS as variable name — it is a bash builtin (user group IDs).
 case "$SERVICE" in
-    s3)        TAG="s3";       MODULES="fe-filesystem/fe-filesystem-s3" ;;
-    oss)       TAG="oss";      MODULES="fe-filesystem/fe-filesystem-oss" ;;
-    cos)       TAG="cos";      MODULES="fe-filesystem/fe-filesystem-cos" ;;
-    obs)       TAG="obs";      MODULES="fe-filesystem/fe-filesystem-obs" ;;
-    azure)     TAG="azure";    MODULES="fe-filesystem/fe-filesystem-azure" ;;
-    hdfs)      TAG="hdfs";     MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    kerberos)  TAG="kerberos"; MODULES="fe-filesystem/fe-filesystem-hdfs" ;;
-    broker)    TAG="broker";   MODULES="fe-filesystem/fe-filesystem-broker" ;;
-    all)       TAG="environment"
-               MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
-               MODULES="${MODULES},fe-filesystem/fe-filesystem-broker" ;;
-    *) echo "Unknown service: $SERVICE"; exit 1 ;;
+s3)
+    TAG="s3"
+    MODULES="fe-filesystem/fe-filesystem-s3"
+    ;;
+oss)
+    TAG="oss"
+    MODULES="fe-filesystem/fe-filesystem-oss"
+    ;;
+cos)
+    TAG="cos"
+    MODULES="fe-filesystem/fe-filesystem-cos"
+    ;;
+obs)
+    TAG="obs"
+    MODULES="fe-filesystem/fe-filesystem-obs"
+    ;;
+azure)
+    TAG="azure"
+    MODULES="fe-filesystem/fe-filesystem-azure"
+    ;;
+hdfs)
+    TAG="hdfs"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+kerberos)
+    TAG="kerberos"
+    MODULES="fe-filesystem/fe-filesystem-hdfs"
+    ;;
+broker)
+    TAG="broker"
+    MODULES="fe-filesystem/fe-filesystem-broker"
+    ;;
+all)
+    TAG="environment"
+    MODULES="fe-filesystem/fe-filesystem-s3,fe-filesystem/fe-filesystem-oss"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-cos,fe-filesystem/fe-filesystem-obs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-azure,fe-filesystem/fe-filesystem-hdfs"
+    MODULES="${MODULES},fe-filesystem/fe-filesystem-broker"
+    ;;
+*)
+    echo "Unknown service: $SERVICE"
+    exit 1
+    ;;
 esac
 
 cd "${ROOT}/fe"
--- run-regression-test.sh.orig
+++ run-regression-test.sh
@@ -180,7 +180,7 @@
         local cmd="$1"
         local max_attempts=3
         local attempt=1
-        
+
         while [[ ${attempt} -le ${max_attempts} ]]; do
             echo "Attempt ${attempt}/${max_attempts}: ${cmd}"
             if eval "${cmd}"; then
@@ -189,56 +189,71 @@
             else
                 echo "Command failed on attempt ${attempt}"
                 if [[ ${attempt} -lt ${max_attempts} ]]; then
-                    sleep $((attempt * 5))  # Linear backoff
+                    sleep $((attempt * 5)) # Linear backoff
                 fi
                 ((attempt++))
             fi
         done
-        
+
         echo "Command failed after ${max_attempts} attempts"
         return 1
     }
 
     # Navigate to framework directory and build with retry
-    cd "${DORIS_HOME}/regression-test/framework" || { echo "Failed to change directory"; exit 1; }
-    
+    cd "${DORIS_HOME}/regression-test/framework" || {
+        echo "Failed to change directory"
+        exit 1
+    }
+
     # First try to download dependencies only
     echo "Downloading dependencies..."
-    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || { echo "Failed to create temporary file for dependency output"; exit 1; }
+    dep_output_file="$(mktemp -t doris-dependencies-XXXXXX.txt)" || {
+        echo "Failed to create temporary file for dependency output"
+        exit 1
+    }
     execute_maven_with_retry "${MVN_CMD} dependency:resolve -B -DskipTests=true -Dmdep.prependGroupId=true -DoutputFile=${dep_output_file}" || {
         echo "Failed to download dependencies"
         exit 1
     }
-    
+
     # Then package with retry
     echo "Building package..."
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build package"
         exit 1
     }
-    
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
 
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
+
     mkdir -p "${OUTPUT_DIR}"/{lib,log}
     cp -r "${REGRESSION_TEST_BUILD_DIR}"/regression-test-*.jar "${OUTPUT_DIR}/lib"
 
     echo "===== BUILD JAVA_UDF_SRC TO GENERATE JAR ====="
     mkdir -p "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars
-    cd "${DORIS_HOME}"/regression-test/java-udf-src || { echo "Failed to change directory to java-udf-src"; exit 1; }
-    
+    cd "${DORIS_HOME}"/regression-test/java-udf-src || {
+        echo "Failed to change directory to java-udf-src"
+        exit 1
+    }
+
     # Build UDF with retry
     execute_maven_with_retry "${MVN_CMD} clean package -B -DskipTests=true -Dmaven.javadoc.skip=true" || {
         echo "Failed to build UDF package"
         exit 1
     }
-    
+
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/regression-test/suites/javaudf_p0/jars/
     # be and fe dir is compiled output
     mkdir -p "${DORIS_HOME}"/output/fe/custom_lib/
     mkdir -p "${DORIS_HOME}"/output/be/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/fe/custom_lib/
     cp target/java-udf-case-jar-with-dependencies.jar "${DORIS_HOME}"/output/be/custom_lib/
-    cd "${DORIS_HOME}" || { echo "Failed to return to DORIS_HOME"; exit 1; }
+    cd "${DORIS_HOME}" || {
+        echo "Failed to return to DORIS_HOME"
+        exit 1
+    }
 fi
 
 # check java home
@@ -249,8 +264,8 @@
 
 # check java version
 export JAVA="${JAVA_HOME}/bin/java"
-JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 \
-    | awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
+JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 |
+    awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
 JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION%%.*}"
 if [[ "${JAVA_SPEC_VERSION}" == 1.* ]]; then
     JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION#1.}"
@@ -258,8 +273,8 @@
 fi
 
 # Arrow Flight SQL JDBC needs java.nio opened when the regression framework runs on JDK 17+.
-if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] \
-    && [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
+if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] &&
+    [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
     JAVA_OPTS="${JAVA_OPTS:+${JAVA_OPTS} }--add-opens=java.base/java.nio=ALL-UNNAMED"
 fi
 
@@ -276,12 +291,12 @@
         SKIP_NEXT=0
         continue
     fi
-    
+
     if [[ "${arg}" == "-f" ]] || [[ "${arg}" == "--file" ]]; then
         SKIP_NEXT=1
         continue
     fi
-    
+
     NEW_ARGS+=("${arg}")
 done
 
@@ -290,7 +305,7 @@
     # Extract directory (parent path)
     # e.g., "regression-test/suites/shape_check/tpch_sf1000/shape/q1.groovy" -> "regression-test/suites/shape_check/tpch_sf1000/shape"
     FILE_DIR=$(dirname "${FILE_PATH}")
-    
+
     # Extract suite name (filename without .groovy or .sql extension)
     # e.g., "q1.groovy" -> "q1" or "q01.sql" -> "q01"
     FILE_NAME=$(basename "${FILE_PATH}")
@@ -298,9 +313,9 @@
     SUITE_NAME="${FILE_NAME%.groovy}"
     # Remove .sql extension if exists
     SUITE_NAME="${SUITE_NAME%.sql}"
-    
+
     echo "Converted -f ${FILE_PATH} to -d ${FILE_DIR} -s ${SUITE_NAME}"
-    
+
     # Add -d and -s to arguments
     NEW_ARGS+=("-d" "${FILE_DIR}" "-s" "${SUITE_NAME}")
 fi
--- thirdparty/build-thirdparty.sh.orig
+++ thirdparty/build-thirdparty.sh
@@ -520,7 +520,7 @@
 
     rm -rf CMakeCache.txt CMakeFiles/
     "${CMAKE_CMD}" ../ -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-      -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_POSITION_INDEPENDENT_CODE=On
     # -DCMAKE_CXX_FLAGS="$warning_uninitialized"
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
@@ -1307,7 +1307,7 @@
     rm -rf CMakeCache.txt CMakeFiles/
 
     "${CMAKE_CMD}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-     -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
+        -G "${GENERATOR}" -DBUILD_SHARED_LIBS=FALSE -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" ..
     "${BUILD_SYSTEM}" -j"${PARALLEL}"
     "${BUILD_SYSTEM}" install
 }
@@ -1383,10 +1383,10 @@
 
     # -Wno-elaborated-enum-base to make C++20 on MacOS happy
     "${CMAKE_CMD}" -G "${GENERATOR}" \
-    -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
-    -DBUILD_EXAMPLES=OFF \
-    -DBUILD_TOOLS=OFF \
-    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
+        -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Wno-elaborated-enum-base" \
+        -DBUILD_EXAMPLES=OFF \
+        -DBUILD_TOOLS=OFF \
+        -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DBUILD_TESTING=OFF ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}" install
 }
 
@@ -1892,7 +1892,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     MACHINE_TYPE="$(uname -m)"
     if [[ "${MACHINE_TYPE}" == "aarch64" || "${MACHINE_TYPE}" == 'arm64' ]]; then
         CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crc" NEON64_CFLAGS=" "
@@ -1922,10 +1922,10 @@
 
         # Add -ldl for clang compatibility (libcrypto.a requires dlopen/dlsym/dlclose/dlerror)
         "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-        -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
-        -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
-        -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
-        -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+            -DCMAKE_CXX_FLAGS="-Wno-maybe-uninitialized" \
+            -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
+            -DCMAKE_SHARED_LINKER_FLAGS="-ldl" \
+            -DDISABLE_RUST_IN_BUILD=ON -DVCPKG_MANIFEST_MODE=ON -DVCPKG_OVERLAY_PORTS="${azure_dir}/${AZURE_PORTS}" -DVCPKG_MANIFEST_DIR="${azure_dir}/${AZURE_MANIFEST_DIR}" -DWARNINGS_AS_ERRORS=FALSE -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
         "${BUILD_SYSTEM}" -j "${PARALLEL}"
         "${BUILD_SYSTEM}" install
     fi
@@ -1941,7 +1941,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DDRAGONBOX_INSTALL_TO_CHARS=ON ..
 
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
@@ -1996,7 +1996,7 @@
     cd "${BUILD_DIR}"
 
     "${CMAKE_CMD}" -G "${GENERATOR}" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-    -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
+        -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" -DCMAKE_BUILD_TYPE=Release ..
     "${BUILD_SYSTEM}" -j "${PARALLEL}"
     "${BUILD_SYSTEM}" install
 
@@ -2020,7 +2020,7 @@
     fi
 
     CXXFLAGS="-Wno-nontrivial-memcall" \
-    "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
+        "${CMAKE_CMD}" -C "${TP_DIR}/paimon-cpp-cache.cmake" \
         -G "${GENERATOR}" \
         -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
         -DCMAKE_INSTALL_PREFIX="${TP_INSTALL_DIR}" \
@@ -2180,105 +2180,105 @@
 
     # Map package name to the uppercase *_SOURCE variable name
     case "${pkg}" in
-        libevent)        src_var="LIBEVENT_SOURCE" ;;
-        openssl)         src_var="OPENSSL_SOURCE" ;;
-        thrift)          src_var="THRIFT_SOURCE" ;;
-        protobuf)        src_var="PROTOBUF_SOURCE" ;;
-        gflags)          src_var="GFLAGS_SOURCE" ;;
-        glog)            src_var="GLOG_SOURCE" ;;
-        gtest)           src_var="GTEST_SOURCE" ;;
-        rapidjson)       src_var="RAPIDJSON_SOURCE" ;;
-        snappy)          src_var="SNAPPY_SOURCE" ;;
-        gperftools)      src_var="GPERFTOOLS_SOURCE" ;;
-        zlib)            src_var="ZLIB_SOURCE" ;;
-        crc32c)          src_var="CRC32C_SOURCE" ;;
-        lz4)             src_var="LZ4_SOURCE" ;;
-        bzip)            src_var="BZIP_SOURCE" ;;
-        lzo2)            src_var="LZO2_SOURCE" ;;
-        zstd)            src_var="ZSTD_SOURCE" ;;
-        #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
-        abseil)          src_var="ABSEIL_SOURCE" ;;
-        curl)            src_var="CURL_SOURCE" ;;
-        re2)             src_var="RE2_SOURCE" ;;
-        hyperscan)
-            # hyperscan also builds ragel, clean both
-            if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
-                echo "Cleaning up source: ${RAGEL_SOURCE}"
-                rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+    libevent) src_var="LIBEVENT_SOURCE" ;;
+    openssl) src_var="OPENSSL_SOURCE" ;;
+    thrift) src_var="THRIFT_SOURCE" ;;
+    protobuf) src_var="PROTOBUF_SOURCE" ;;
+    gflags) src_var="GFLAGS_SOURCE" ;;
+    glog) src_var="GLOG_SOURCE" ;;
+    gtest) src_var="GTEST_SOURCE" ;;
+    rapidjson) src_var="RAPIDJSON_SOURCE" ;;
+    snappy) src_var="SNAPPY_SOURCE" ;;
+    gperftools) src_var="GPERFTOOLS_SOURCE" ;;
+    zlib) src_var="ZLIB_SOURCE" ;;
+    crc32c) src_var="CRC32C_SOURCE" ;;
+    lz4) src_var="LZ4_SOURCE" ;;
+    bzip) src_var="BZIP_SOURCE" ;;
+    lzo2) src_var="LZO2_SOURCE" ;;
+    zstd) src_var="ZSTD_SOURCE" ;;
+    #boost)           src_var="BOOST_SOURCE" ;; // boost is used for mysql later
+    abseil) src_var="ABSEIL_SOURCE" ;;
+    curl) src_var="CURL_SOURCE" ;;
+    re2) src_var="RE2_SOURCE" ;;
+    hyperscan)
+        # hyperscan also builds ragel, clean both
+        if [[ -n "${RAGEL_SOURCE}" && -d "${TP_SOURCE_DIR}/${RAGEL_SOURCE}" ]]; then
+            echo "Cleaning up source: ${RAGEL_SOURCE}"
+            rm -rf "${TP_SOURCE_DIR}/${RAGEL_SOURCE}"
+        fi
+        src_var="HYPERSCAN_SOURCE"
+        ;;
+    mysql) src_var="MYSQL_SOURCE" ;;
+    odbc) src_var="ODBC_SOURCE" ;;
+    leveldb) src_var="LEVELDB_SOURCE" ;;
+    brpc) src_var="BRPC_SOURCE" ;;
+    rocksdb) src_var="ROCKSDB_SOURCE" ;;
+    cyrus_sasl) src_var="CYRUS_SASL_SOURCE" ;;
+    librdkafka) src_var="LIBRDKAFKA_SOURCE" ;;
+    flatbuffers) src_var="FLATBUFFERS_SOURCE" ;;
+    arrow) src_var="ARROW_SOURCE" ;;
+    brotli) src_var="BROTLI_SOURCE" ;;
+    cares) src_var="CARES_SOURCE" ;;
+    grpc) src_var="GRPC_SOURCE" ;;
+    s2) src_var="S2_SOURCE" ;;
+    bitshuffle) src_var="BITSHUFFLE_SOURCE" ;;
+    croaringbitmap) src_var="CROARINGBITMAP_SOURCE" ;;
+    fmt) src_var="FMT_SOURCE" ;;
+    parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
+    orc) src_var="ORC_SOURCE" ;;
+    cctz) src_var="CCTZ_SOURCE" ;;
+    jemalloc_doris) src_var="JEMALLOC_DORIS_SOURCE" ;;
+    libunwind) src_var="LIBUNWIND_SOURCE" ;;
+    benchmark) src_var="BENCHMARK_SOURCE" ;;
+    simdjson) src_var="SIMDJSON_SOURCE" ;;
+    nlohmann_json) src_var="NLOHMANN_JSON_SOURCE" ;;
+    libbacktrace) src_var="LIBBACKTRACE_SOURCE" ;;
+    sse2neon) src_var="SSE2NEON_SOURCE" ;;
+    xxhash) src_var="XXHASH_SOURCE" ;;
+    concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
+    fast_float) src_var="FAST_FLOAT_SOURCE" ;;
+    hadoop_libs) src_var="HADOOP_LIBS_SOURCE" ;;
+    hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
+    avx2neon) src_var="AVX2NEON_SOURCE" ;;
+    libdeflate) src_var="LIBDEFLATE_SOURCE" ;;
+    streamvbyte) src_var="STREAMVBYTE_SOURCE" ;;
+    ali_sdk)
+        # ali_sdk internally builds jsoncpp and libuuid, clean all three
+        for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
+            dep_dir="${!dep_var}"
+            if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
+                echo "Cleaning up source: ${dep_dir}"
+                rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
             fi
-            src_var="HYPERSCAN_SOURCE"
-            ;;
-        mysql)           src_var="MYSQL_SOURCE" ;;
-        odbc)            src_var="ODBC_SOURCE" ;;
-        leveldb)         src_var="LEVELDB_SOURCE" ;;
-        brpc)            src_var="BRPC_SOURCE" ;;
-        rocksdb)         src_var="ROCKSDB_SOURCE" ;;
-        cyrus_sasl)      src_var="CYRUS_SASL_SOURCE" ;;
-        librdkafka)      src_var="LIBRDKAFKA_SOURCE" ;;
-        flatbuffers)     src_var="FLATBUFFERS_SOURCE" ;;
-        arrow)           src_var="ARROW_SOURCE" ;;
-        brotli)          src_var="BROTLI_SOURCE" ;;
-        cares)           src_var="CARES_SOURCE" ;;
-        grpc)            src_var="GRPC_SOURCE" ;;
-        s2)              src_var="S2_SOURCE" ;;
-        bitshuffle)      src_var="BITSHUFFLE_SOURCE" ;;
-        croaringbitmap)  src_var="CROARINGBITMAP_SOURCE" ;;
-        fmt)             src_var="FMT_SOURCE" ;;
-        parallel_hashmap) src_var="PARALLEL_HASHMAP_SOURCE" ;;
-        orc)             src_var="ORC_SOURCE" ;;
-        cctz)            src_var="CCTZ_SOURCE" ;;
-        jemalloc_doris)  src_var="JEMALLOC_DORIS_SOURCE" ;;
-        libunwind)       src_var="LIBUNWIND_SOURCE" ;;
-        benchmark)       src_var="BENCHMARK_SOURCE" ;;
-        simdjson)        src_var="SIMDJSON_SOURCE" ;;
-        nlohmann_json)   src_var="NLOHMANN_JSON_SOURCE" ;;
-        libbacktrace)    src_var="LIBBACKTRACE_SOURCE" ;;
-        sse2neon)        src_var="SSE2NEON_SOURCE" ;;
-        xxhash)          src_var="XXHASH_SOURCE" ;;
-        concurrentqueue) src_var="CONCURRENTQUEUE_SOURCE" ;;
-        fast_float)      src_var="FAST_FLOAT_SOURCE" ;;
-        hadoop_libs)     src_var="HADOOP_LIBS_SOURCE" ;;
-        hadoop_libs_3_4) src_var="HADOOP_LIBS_3_4_SOURCE" ;;
-        avx2neon)        src_var="AVX2NEON_SOURCE" ;;
-        libdeflate)      src_var="LIBDEFLATE_SOURCE" ;;
-        streamvbyte)     src_var="STREAMVBYTE_SOURCE" ;;
-        ali_sdk)
-            # ali_sdk internally builds jsoncpp and libuuid, clean all three
-            for dep_var in JSONCPP_SOURCE LIBUUID_SOURCE ALI_SDK_SOURCE; do
-                dep_dir="${!dep_var}"
-                if [[ -n "${dep_dir}" && -d "${TP_SOURCE_DIR}/${dep_dir}" ]]; then
-                    echo "Cleaning up source: ${dep_dir}"
-                    rm -rf "${TP_SOURCE_DIR}/${dep_dir}"
-                fi
-            done
-            return
-            ;;
-        base64)          src_var="BASE64_SOURCE" ;;
-        azure)           src_var="AZURE_SOURCE" ;;
-        dragonbox)       src_var="DRAGONBOX_SOURCE" ;;
-        icu)             src_var="ICU_SOURCE" ;;
-        jindofs)         src_var="JINDOFS_SOURCE" ;;
-        juicefs)         src_var="JUICEFS_SOURCE" ;;
-        pugixml)         src_var="PUGIXML_SOURCE" ;;
-        paimon_cpp)      src_var="PAIMON_CPP_SOURCE" ;;
-        aws_sdk)         src_var="AWS_SDK_SOURCE" ;;
-        lzma)            src_var="LZMA_SOURCE" ;;
-        xml2)            src_var="XML2_SOURCE" ;;
-        idn)             src_var="IDN_SOURCE" ;;
-        gsasl)           src_var="GSASL_SOURCE" ;;
-        krb5)            src_var="KRB5_SOURCE" ;;
-        hdfs3)           src_var="HDFS3_SOURCE" ;;
-        libdivide)       src_var="LIBDIVIDE_SOURCE" ;;
-        binutils)        src_var="BINUTILS_SOURCE" ;;
-        gettext)         src_var="GETTEXT_SOURCE" ;;
-        # Header-only files, skip cleanup
-        pdqsort|timsort|tsan_header|js_and_css)
-            return
-            ;;
-        *)
-            echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
-            return
-            ;;
+        done
+        return
+        ;;
+    base64) src_var="BASE64_SOURCE" ;;
+    azure) src_var="AZURE_SOURCE" ;;
+    dragonbox) src_var="DRAGONBOX_SOURCE" ;;
+    icu) src_var="ICU_SOURCE" ;;
+    jindofs) src_var="JINDOFS_SOURCE" ;;
+    juicefs) src_var="JUICEFS_SOURCE" ;;
+    pugixml) src_var="PUGIXML_SOURCE" ;;
+    paimon_cpp) src_var="PAIMON_CPP_SOURCE" ;;
+    aws_sdk) src_var="AWS_SDK_SOURCE" ;;
+    lzma) src_var="LZMA_SOURCE" ;;
+    xml2) src_var="XML2_SOURCE" ;;
+    idn) src_var="IDN_SOURCE" ;;
+    gsasl) src_var="GSASL_SOURCE" ;;
+    krb5) src_var="KRB5_SOURCE" ;;
+    hdfs3) src_var="HDFS3_SOURCE" ;;
+    libdivide) src_var="LIBDIVIDE_SOURCE" ;;
+    binutils) src_var="BINUTILS_SOURCE" ;;
+    gettext) src_var="GETTEXT_SOURCE" ;;
+    # Header-only files, skip cleanup
+    pdqsort | timsort | tsan_header | js_and_css)
+        return
+        ;;
+    *)
+        echo "Warning: no source mapping for package '${pkg}', skipping cleanup"
+        return
+        ;;
     esac
 
     src_dir="${!src_var}"
--- thirdparty/download-prebuild-thirdparty.sh.orig
+++ thirdparty/download-prebuild-thirdparty.sh
@@ -28,8 +28,8 @@
 VERSION="$1"
 
 if [ -z "$VERSION" ]; then
-  echo "Usage: sh download-prebuild-thirdparty.sh <version>"
-  exit 1
+    echo "Usage: sh download-prebuild-thirdparty.sh <version>"
+    exit 1
 fi
 
 # ----------------------------
@@ -39,13 +39,13 @@
 ARCH="$(uname -m)"
 
 case "$OS" in
-  Darwin)
+Darwin)
     PLATFORM="darwin"
     ;;
-  Linux)
+Linux)
     PLATFORM="linux"
     ;;
-  *)
+*)
     echo "Unsupported OS: $OS"
     exit 1
     ;;
@@ -55,13 +55,13 @@
 # Detect ARCH
 # ----------------------------
 case "$ARCH" in
-  x86_64|amd64)
+x86_64 | amd64)
     ARCH="x86_64"
     ;;
-  arm64|aarch64)
+arm64 | aarch64)
     ARCH="arm64"
     ;;
-  *)
+*)
     echo "Unsupported architecture: $ARCH"
     exit 1
     ;;
@@ -71,19 +71,19 @@
 # Resolve base release tag
 # ----------------------------
 case "$VERSION" in
-  master|4.0)
+master | 4.0)
     RELEASE_TAG="automation"
     ;;
-  3.1)
+3.1)
     RELEASE_TAG="automation-3.1"
     ;;
-  3.0)
+3.0)
     RELEASE_TAG="automation-3.0"
     ;;
-  2.1)
+2.1)
     RELEASE_TAG="automation-2.1"
     ;;
-  *)
+*)
     echo "Unsupported version: $VERSION"
     exit 1
     ;;
@@ -95,26 +95,26 @@
 FILENAME=""
 
 if [ "$PLATFORM" = "darwin" ]; then
-  FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
+    FILENAME="doris-thirdparty-prebuilt-darwin-${ARCH}.tar.xz"
 else
-  if [ "$ARCH" = "arm64" ]; then
-    case "$VERSION" in
-      master|4.0)
-        FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
-        ;;
-      3.1)
-        FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
-        ;;
-      3.0)
-        FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
-        ;;
-      2.1)
-        FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
-        ;;
-    esac
-  else
-    FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
-  fi
+    if [ "$ARCH" = "arm64" ]; then
+        case "$VERSION" in
+        master | 4.0)
+            FILENAME="doris-thirdparty-prebuild-arm64.tar.xz"
+            ;;
+        3.1)
+            FILENAME="doris-thirdparty-3.1-prebuild-arm64.tar.xz"
+            ;;
+        3.0)
+            FILENAME="doris-thirdparty-3.0-prebuild-arm64.tar.xz"
+            ;;
+        2.1)
+            FILENAME="doris-thirdparty-2.1-prebuild-arm64.tar.xz"
+            ;;
+        esac
+    else
+        FILENAME="doris-thirdparty-prebuilt-linux-x86_64.tar.xz"
+    fi
 fi
 
 # ----------------------------
@@ -132,15 +132,14 @@
 # Download
 # ----------------------------
 if command -v curl >/dev/null 2>&1; then
-  curl -fL -o "$FILENAME" "$URL"
+    curl -fL -o "$FILENAME" "$URL"
 elif command -v wget >/dev/null 2>&1; then
-  wget -O "$FILENAME" "$URL"
+    wget -O "$FILENAME" "$URL"
 else
-  echo "Error: curl or wget is required"
-  exit 1
+    echo "Error: curl or wget is required"
+    exit 1
 fi
 
 echo
 echo "Download completed:"
 echo "  $(pwd)/$FILENAME"
-
--- thirdparty/download-thirdparty.sh.orig
+++ thirdparty/download-thirdparty.sh
@@ -272,7 +272,7 @@
     GIT_URL_VAR="${TP_ARCH}_GIT_URL"
     GIT_TAG_VAR="${TP_ARCH}_GIT_TAG"
     SOURCE_VAR="${TP_ARCH}_SOURCE"
-    
+
     GIT_URL="${!GIT_URL_VAR}"
     GIT_TAG="${!GIT_TAG_VAR}"
     SOURCE_DIR="${TP_SOURCE_DIR}/${!SOURCE_VAR}"
@@ -407,7 +407,7 @@
             patch -p1 <"${TP_PATCH_DIR}/rocksdb-5.14.2.patch"
             if [[ "$(uname -s)" == "Darwin" ]]; then
                 patch -p1 <"${TP_PATCH_DIR}/rocksdb-mac-compile-fix.patch"
-            fi 
+            fi
             touch "${PATCHED_MARK}"
         fi
         cd -
@@ -432,8 +432,8 @@
             # GetBufferedSize(), int96 NANO guard, and Thrift_VERSION empty fix.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-paimon.patch"
 
-            # apache-arrow-17.0.0-force-write-int96-timestamps.patch : 
-            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp. 
+            # apache-arrow-17.0.0-force-write-int96-timestamps.patch :
+            # Introducing the parameter that forces writing int96 timestampes for compatibility with Paimon cpp.
             patch -p1 <"${TP_PATCH_DIR}/apache-arrow-17.0.0-force-write-int96-timestamps.patch"
             touch "${PATCHED_MARK}"
         fi
@@ -714,9 +714,9 @@
     echo "Finished patching ${PAIMON_CPP_SOURCE}"
 fi
 
-if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]] ; then
+if [[ " ${TP_ARCHIVES[*]} " =~ " CCTZ " ]]; then
     cd $TP_SOURCE_DIR/$CCTZ_SOURCE
-    if [[ ! -f "$PATCHED_MARK" ]] ; then
+    if [[ ! -f "$PATCHED_MARK" ]]; then
         for patch_file in "${TP_PATCH_DIR}"/cctz-*; do
             echo "patch ${patch_file}"
             patch -p1 --ignore-whitespace <"${patch_file}"
--- tools/coffeebench-tools/bin/run-queries.sh.orig
+++ tools/coffeebench-tools/bin/run-queries.sh
@@ -73,7 +73,6 @@
     usage
 fi
 
-
 check_prerequest() {
     local CMD=$1
     local NAME=$2
--- tools/export_mysql_rule_to_json.sh.orig
+++ tools/export_mysql_rule_to_json.sh
@@ -37,7 +37,8 @@
 echo ""
 
 # Query and convert to JSON (including long type timestamps)
-QUERY=$(cat <<SQL
+QUERY=$(
+    cat <<SQL
 SELECT
     JSON_ARRAYAGG(
         JSON_OBJECT(
@@ -70,14 +71,14 @@
 fi
 
 # Save to file
-echo "$JSON_DATA" > "$OUTPUT_FILE"
+echo "$JSON_DATA" >"$OUTPUT_FILE"
 
 # Format
-if command -v jq &> /dev/null; then
+if command -v jq &>/dev/null; then
     jq '.' "$OUTPUT_FILE" | awk '
         /^    {/ && NR > 3 {print ""}
         {print}
-    ' > "${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
+    ' >"${OUTPUT_FILE}.tmp" && mv "${OUTPUT_FILE}.tmp" "$OUTPUT_FILE"
 fi
 
 echo "Export completed: $OUTPUT_FILE"
--- tools/tpcds-tools/bin/run-tpcds-queries.sh.orig
+++ tools/tpcds-tools/bin/run-tpcds-queries.sh
@@ -142,15 +142,15 @@
 run_query() {
     local query_file=$1
     local query_name=$2
-    
+
     if [[ ! -f "${query_file}" ]]; then
         return
     fi
-    
+
     local cold=0
     local hot1=0
     local hot2=0
-    
+
     echo -ne "${query_name}\t" | tee -a result.csv
     start=$(date +%s%3N)
     if ! output=$(mysql -h"${FE_HOST}" -u"${USER}" -P"${FE_QUERY_PORT}" -D"${DB}" --comments \
@@ -201,7 +201,7 @@
 for i in ${query_array[@]}; do
     # Run main query file
     run_query "${TPCDS_QUERIES_DIR}/query${i}.sql" "query${i}"
-    
+
     # Run variant query file if exists
     run_query "${TPCDS_QUERIES_DIR}/query${i}_1.sql" "query${i}_1"
 done
----------

You can reformat the above files to meet shfmt's requirements by typing:

  shfmt  -w filename


JNSimba and others added 5 commits April 23, 2026 10:48
- Wire ssl_mode / ssl_rootcert from job properties into Debezium's
  database.ssl.{mode,truststore,truststore.password} in MySqlSourceReader.
- SmallFileMgr gains getPkcs12TruststorePath() which converts the uploaded
  PEM CA cert to a PKCS12 truststore (MySQL JDBC rejects raw PEM),
  reusing the same content-addressed md5 cache as PG.
- mysql-5.7 compose template now mounts shared-with-PG root CA / server
  cert / key and starts mysqld with --ssl-*. require_secure_transport is
  NOT set, so existing useSSL=false tests keep working.
- Regression tests mirror the PG ones for ssl / table_mapping / col_filter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add 4 JUnit cases in SmallFileMgrTest covering single cert, chain
  alias safety, memory cache hit and invalid PEM rejection.
- Refactor SmallFileMgr.getPkcs12TruststorePath to expose a 4-arg
  package-private overload (mirrors getFilePath) so tests can inject
  a local directory.
- Replace the 60s sleep in test_streaming_mysql_job_ssl with an
  Awaitility poll on the expected incremental state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pshot JDBC verify

- FE validates ssl_mode against {disable, require, verify-ca} and requires
  ssl_rootcert when ssl_mode=verify-ca is set.
- cdc_client normalizes PG-style ssl_mode to Debezium MySQL's underscore
  spelling, and mirrors SSL config into jdbcProperties using Connector/J
  native names (sslMode / trustCertificateKeyStoreUrl / Type / Password)
  so the snapshot JDBC path actually performs CA verification. Flink CDC's
  forked MySqlConnection drops Debezium SSL props from the snapshot URL,
  so without this mirror snapshot JDBC silently skips CA verification.
- SmallFileMgr's PKCS12 cache fast-path now re-checks File.exists() so a
  deleted truststore is regenerated on next use instead of returning a
  stale path.
- Tests: add DataSourceConfigValidatorTest and MySqlSourceReaderTest;
  split SmallFileMgrTest's cache-hit case into file-present and
  regenerate-when-missing; fix lexicographic '2' <= ... comparison in
  the MySQL SSL regression suite; add the three missing .out files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… rootcert requirement

verify-ca needs a companion ssl_rootcert after the cross-field check, so
exercising it in testSslModeLegalValues (which passes only ssl_mode) now
fails. Leave that case to testVerifyCaWithRootcertPasses which already
supplies ssl_rootcert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eaks

The new docker/.../mysql/certs/server.key is a self-signed test-only
private key (same style as the existing postgresql fixture). Extend the
gitleaks private-key rule with an allowlist scoped strictly to that path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JNSimba JNSimba force-pushed the feat/mysql-cdc-ssl-align-pg branch from ecc49bd to cb87814 Compare April 23, 2026 02:48
Resolve add/add conflict on DataSourceConfigValidatorTest.java:
keep both PR's SSL validation tests and master's slot/publication
identifier tests (apache#62526), and update PR's tests to call the new
two-argument validateSource(input, dataSourceType) signature
introduced by master in apache#62490.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JNSimba pushed a commit that referenced this pull request Apr 27, 2026
…pache#62759)

Related PR: apache#58002

Problem Summary:

`arrow::Decimal256Array::Value()` returns raw bytes (`const uint8_t*`),
we previously reinterpret_cast it to `Decimal256*` which is a misaligned
access .

```text
../src/core/data_type_serde/data_type_decimal_serde.cpp:376:21: runtime error: reference binding to misaligned address 0x1338f3345b12 for type 'const FieldType' (aka 'const Decimal<integer<256, int>>'), which requires 8 byte alignment
0x1338f3345b12: note: pointer points here
 00 c2  3e 20 00 00 10 63 2d 5e  c7 6b 05 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00
              ^ 
    #0 0x56203d1eb751 in doris::DataTypeDecimalSerDe<(doris::PrimitiveType)35>::read_column_from_arrow(doris::IColumn&, arrow::Array const*, long, long, cctz::time_zone const&) const be/build_ASAN/../src/core/data_type_serde/data_type_decimal_serde.cpp:375:25
    #1 0x56203d9c6d6b in doris::DataTypeNullableSerDe::read_column_from_arrow(doris::IColumn&, arrow::Array const*, long, long, cctz::time_zone const&) const be/build_ASAN/../src/core/data_type_serde/data_type_nullable_serde.cpp:350:26
    #2 0x562055dd83b5 in doris::FromRecordBatchToBlockConverter::convert(doris::Block*) be/build_ASAN/../src/format/arrow/arrow_block_convertor.cpp:131:9
    #3 0x562055dd9229 in doris::convert_from_arrow_batch(std::shared_ptr<arrow::RecordBatch> const&, std::vector<std::shared_ptr<doris::IDataType const>, 
```
zclllyybb and others added 18 commits April 29, 2026 15:22
…irectory (apache#62935)

In worktree dir, `.git` is not a directory but a file.
before:
```
Version: doris-0.0.0-Unknown
```

now:
```
Version: doris-0.0.0-1f18be0330e
```
…daptive flush controller (apache#62744)

### What problem does this PR solve?

Related PR: apache#60617

Problem Summary:
`AdaptiveThreadPoolController::is_cpu_busy()` previously used normalized
1-minute load average as a proxy for CPU usage. This could misclassify
IO wait pressure as CPU pressure and make adaptive flush thread
shrinking too aggressive.

This PR changes CPU pressure detection to use deltas of the existing
`doris_be_cpu` metrics from `SystemMetrics`. It aggregates the existing
CPU counters, computes CPU busy ratio from consecutive samples, and
treats `iowait` as idle time for this decision path.
…che#62900)

### What problem does this PR solve?

Related PR: apache#17581

Problem Summary:

When add lambda function support, we forgot to add SerDe to
ColumnRefExpr.
In Create Alias Function, we only check serialization, not check
deserialization.
So we may write a invalid Expr's Json into Image or EditLog
### What problem does this PR solve?

Problem Summary:

Constraint changes can change MV rewrite eligibility, especially for
PK/FK/UK-based reasoning.

Example:

    -- MV
    SELECT o.o_orderkey
    FROM orders o
    INNER JOIN lineitem l
      ON o.o_orderkey = l.l_orderkey

Without the relevant PK/FK metadata, the rewrite may fail.

After:

ALTER TABLE lineitem ADD CONSTRAINT lineitem_pk PRIMARY KEY
(l_orderkey);
    ALTER TABLE orders ADD CONSTRAINT orders_fk
        FOREIGN KEY (o_orderkey) REFERENCES lineitem(l_orderkey);

the same query may become rewritable because the optimizer can prove the
join relationship through constraints.

After dropping either the FK or the referenced PK, that reasoning is no
longer valid, so the rewrite should stop again.

This patch invalidates dependent MTMV rewrite caches after ADD/DROP
CONSTRAINT. The invalidation is driven by the analyzed table name and
affected base-table infos, so it does not depend on rewrite cache
contents that may have been built from old constraint metadata.

It also prevents an in-flight rewrite cache built before the constraint
change from being published after invalidation, avoiding stale PK/FK/UK
metadata from being reused by later rewrites.

---------

Co-authored-by: yangtao555 <yangtao555@jd.com>
1. use gpt-5.5 to replace gpt-5.4 xhigh to enhancement both review
quality and speed
2. avoid visit out of directory since we forbid it in
apache#62898

validated by zclllyybb#29
…t-to-trigger-teamcity workflow (apache#62934)

### What problem does this PR solve?

Issue Number: N/A

Problem Summary: When writing `COMMENT_BODY` to `GITHUB_OUTPUT` using
the simple `echo "COMMENT_BODY='${COMMENT_BODY}'"` form, special
characters in the PR comment body (single quotes, newlines, dollar
signs, etc.) can break the `GITHUB_OUTPUT` format, potentially causing
truncated values or unexpected parsing in subsequent steps.

Replace it with GitHub's recommended multiline EOF-delimiter syntax
using a random delimiter, which safely handles arbitrary content without
any character escaping issues.

**Before:**
```bash
echo "COMMENT_BODY='${COMMENT_BODY}'" | tee -a "$GITHUB_OUTPUT"
```

**After:**
```bash
COMMENT_BODY_DELIMITER=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
{
  echo "COMMENT_BODY<<${COMMENT_BODY_DELIMITER}"
  echo "${COMMENT_BODY}"
  echo "${COMMENT_BODY_DELIMITER}"
} | tee -a "$GITHUB_OUTPUT"
```

### Release note

None

### Check List (For Author)

- Test: No need to test (security improvement to workflow script only)
- Behavior changed: No
- Does this need documentation: No

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…oad.* properties (apache#62680)

### What problem does this PR solve?

Three categories of CREATE/ALTER JOB properties are accepted by the
validator but silently ignored by the streaming runtime. Users set them,
see no error, yet observe no effect — an easy source of confusion and
hard-to-diagnose drift. Reject them upfront so the failure is visible.

1. **from-to path**: `schema` is a PG source-identity namespace (peer of
`database`). The TVF path (`checkUnmodifiableProperties` / `cdc_stream`)
already rejects it; the from-to path
(`checkUnmodifiableSourceProperties`)
   did not. Now aligned.
2. **cdc_stream TVF path**: `snapshot_split_key`, `snapshot_split_size`
   and `snapshot_parallelism` are materialized into split metadata
   (`remainingSplits`, `chunkHighWatermarkMap`) on first fetch and never
   re-read at runtime. ALTER on these is a silent no-op; reject.
3. **target properties (`load.*`)**:
`StreamingMultiTblTask#generateStreamLoadProps`
   only honors `load.max_filter_ratio` and `load.strict_mode`. Any other
   `load.*` (e.g. `load.where`, `load.columns`, `load.merge_type`) is
   accepted by `DataSourceConfigValidator.validateTarget` but dropped at
   runtime. Added an allow-list and reject unsupported `load.*` keys.
Problem Summary: Remove the remaining Pipeline Tracing packaging
artifacts and repository tools so the codebase no longer ships dead
tracing directories or conversion scripts after the runtime feature
deletion.
…ngJob (apache#62747)

### What problem does this PR solve?

StreamingInsertJob currently has no way to bind to a specific
compute_group
(cloud cluster). In multi-cluster cloud deployments this forces all
streaming
jobs to share whatever cluster the Coordinator happens to resolve at
task time,
making per-job resource isolation impossible.

This PR adds a `compute_group` job property so users can pin a
StreamingInsertJob to a specific compute_group, consistent with
RoutineLoad's
name-based binding model (aligned with PR apache#52911 which migrated
RoutineLoad
to name-based cluster lookup).
…pache#62804)

### What problem does this PR solve?

`InsertIntoTableCommand.applyInsertPlanStatistic` populated
`LoadStatistic.fileNum` from `FileScanNode.getSelectedSplitNum()`, i.e.
the BE **split count**, not the number of physical input files. When a
file crossed the split-size threshold (default
`max_initial_file_split_size × 1.1 ≈ 35.2MB`) and was cut into multiple
splits, both `jobs("type"="insert").LoadStatistic.FileNumber` and
`tasks("type"="insert").LoadStatistic.FileNumber` reported a value
larger than the actual file list. In the user-reported scenario, 8 input
files appeared as `FileNumber = 16` because each 42MB file was split in
two. Data correctness is unaffected; only the displayed statistic was
misleading.

This affects both streaming insert jobs and regular `INSERT INTO ...
SELECT FROM S3/HDFS/Hive`.
…ne script tampering (apache#62953)

### What problem does this PR solve?

Issue Number: N/A

Problem Summary:

**1. COMMENT_BODY output injection**
Writing `COMMENT_BODY` to `GITHUB_OUTPUT` using `echo
"COMMENT_BODY='${COMMENT_BODY}'"` breaks when PR comments contain
special characters (single quotes, newlines, `$`, etc.), causing
truncated or incorrectly parsed values in subsequent steps. Fixed by
using GitHub's recommended EOF-delimiter multiline syntax.

**2. Poisoned Pipeline Execution (PPE) via pipeline script tampering**
Shell scripts under `regression-test/pipeline/` are sourced by TeamCity
builds that have access to credentials (oss_ak/oss_sk, tokens, etc.). A
malicious PR author could modify these scripts to exfiltrate secrets
when any committer triggers a single test (e.g. `run p0`).

Added a security guard step that detects if a PR modifies any `.sh` file
under `regression-test/pipeline/` (excluding `conf/` subdirectories). If
so, single test triggers are blocked with an explanatory PR comment.
Only `run buildall` is allowed, requiring the committer to explicitly
acknowledge they have reviewed the pipeline script changes.

The detection logic is intentionally written inline in the workflow YAML
(not sourced from any repository file), so it cannot be bypassed by
modifying files in the PR. GitHub guarantees that `issue_comment` event
workflows always run from the default branch.

### Release note

None

### Check List (For Author)

- Test: No need to test (security improvements to workflow only)
- Behavior changed: Yes — PRs that modify `.sh` files under
`regression-test/pipeline/` (excl. `conf/`) can only be triggered via
`run buildall`
- Does this need documentation: No

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ire (apache#62805)

## Proposed changes

Fix two related bugs on the event-driven warm-up path. Together they
stall BE's heavy work pool when a warm-up job is cancelled or expired
while BE still has its id in `_tablet_replica_cache`.

### 1. BE — `CANCELED` vs `CANCELLED` typo

`be/src/cloud/cloud_warm_up_manager.cpp` used `st.is<CANCELED>()`
(one L). `CANCELED` is not in `ErrorCode`; ADL resolved it to
`PCacheStatus::CANCELED = 9` from a proto enum, so the check compared
against 9 and was always false. When FE returned `TStatusCode.CANCELLED`
(value 1) to tell BE a job was done, BE never pushed the `job_id` into
`cancelled_jobs`, leaving a zombie entry in `_tablet_replica_cache`
that every subsequent `commit_rowset` re-queried.

Fix: use `st.is<ErrorCode::CANCELLED>()`, matching the same
namespace-qualified form used elsewhere in the file.

### 2. FE — NPE in `getTabletReplicaInfos` after job removal

```java
if (job == null || job.isDone()) {
    LOG.info("warmup job {} is not running, notify caller BE {} to cancel job",
            job.getJobId(), clientAddr);   // NPE when job == null
    ...
}
```

Once a cancelled job was removed from `cloudWarmUpJobs` past
`history_cloud_warm_up_job_keep_max_second`, `job` is null and the log
call NPE'd. With bug #1 keeping the stale id in BE cache, BE kept
hitting this RPC forever; each failure took the
`apache::thrift::TException` branch in `thrift_rpc_helper.cpp`, which
sleeps 2s inside `CloudWarmUpManager::_mtx`. That serialised
`bthread_fork_join(commit_rowset)`, blocked heavy-pool threads in
`CloudTabletsChannel::close`, and backed up the heavy-pool queue —
leading to load timeouts and query `Fragment RPC Phase1` latency in
the 10s range.

Fix: log `request.getWarmUpJobId()` instead; it is guaranteed set by
the enclosing `request.isSetWarmUpJobId()` check.
Problem Summary: CORE-6050 reports that canceling a cloud warm up job
can fail to notify surviving BEs when client initialization fails on an
unavailable BE. Keep the normal warmup RPC path fail-fast, but make
CLEAR_JOB client initialization skip unavailable BEs and continue
clearing reachable BEs.
…pache#62886)

apache#58044 changed the error message
when tablet is not found in cache but don't change the condition in
`CloudInternalServiceImpl::warm_up_rowset`. This will cause passive warm
up don't retry because the status code is not `TABLE_NOT_FOUND`.
This PR fix it.
…gned memory reads (apache#62918)

Data type serde code contains many manual memcpy calls that read scalar
values (offsets, decimals,
timestamps, serialized fields) from potentially unaligned memory
addresses (Arrow buffers, binary
deserialization streams). These are functionally correct but obscure the
intent. The codebase already
provides unaligned_load<T>() in util/unaligned.h which wraps the same
memcpy with a clear typed
  interface.

This change replaces all such manual memcpy(&local_var, ptr, sizeof(T))
patterns with auto local_var =
unaligned_load<T>(ptr), making the unaligned-read semantics explicit and
reducing boilerplate.
Additionally:
- unaligned_load now has static_assert(std::is_trivially_copyable_v<T>)
matching the existing
unaligned_store.
- PackedInt128 / PackedUInt128 were missing explicit copy constructors,
which caused a C++20
-Wdeprecated-copy error (promoted to -Werror) when unaligned_load
returned by value.
zclllyybb and others added 5 commits April 30, 2026 11:27
…path (apache#62872)

### What problem does this PR solve?

Related PR: apache#59786

Problem Summary: PR apache#59786 (commit e78d089) refactored
`Scanner::try_append_late_arrival_runtime_filter()` and accidentally
removed the trailing `_applied_rf_num = arrived_rf_num;` assignment. As
a result `_applied_rf_num` is permanently 0 after construction:

* the fast-path `_applied_rf_num == _total_rf_num` early return at the
top of the function never fires, so every batch goes through the full
late-arrival check;
* `arrived_rf_num == _applied_rf_num` only short-circuits when no
runtime filter has ever arrived. Once any RF arrives, every subsequent
call needlessly `_conjuncts.clear()`s, re-clones the conjunct ctxs and
appends the old ones into `_stale_expr_ctxs` — wasted CPU plus slow
memory growth;
* the `ApplyAllRuntimeFilters=True` info string in scanner profile
(`file_scanner.cpp:384`) is never emitted;
* `DCHECK(_applied_rf_num < _total_rf_num)` is effectively dead because
the left-hand side is always 0.

Restore the single missing assignment after cloning the new conjunct
ctxs.

### Release note

None

### Check List (For Author)

- Test: No need to test (one-line restoration of removed assignment;
behavior covered by existing runtime-filter regression tests)
- Behavior changed: No
- Does this need documentation: No

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Today SQL_BLOCK_RULE can block SQL by regex/sqlHash or by scan scale
thresholds such as
`partition_num`, `tablet_num`, and `cardinality`, but it cannot directly
reject queries that
  scan a partitioned table without using any partition filter.

This PR adds a new scan-based SQL block rule option:
`require_partition_filter`.

When this option is enabled on a rule, Doris rejects scans on supported
partitioned tables if
the query does not contain any usable partition predicate. This helps
prevent accidental full
  partition scans caused by missing partition filters.

The rule is intended for workloads where partition filters are mandatory
for safety or cost
  control.

  ### User-visible behavior

  Users can now create a SQL block rule like this:

  ```sql
  CREATE SQL_BLOCK_RULE require_partition_filter_rule
  PROPERTIES(
      "require_partition_filter" = "true",
      "global" = "true",
      "enable" = "true"
  );

  Or bind it to specific users:

  CREATE SQL_BLOCK_RULE require_partition_filter_rule
  PROPERTIES(
      "require_partition_filter" = "true",
      "global" = "false",
      "enable" = "true"
  );

SET PROPERTY FOR 'test_user' 'sql_block_rules' =
'require_partition_filter_rule';

If a supported partitioned table is scanned without any partition
predicate, Doris returns an
  error like:

sql hits sql block rule: require_partition_filter_rule, missing
partition filter

  ### Scope

  This new rule currently applies to:

  - Partitioned internal tables
  - Partitioned Hive external tables

  This rule does not apply to:

  - Non-partitioned internal tables
  - Non-partitioned Hive tables
  - Iceberg tables
  - Other external table types not wired into this rule yet

  ### Rule semantics

  The new property is:

  - require_partition_filter = true|false

  Behavior:

  - The rule only takes effect when require_partition_filter=true
- For supported partitioned tables, the scan is allowed if the query
hits any partition column
    in partition pruning predicates
  - Filters on non-partition columns do not count
  - The rule applies to scan-producing statements, such as:
      - SELECT
      - INSERT INTO ... SELECT ...
  - EXPLAIN is not blocked

  Examples:

  Blocked:

  SELECT * FROM part_tbl;
  SELECT * FROM part_tbl WHERE non_partition_col = 1;
  INSERT INTO dst SELECT * FROM part_tbl;

  Allowed:

  SELECT * FROM part_tbl WHERE dt = '2026-04-09';
  SELECT * FROM part_tbl WHERE dt = '2026-04-09' AND hh = '10';
  INSERT INTO dst SELECT * FROM part_tbl WHERE dt = '2026-04-09';

  ### Compatibility and validation

require_partition_filter is treated as a scan-based SQL block condition.

  It can be used together with existing scan-based limits such as:

  - partition_num
  - tablet_num
  - cardinality

  It cannot be mixed with text-based block conditions such as:

  - sql
  - sqlHash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.