Hello everyone, we are ADDS Lab from Digital China, we strive to bring distributed database solutions to businesses around the globe. This July, we plan to take TiDB for PgSQL to the PingCAP Hacking Camp. Many may be surprised by what we are trying to do – adding PgSQL compatibility to TiDB, a feature that is as in-demand as it is hard to implement.
TiDB is a splendid distributed relational database that we use a lot internally. We have many applications built using PgSQL that we would like to move to TiDB. However, TiDB’s exclusive support for MySQL makes our migration challenging. So naturally, we want a TiDB that talks PgSQL.
The project is still in its early phase. Our first step is to modify TiDB’s protocol layer, making it compatible with PgSQL’s communication protocol. Currently, we have successfully made it possible for a PgSQL client to connect to TiDB and do some basic queries.
TiDB for PgSQL is open-source on GitHub: TiDB-for-PostgreSQL (github.com)
Adding PgSQL compatibility to TiDB will be a mammoth task, so we need some divide and conquer. In this Hacking Camp event, we wish to polish our protocol compatibility further and maybe add few popular PgSQL syntaxes.
You can learn more about our short-term incremental goals for the next three months from this Design Doc.
We also have plans for additional features further down the line:
- PgSQL syntaxes
- PgSQL table structures
- PgSQL system tables and built-in functions
- PgSQL datatypes
- Other PgSQL features
- Related tools in the eco-system
We believe none of them are reachable without support from the open-source community, especially our dear contributors. So we wholeheartedly invite you to join us and work together.
We are students and beginners in developing and managing open-source projects. If you have any advice or suggestions about the project, feel free to open an issue here. If you would like to contribute or wanna talk in private, you can reach us via email at email@example.com. We appreciate any suggestions or advice, so don’t hesitate to send them in.