【开源之夏学生访谈】我在 IvorySQL“造函数”:从搬砖研究生到数据库内核修炼者

本期的主角,是来自河北经贸大学的计算机技术硕士——崇鹏豪。

白天写论文,晚上啃源码。

一边修 bug,一边修行。

自称“课题搬砖工 + 开源摸鱼人”,却在“摸鱼”中摸出了真功夫。

🧑‍💻 自我介绍:白天科研,晚上修仙

“大家好,我是崇鹏豪。

白天我对着论文皱眉,代码改八百遍还在调试。

晚上就化身开源野生选手,一头扎进代码堆里找存在感。”

周末常常骑车绕着二环“思考人生”——表面是在冥想,其实心里盘算着:“下次怎么少写点 bug。”

“如果你觉得我的代码还有救,或者想交流踩坑经验,随时欢迎来信:

cph13000@gmail.com。”

认真、自嘲又带着点理工科式的幽默,这大概正是开源社区里最可爱的那种气质。

🚀 与开源结缘:从一条 B 站视频开始

故事的起点并不宏大。

某天刷 B 站时,开源之夏的宣传视频闯进了他的视野,画面里开发者们讨论项目、提 PR、审代码,一派“高手过招”的氛围。

那一刻,他一个念头闪过:

“与其在课本里啃理论,不如亲自下场练手。反正调 bug 我也有经验。”

于是他开始研究活动机制,从导师指导到申报流程都仔细看了一遍,越看越心动——“对学生太友好了,这谁顶得住?”

就这样,他正式踏上了开源实践的旅程。

🐘 相中 IvorySQL:一次“技术盲区”的挑战

选项目时,目标很明确——IvorySQL。

这是一个基于 PostgreSQL 内核、主打 Oracle 兼容特性的开源数据库。

此前他的开发经历主要集中在前端领域,写过 JS 和 Vue,跟着文档改改逻辑、调整界面;而这次选择数据库内核开发,跨度堪比“从装修到造房子”。

数据库开发是完全陌生的领域。

“前端处理的是用户能看到的交互,而数据库掌管的是系统的‘五脏六腑’。能在这里动手术,既陌生又兴奋。”

带着好奇与一点点“挑战新 boss”的热情,他正式加入了 IvorySQL 项目。

🧩 项目实践:在数据库里“造函数”

项目名称是《为 IvorySQL 开发基于 uuid-ossp 的 sys_guid 函数》。

目标很清晰,让 IvorySQL 拥有与 Oracle 同样的 sys_guid() 功能,用于生成唯一标识符。

IvorySQL 虽然基于 PostgreSQL,但尚未内置该函数,需要在 uuid-ossp 插件中进行扩展。

“配方”如下:

  1. 优先调用 uuid_make()
  2. 若无该插件,则尝试 uuid_generate_random()
  3. 若仍不可用,则回退到 arc4random()
  4. 同时优化自动加载机制,使函数可直接调用。

一句话总结:

“哪怕没有插件,也要让数据库自己造出一个唯一标识。”

⚙️ 开发日常:白天论文,夜晚内核

时间分配是一门艺术。

崇鹏豪采用“错峰操作”的策略——白天上课、研究课题,夜晚与周末专注项目开发。

每个夜晚,都在与数据库内核“深度对话”。

但过程自然不可能一帆风顺。

两个典型的“坑”让人印象深刻:

  • 类型问题:初版返回值为 text 类型,而 Oracle 要求字节数组,导致输出混乱。
  • 权限问题:函数最初注册在 public 模式,忽略了 pg_catalog 的系统权限限制。

在导师牛老师的指导下,他的问题逐步解决,不仅指出症结所在,还讲清背后的原理,让修复过程成为一次系统性学习。

“那一刻才真正体会到,导师的三句话能比十个小时的查文档更高效。”

🌱 收获与成长:从“使用者”到“参与者”

这次实践,不只是技术上的跨越,更是对“协作与规范”的再认识。

开源开发要求每一次提交都有据可查、每一行修改都有逻辑依据。

从阅读文档到提交代码,从问题讨论到合并请求,他逐渐熟悉了社区的协作节奏。

“以前写代码是自己和自己较劲;现在要按社区标准来写、按规范提交。光学 commit message,就像在修炼内功。”

最大的改变,不在技术,而在心态——从开源软件的“使用者”,成长为生态的“参与者”。

🔭 展望未来:在开源的路上继续前行

未来的方向已然明确。

他将继续关注 IvorySQL 社区的 issue,积极参与讨论与修复。

在崇鹏豪看来,开源的魅力在于思想碰撞。不同背景的开发者在交流中不断磨合,最终凝结为更高质量的代码。

“只要有参与的热情,每个人都能成为开源生态的一份子。”

👨‍🏫 导师寄语

“崇鹏豪同学在本次开源之夏的活动中所表现出来的扎实的编程功底让我印象深刻,对技术的未知领域充满好奇心并进行了深入探索,这是未来取得更大成功所不可缺少的,希望崇鹏豪以此次活动为契机,在开源技术领域进行做出更多的贡献,在自己的成长之路上留下坚实的脚印。”

—— 牛世继

🐣 结语

从“课题搬砖”到“数据库修炼”

从写论文到写内核函数

崇鹏豪用一段 sys_guid() 的开发旅程,完成了从理论学习到实践创新的蜕变。

开源不是天才的专属,

而是一群充满好奇与坚持的人,

在不断探索与打磨中,让世界的代码运行得更好。

posted @ 2025-11-17 16:45  IvorySQL  阅读(2)  评论(0)    收藏  举报