blob: 3e08eba871db2b34fafa6001b98fd74db54c2ab0 [file] [log] [blame]
create table t1(
ts BIG INT,
dur BIG INT,
a BIG INT,
PRIMARY KEY (ts)
) without rowid;
create table t2(
ts BIG INT,
dur BIG INT,
b BIG INT,
part BIG INT,
PRIMARY KEY (part, ts)
) without rowid;
-- Insert some rows into t2 which are in part 0 and 1 but before t1's rows.
INSERT INTO t2(ts, dur, part, b)
VALUES
(0, 25, 0, 111),
(50, 50, 0, 222),
(0, 40, 1, 333);
-- Then insert some rows into t1 in part 1, 3, 4 and 5.
INSERT INTO t1(ts, dur, a)
VALUES
(100, 400, 111),
(500, 50, 222),
(600, 100, 333),
(900, 100, 444);
-- Insert a row into t2 which should be split up by t1's first row.
INSERT INTO t2(ts, dur, part, b) VALUES (50, 200, 1, 444);
-- Insert a row into t2 should should be completely covered by t1's first row.
INSERT INTO t2(ts, dur, part, b) VALUES (300, 100, 1, 555);
-- Insert a row into t2 which should span between t1's first and second rows.
INSERT INTO t2(ts, dur, part, b) VALUES (400, 250, 1, 666);
-- Insert a row into t2 in partition 2.
INSERT INTO t2(ts, dur, part, b) VALUES (100, 1000, 2, 777);
-- Insert a row into t2 before t1's first row in partition 4.
INSERT INTO t2(ts, dur, part, b) VALUES (50, 50, 4, 888);
-- Insert a row into t2 which perfectly matches the second row in partition 4.
INSERT INTO t2(ts, dur, part, b) VALUES (500, 50, 4, 999);
-- Insert a row into t2 which intersects the first row of partition 5.
INSERT INTO t2(ts, dur, part, b) VALUES (50, 75, 5, 1111);
-- Insert a row into t2 which intersects the third row of partition 5.
INSERT INTO t2(ts, dur, part, b) VALUES (525, 75, 5, 2222);
-- Insert a row into t2 which misses everything in partition 6.
INSERT INTO t2(ts, dur, part, b) VALUES (0, 100, 6, 2222);
create virtual table sp using span_left_join(t1, t2 PARTITIONED part);
select * from sp;