1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
# name: test/sql/storage/partial_blocks/many_columns_structs.test_slow
# description: Test storing many columns of structs
# group: [partial_blocks]
load __TEST_DIR__/many_columns.db
statement ok
CREATE TABLE structs(i0 ROW(i INTEGER, j INTEGER), i1 ROW(i INTEGER, j INTEGER), i2 ROW(i INTEGER, j INTEGER), i3 ROW(i INTEGER, j INTEGER), i4 ROW(i INTEGER, j INTEGER), i5 ROW(i INTEGER, j INTEGER), i6 ROW(i INTEGER, j INTEGER), i7 ROW(i INTEGER, j INTEGER), i8 ROW(i INTEGER, j INTEGER), i9 ROW(i INTEGER, j INTEGER), i10 ROW(i INTEGER, j INTEGER), i11 ROW(i INTEGER, j INTEGER), i12 ROW(i INTEGER, j INTEGER), i13 ROW(i INTEGER, j INTEGER), i14 ROW(i INTEGER, j INTEGER), i15 ROW(i INTEGER, j INTEGER), i16 ROW(i INTEGER, j INTEGER), i17 ROW(i INTEGER, j INTEGER), i18 ROW(i INTEGER, j INTEGER), i19 ROW(i INTEGER, j INTEGER), i20 ROW(i INTEGER, j INTEGER), i21 ROW(i INTEGER, j INTEGER), i22 ROW(i INTEGER, j INTEGER), i23 ROW(i INTEGER, j INTEGER), i24 ROW(i INTEGER, j INTEGER), i25 ROW(i INTEGER, j INTEGER), i26 ROW(i INTEGER, j INTEGER), i27 ROW(i INTEGER, j INTEGER), i28 ROW(i INTEGER, j INTEGER), i29 ROW(i INTEGER, j INTEGER), i30 ROW(i INTEGER, j INTEGER), i31 ROW(i INTEGER, j INTEGER), i32 ROW(i INTEGER, j INTEGER), i33 ROW(i INTEGER, j INTEGER), i34 ROW(i INTEGER, j INTEGER), i35 ROW(i INTEGER, j INTEGER), i36 ROW(i INTEGER, j INTEGER), i37 ROW(i INTEGER, j INTEGER), i38 ROW(i INTEGER, j INTEGER), i39 ROW(i INTEGER, j INTEGER), i40 ROW(i INTEGER, j INTEGER), i41 ROW(i INTEGER, j INTEGER), i42 ROW(i INTEGER, j INTEGER), i43 ROW(i INTEGER, j INTEGER), i44 ROW(i INTEGER, j INTEGER), i45 ROW(i INTEGER, j INTEGER), i46 ROW(i INTEGER, j INTEGER), i47 ROW(i INTEGER, j INTEGER), i48 ROW(i INTEGER, j INTEGER), i49 ROW(i INTEGER, j INTEGER), i50 ROW(i INTEGER, j INTEGER), i51 ROW(i INTEGER, j INTEGER), i52 ROW(i INTEGER, j INTEGER), i53 ROW(i INTEGER, j INTEGER), i54 ROW(i INTEGER, j INTEGER), i55 ROW(i INTEGER, j INTEGER), i56 ROW(i INTEGER, j INTEGER), i57 ROW(i INTEGER, j INTEGER), i58 ROW(i INTEGER, j INTEGER), i59 ROW(i INTEGER, j INTEGER), i60 ROW(i INTEGER, j INTEGER), i61 ROW(i INTEGER, j INTEGER), i62 ROW(i INTEGER, j INTEGER), i63 ROW(i INTEGER, j INTEGER), i64 ROW(i INTEGER, j INTEGER), i65 ROW(i INTEGER, j INTEGER), i66 ROW(i INTEGER, j INTEGER), i67 ROW(i INTEGER, j INTEGER), i68 ROW(i INTEGER, j INTEGER), i69 ROW(i INTEGER, j INTEGER), i70 ROW(i INTEGER, j INTEGER), i71 ROW(i INTEGER, j INTEGER), i72 ROW(i INTEGER, j INTEGER), i73 ROW(i INTEGER, j INTEGER), i74 ROW(i INTEGER, j INTEGER), i75 ROW(i INTEGER, j INTEGER), i76 ROW(i INTEGER, j INTEGER), i77 ROW(i INTEGER, j INTEGER), i78 ROW(i INTEGER, j INTEGER), i79 ROW(i INTEGER, j INTEGER), i80 ROW(i INTEGER, j INTEGER), i81 ROW(i INTEGER, j INTEGER), i82 ROW(i INTEGER, j INTEGER), i83 ROW(i INTEGER, j INTEGER), i84 ROW(i INTEGER, j INTEGER), i85 ROW(i INTEGER, j INTEGER), i86 ROW(i INTEGER, j INTEGER), i87 ROW(i INTEGER, j INTEGER), i88 ROW(i INTEGER, j INTEGER), i89 ROW(i INTEGER, j INTEGER), i90 ROW(i INTEGER, j INTEGER), i91 ROW(i INTEGER, j INTEGER), i92 ROW(i INTEGER, j INTEGER), i93 ROW(i INTEGER, j INTEGER), i94 ROW(i INTEGER, j INTEGER), i95 ROW(i INTEGER, j INTEGER), i96 ROW(i INTEGER, j INTEGER), i97 ROW(i INTEGER, j INTEGER), i98 ROW(i INTEGER, j INTEGER), i99 ROW(i INTEGER, j INTEGER));
statement ok
INSERT INTO structs VALUES (ROW(0, 0), ROW(1, 1), ROW(2, 2), ROW(3, 3), ROW(4, 4), ROW(5, 5), ROW(6, 6), ROW(7, 7), ROW(8, 8), ROW(9, 9), ROW(10, 10), ROW(11, 11), ROW(12, 12), ROW(13, 13), ROW(14, 14), ROW(15, 15), ROW(16, 16), ROW(17, 17), ROW(18, 18), ROW(19, 19), ROW(20, 20), ROW(21, 21), ROW(22, 22), ROW(23, 23), ROW(24, 24), ROW(25, 25), ROW(26, 26), ROW(27, 27), ROW(28, 28), ROW(29, 29), ROW(30, 30), ROW(31, 31), ROW(32, 32), ROW(33, 33), ROW(34, 34), ROW(35, 35), ROW(36, 36), ROW(37, 37), ROW(38, 38), ROW(39, 39), ROW(40, 40), ROW(41, 41), ROW(42, 42), ROW(43, 43), ROW(44, 44), ROW(45, 45), ROW(46, 46), ROW(47, 47), ROW(48, 48), ROW(49, 49), ROW(50, 50), ROW(51, 51), ROW(52, 52), ROW(53, 53), ROW(54, 54), ROW(55, 55), ROW(56, 56), ROW(57, 57), ROW(58, 58), ROW(59, 59), ROW(60, 60), ROW(61, 61), ROW(62, 62), ROW(63, 63), ROW(64, 64), ROW(65, 65), ROW(66, 66), ROW(67, 67), ROW(68, 68), ROW(69, 69), ROW(70, 70), ROW(71, 71), ROW(72, 72), ROW(73, 73), ROW(74, 74), ROW(75, 75), ROW(76, 76), ROW(77, 77), ROW(78, 78), ROW(79, 79), ROW(80, 80), ROW(81, 81), ROW(82, 82), ROW(83, 83), ROW(84, 84), ROW(85, 85), ROW(86, 86), ROW(87, 87), ROW(88, 88), ROW(89, 89), ROW(90, 90), ROW(91, 91), ROW(92, 92), ROW(93, 93), ROW(94, 94), ROW(95, 95), ROW(96, 96), ROW(97, 97), ROW(98, 98), ROW(99, 99));
statement ok
CHECKPOINT
query I
SELECT total_blocks * block_size < 15 * 262144 FROM pragma_database_size()
----
true
statement ok
INSERT INTO structs VALUES (ROW(1, 1), ROW(2, 2), ROW(3, 3), ROW(4, 4), ROW(5, 5), ROW(6, 6), ROW(7, 7), ROW(8, 8), ROW(9, 9), ROW(10, 10), ROW(11, 11), ROW(12, 12), ROW(13, 13), ROW(14, 14), ROW(15, 15), ROW(16, 16), ROW(17, 17), ROW(18, 18), ROW(19, 19), ROW(20, 20), ROW(21, 21), ROW(22, 22), ROW(23, 23), ROW(24, 24), ROW(25, 25), ROW(26, 26), ROW(27, 27), ROW(28, 28), ROW(29, 29), ROW(30, 30), ROW(31, 31), ROW(32, 32), ROW(33, 33), ROW(34, 34), ROW(35, 35), ROW(36, 36), ROW(37, 37), ROW(38, 38), ROW(39, 39), ROW(40, 40), ROW(41, 41), ROW(42, 42), ROW(43, 43), ROW(44, 44), ROW(45, 45), ROW(46, 46), ROW(47, 47), ROW(48, 48), ROW(49, 49), ROW(50, 50), ROW(51, 51), ROW(52, 52), ROW(53, 53), ROW(54, 54), ROW(55, 55), ROW(56, 56), ROW(57, 57), ROW(58, 58), ROW(59, 59), ROW(60, 60), ROW(61, 61), ROW(62, 62), ROW(63, 63), ROW(64, 64), ROW(65, 65), ROW(66, 66), ROW(67, 67), ROW(68, 68), ROW(69, 69), ROW(70, 70), ROW(71, 71), ROW(72, 72), ROW(73, 73), ROW(74, 74), ROW(75, 75), ROW(76, 76), ROW(77, 77), ROW(78, 78), ROW(79, 79), ROW(80, 80), ROW(81, 81), ROW(82, 82), ROW(83, 83), ROW(84, 84), ROW(85, 85), ROW(86, 86), ROW(87, 87), ROW(88, 88), ROW(89, 89), ROW(90, 90), ROW(91, 91), ROW(92, 92), ROW(93, 93), ROW(94, 94), ROW(95, 95), ROW(96, 96), ROW(97, 97), ROW(98, 98), ROW(99, 99), ROW(100, 100));
statement ok
CHECKPOINT
query I
select count(*) from pragma_storage_info('structs') where block_id IS NULL;
----
0
query I nosort q0
SELECT total_blocks FROM pragma_database_size()
----
loop i 0 100
query II
SELECT i${i}['i']=${i}, i${i}['j']=${i} FROM structs
----
true true
false false
query II
SELECT i${i}['i']=${i}+1, i${i}['j']=${i}+1 FROM structs
----
false false
true true
endloop
restart
loop i 0 100
query II
SELECT i${i}['i']=${i}, i${i}['j']=${i} FROM structs
----
true true
false false
query II
SELECT i${i}['i']=${i}+1, i${i}['j']=${i}+1 FROM structs
----
false false
true true
endloop
query I nosort q0
SELECT total_blocks FROM pragma_database_size()
----
|