Created on 2023-03-30 17:30 by rouilj, last changed 2023-03-30 17:30 by rouilj.
||Author: [hidden] (rouilj)
||Date: 2023-03-30 17:30
Got an email yesterday asking if Roundup works with TIDB (https://github.com/pingcap/tidb).
The person asking runs this DB already.
tidb is "an open-source distributed SQL database that supports Hybrid Transactional and
Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal
scalability, strong consistency, and high availability. The goal of TiDB is to provide users
with a one-stop database solution that covers OLTP (Online Transactional Processing), OLAP
(Online Analytical Processing), and HTAP services. TiDB is suitable for various use cases that
require high availability and strong consistency with large-scale data."
From a quick glance at the MYSQL compatibility doc:
it looks like it may work. From a quick look:
* We don't use mysql autoincrement columns AFAICT.
* float4/float8 types are not used
* we don't support mysql FULLTEXT search (and neither does tidb)
* we don't have FOREIGN KEY constraints in our schema definitions (also we don't
delete data, so no need for cascading deleting implemented via foreign keys)
* new db's use utf8mb4 which is supported by tidb
* it looks like DDL changes roundup does should be ok for tidb. We don't change data
types via alter table.
* Roundup doesn't use the update/set described in the differences section of
* Roundup doesn't use mysql modes
* I think 'group by' and 'order by' are explicitly defined so SELECT should be compatible.
! table name case may be an issue. mysql is case sensitive table names, tidb smashes all
to lower case. I am not use what happens if we have a class of 'user' an a class of
'User' defined in the schema. Workaround, don't use classes that differ only by case.
I am opening this in case the requestor want to try adapting the existing test_mysql
test for tidb.
Anybody else who is interested can take this and try it out as well.