oceanbase / oceanbase/seekdb

Trigger creation fails with error 4016 when CALLing a procedure with ENUM INOUT parameter inside trigger

Open
#536 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dima type: bug
Dominant language
C++
Stars
2.9k
Forks
339
Avg merge
1d 19h
Merged PRs (30d)
52

Description

Environment

  • Version: OceanBase seekdb (r) (Built 1-042b4c3c6ef9b8a461555ee3cf6e2eccd1e03376 Apr 9 2026)
  • Platform: arm64
  • Runtime Environment: Android Virtual Device (emulator-5554) created by Android Studio
  • Startup Command: ./data/local/tmp/seekdb --nodaemon --base-dir /data/local/tmp/seekdb_data --port 5881
  • Listening Port: 5881

Description

When running the mysqltest test case pl.pl_enum_set_bugs_mysql on an Android emulator, the creation of a trigger fails with error 4016 Internal error. The trigger contains a CALL statement to a procedure that has an ENUM INOUT parameter. The same test passes on a Linux environment.

Steps to Reproduce

  1. On the target machine, navigate to the directory: /obdata/data/AndroidTest/ob_opensource_test/tools/deploy
  2. Execute the following commands:
export OCEANBASE_HOME=/obdata/data/AndroidTest/ob_opensource_test/
cd ${OCEANBASE_HOME}/tools/deploy
source activate_obd.sh
export OBD_SEEKDB_STATUS_FALLBACK_TCP=1

obd test mysqltest test_env --mysqltest-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/mysqltest --obclient-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/obclient --init-only --init-sql-dir=${OCEANBASE_HOME}/tools/deploy --init-sql-files='init.sql,init_user.sql|root@sys|test'
obd test mysqltest test_env --mysqltest-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/mysqltest --obclient-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/obclient --disable-reboot --test-set=pl.pl_enum_set_bugs_mysql

Actual Result

  • On Android Emulator: The test fails with error 4016 Internal error during trigger creation.
  • On Linux: The test passes successfully.

Additional Context

The issue appears to be specific to the Android (arm64) platform when handling the creation of a trigger that invokes a stored procedure with an ENUM INOUT parameter.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the mysqltest case pl.pl_enum_set_bugs_mysql with the supplied obd commands on the Android arm64 environment, then compare trigger creation with Linux. Focus on the trigger that CALLs a procedure with an ENUM INOUT parameter; done means the test passes on Android without error 4016.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, sql
Domain
databases, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.