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

Reply via email to