KunlunBase is a distributed relational database management system(RDBMS) with complete NewSQL capabilities and robust transaction ACID guarantees and is compatible with standard SQL. Applications which used PostgreSQL or MySQL can work with KunlunBase as-is without any code change or rebuild because KunlunBase supports both PostgreSQL and MySQL connection protocols and DML SQL grammars. MySQL DBAs can quickly work on a KunlunBase cluster because we use MySQL as storage nodes of KunlunBase. KunlunBase can elastically scale out as needed, and guarantees transaction ACID under error conditions, and KunlunBase fully passes TPC-C, TPC-H and TPC-DS test suites, so it not only support OLTP workloads but also OLAP workloads. Application developers can use KunlunBase to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by KunlunBase. KunlunBase supports powerful and user friendly cluster management, monitor and provision features, can be readily used as DBaaS.
2021-10-20 09:30:13: @david-zhao created the issue
In enterprise edition, when enable_remote_agg_pushdown is true below test case(that of ticket#81) fails because row type mismatch between RemoteJoin and GroupAggregate nodes
drop table if exists INT8_TBL;
CREATE TABLE INT8_TBL(id serial primary key, q1 int8, q2 int8);
INSERT INTO INT8_TBL(q1, q2) VALUES(' 123 ',' 456');
INSERT INTO INT8_TBL(q1, q2) VALUES('123 ','4567890123456789');
INSERT INTO INT8_TBL(q1, q2) VALUES('4567890123456789','123');
INSERT INTO INT8_TBL(q1, q2) VALUES(+4567890123456789,'4567890123456789');
INSERT INTO INT8_TBL(q1, q2) VALUES('+4567890123456789','-4567890123456789');
explain select t1.q2, count(t2.*) from int8_tbl t1 left join int8_tbl t2 on (t1.q2 = t2.q1) group by t1.q2 order by 1;
QUERY PLAN
GroupAggregate (cost=0.01..0.03 rows=1 width=16)
Group Key: t1.
-> RemoteJoin Left Join (cost=0.00..0.00 rows=0 width=52)
Join Filter: (t1. = t2.*)
Shard: 7 Remote SQL: select t1.q2, t2.id, t2.q1, t2.q2 from ( regression_$$_public.int8tbl t1 LEFT JOIN regression$$_public.int8_tbl t2 ON (t1.q2 = t2.q1)) ORDER BY 1 ASC
(5 rows)
select t1.q2, count(t2.*) from int8_tbl t1 left join int8_tbl t2 on (t1.q2 = t2.q1) group by t1.q2 order by 1;
ERROR: table row type and query-specified row type do not match
DETAIL: Table row contains 4 attributes, but query expects 3.
Issue migrated from trac ticket # 196
component: computing nodes | priority: major
2021-10-20 09:30:13: @david-zhao created the issue