Plug-in
Contributions
- Write feature design specifications using the community design template and obtain approval at a Plug-in SIG meeting.
- Perform code development and self-testing. Submit code for review and address all review comments.
- If documentation changes are required, submit a PR to the docs repository. Dolphin-specific syntax documentation can be found here (official website link here).
- Write check-in specifications using the community check-in template and obtain approval at a Plug-in SIG meeting.
- Merge the code.
- Write a test report (
openGauss XX Version XX Feature Test Report.md) using the QA test report template and obtain approval at a QA SIG meeting. (Subscribe to the QA SIG mailing list for meeting schedules).
Dolphin Plug-in Development Precautions
- Check the plug-in development guide.
- If modifications affect documentation, sync updates to the docs repository. Ensure new SQL syntax includes practical examples.
- New or modified code must be wrapped in the
DOLPHIN macro. This distinguishes plug-in code from kernel code when merging into openGauss-server. Use IF/ELSE branches to preserve original logic. This applies primarily to .h and .cpp files; .y files can remain unprocessed.
- Use the
ENABLE_B_CMPT_MODE macro for logic involving dolphin.b_compatibility_mode.
- Verify upgrade and rollback scripts locally. The latest Dolphin version is 3.0. Use the following verification template (replace version numbers as needed):
alter system set upgrade_mode to 2;
select pg_sleep(2);
begin;
set isinplaceupgrade to on;
set dolphin.b_compatibility_mode = off;
alter extension dolphin update to '2.0';
alter extension dolphin update to '3.0';
reset dolphin.b_compatibility_mode;
abort;
alter system set upgrade_mode to 0;
Check Case Writing Specifications
- Check cases default to the
contrib_regression database (B-compatibility type). No manual database creation is required.
- Use schemas to isolate results between different test cases. You can refer to the writing method of existing cases.
- Single case execution should not exceed 10 seconds. Optimize or split cases that exceed this limit.
- Avoid creating new test groups unnecessarily. A single group should contain 5–10 cases for concurrent execution.
- Always use an
ORDER BY clause in SELECT statements to ensure stable results.
Tips
- Use
README_xx.md for multi-language support, for example, README_en.md.
- Gitee blog: blog.gitee.com
- Top open-source projects on Gitee: https://gitee.com/explore
- Gitee Most Valuable Projects (GVP)
- User manual provided by Gitee: https://gitee.com/help
- Gitee Stars, a column showcasing outstanding Gitee members