Hi,
I am trying to test out schema evolution with the partial update function.
Is downstream sink table schema update automatically picked up by queries
running INSERT on that table? Here is a detailed example of the problem
that I am observing.
- CREATE TABLE stream_1 (id INT, col1 INT, PRIMARY KEY (id) NOT ENFORCED);
- CREATE TABLE stream_2 (id INT, col2 INT, PRIMARY KEY (id) NOT ENFORCED);
- CREATE TABLE wide_table (id INT, col1 INT, col2 INT, PRIMARY KEY (id) NOT
ENFORCED) WITH ('merge-engine' = 'partial-update', 'changelog-producer' =
'full-compaction');
- INSERT INTO wide_table (id, col1) SELECT id, col1 FROM stream_1;
- INSERT INTO wide_table (id, col2) SELECT id, col2 FROM stream_2;
- INSERT INTO stream_1 VALUES (0, 1);
- INSERT INTO stream_2 VALUES (0, 2);
- SELECT * FROM wide_table; ---> outputs 0, 1, 2 as expected
- CREATE TABLE stream_3 (id INT, col3 INT, PRIMARY KEY (id) NOT ENFORCED);
- ALTER TABLE wide_table ADD (col3 INT);
- INSERT INTO stream_3 VALUES (0, 3);
- SELECT * FROM wide_table; ---> outputs 0, 1, 2, 3 as expected
- INSERT INTO stream_1 VALUES (0, 11);
- SELECT * FROM wide_table; ---> outputs 0, 11, 2, <null>
The last insert updated the value for col3 to null which I didn't expect.
If I restart the queries for col1 and col2 and then do the insert it works.
I tried using sequence groups as well and that also gives the same results.
Thanks