turso icon indicating copy to clipboard operation
turso copied to clipboard

btree page type mismatch after recursive trigger inserts

Open Pavan-Nambi opened this issue 4 months ago • 1 comments

seed: 18153314986703395229

turso> CREATE TABLE courageous_most_0 (
    incredible_estonia_1 TEXT,
    imaginative_reclus_2 TEXT,
    romantic_provocazione_3 INTEGER,
    fortuitous_rublyov_4 INTEGER,
    incredible_hostis_5 REAL,
    optimistic_oneal_6 REAL,
    resourceful_king_7 TEXT,
    fortuitous_holdsworth_8 REAL
);

INSERT INTO courageous_most_0 VALUES
('adaptable_shiar', 'diplomatic_critchley', -2489481598316826777, 151542156492777025, -3258804165.457345, 7795018885.503864, 'fantastic_dejacque', -6493641512.426089),
('zestful_akai', 'competitive_carryout', 5889268209005886833, 8283882445886622572, 6792770188.756792, 1801765279.8443432, 'stunning_hernandez', 7352084093.475552);

INSERT INTO courageous_most_0 VALUES
('lustrous_annwen', 'willing_gomez', -5614366886406622759, -7791646192086229994, -9833115147.866734, -9244508568.756208, 'proficient_karamustafa', -1862913721.402979),
('ample_sharbach', 'creative_bivar', -5319519710448790938, -5537956686303763104, 4664559320.918085, -5409451336.663329, 'insightful_ades', 9403346526.392712),
('engaging_brinton', 'fantastic_jasiewicz', 6734783506063596110, 5084458973595380322, -6631939481.135247, 337518315.18577576, 'ample_coleman', -6836017357.506612),
('stellar_durruti', 'sensible_arrigoni', -8671894073483015799, -6986867778548297211, 8607732484.992855, 1120045678.2203636, 'generous_patrizia', 5608724.979141235);

DELETE FROM courageous_most_0
WHERE (fortuitous_holdsworth_8 < -12121766437.769985
       OR fortuitous_rublyov_4 < 7566453246022157612
       OR resourceful_king_7 > 'ample_colflkK');

CREATE TRIGGER trigger_courageous_most_0_830929942
AFTER INSERT ON courageous_most_0
BEGIN
    UPDATE courageous_most_0
    SET incredible_hostis_5 = -5218927889.391813,
        fortuitous_holdsworth_8 = -6867460726.918852
    WHERE (FALSE);
    DELETE FROM courageous_most_0 WHERE (FALSE);
    DELETE FROM courageous_most_0 WHERE (TRUE);
END;

UPDATE courageous_most_0 SET resourceful_king_7 = 'loving_weinberg' WHERE (FALSE);

CREATE TABLE spellbinding_occupation_9 (
    fearless_reitman_10 REAL,
    affectionate_lacazeduthiers_11 INTEGER,
    thoughtful_hunt_12 TEXT,
    outstanding_gorman_13 BLOB,
    rousing_mutualistsorg_14 REAL,
    brilliant_heller_15 INTEGER,
    sleek_minyi_16 REAL,
    technological_propos_17 TEXT,
    fantastic_hewetson_18 BLOB
);

DROP TRIGGER IF EXISTS trigger_courageous_most_0_830929942;
DROP TABLE courageous_most_0;

CREATE TRIGGER trigger_spellbinding_occupation_9_3199742326
BEFORE INSERT ON spellbinding_occupation_9
BEGIN
    INSERT INTO spellbinding_occupation_9
        SELECT * FROM spellbinding_occupation_9 WHERE (TRUE);
    DELETE FROM spellbinding_occupation_9 WHERE (FALSE);
    UPDATE spellbinding_occupation_9
    SET affectionate_lacazeduthiers_11 = -8156403899205781517,
        brilliant_heller_15 = -5125876187024831370,
        rousing_mutualistsorg_14 = 5407180534.325975,
        fantastic_hewetson_18 = X'73757065725F7075676E616C65',
        thoughtful_hunt_12 = 'fortuitous_ocarroll',
        fearless_reitman_10 = -5950482754.331081,
        technological_propos_17 = 'imaginative_laya'
    WHERE (FALSE);
END;

INSERT INTO spellbinding_occupation_9 VALUES
(4424809535.610264, -578783662584182030, 'diplomatic_heredia', X'706C75636B795F626167696E736B69', -8706666618.225624, 308424772820097370, 8891353023.855804, 'excellent_mccarthy', X'616D617A696E675F6C616E65'),
(6256766006.928358, 8443373764808777983, 'rousing_abacus', X'676C696D6D6572696E675F7A6971', -2628193223.9937954, 3459210825691415951, -295951398.30797577, 'kind_sharp', X'6C6F76696E675F656D6D61');

BEGIN IMMEDIATE;
ROLLBACK;

INSERT INTO spellbinding_occupation_9 VALUES
(-6800098379.631634, 2482803385035812249, 'flexible_pentecost', X'6D6F76696E675F776F6F64776F726B', -5101433261.720527, -3567788410267959713, -8073502947.6008835, 'glistening_fulano', X'636F75726167656F75735F6B616C65'),
(3306794031.008669, 6427602129275079032, 'wondrous_monaghan', X'64696C6967656E745F7363687761727A', 9631408519.53051, -1684447188648680268, 3252650683.341938, 'optimistic_nappalos', X'656C6567616E745F73746F776173736572');

INSERT INTO spellbinding_occupation_9 VALUES
(7767161224.622696, -1743571527922740251, 'adaptable_reo', X'6D61676E69666963656E745F70617472697A6961', 4518833159.836601, 7745538090405886344, -5362785860.664702, 'qualified_hakiel', X'656E6761676966755F6E75727365'),
(7238299930.889935, -6905021346313814225, 'sincere_aman', X'666162756C6F75735F73616D75647A69', 1746051365.7113361, 8456865750190177515, -9173223276.743935, 'spectacular_mogutin', X'6C696B61626C655F636C61726B'),
(2386990685.0495243, 6605207765674540892, 'courageous_knabb', X'696E646570656E64656E745F726462', -1220491985.740755, -7244471264718141981, -4274556067.547324, 'thoughtful_enckell', X'70726F647563746976655F7261736B696E'),
(3760241384.9700813, 7633896663664778180, 'spectacular_preti', X'64696C6967656E745F6B657272', 3129288675.6782093, 6385161053648972070, 5783058869.993795, 'resourceful_russo', X'7368696D6D6572696E675F64617669646E65656C'),
(9654906624.491634, 5240627906285380382, 'spellbinding_submedia', X'6C6F76656C795F726F6F73', -620764284.3328953, -4506780404010403369, 4642790445.595289, 'shimmering_stirner', X'746563686E6F6C6F676963616C5F68756D616E');

thread 'main' panicked at core/storage/sqlite3_ondisk.rs:754:9:
assertion failed: self.page_type() == PageType::TableLeaf
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Pavan-Nambi avatar Nov 24 '25 04:11 Pavan-Nambi

i wanted to try but i didn't got time and now i have to off to work, so thought to log it here for anyone else to take a look.

Pavan-Nambi avatar Nov 24 '25 04:11 Pavan-Nambi

More minimal example derived from above:

CREATE TABLE spellbinding_occupation_9 (
    fearless_reitman_10 REAL,
    affectionate_lacazeduthiers_11 INTEGER,
    thoughtful_hunt_12 TEXT,
    outstanding_gorman_13 BLOB,
    rousing_mutualistsorg_14 REAL,
    brilliant_heller_15 INTEGER,
    sleek_minyi_16 REAL,
    technological_propos_17 TEXT,
    fantastic_hewetson_18 BLOB
);

CREATE TRIGGER trigger_spellbinding_occupation_9_3199742326
BEFORE INSERT ON spellbinding_occupation_9
BEGIN
    INSERT INTO spellbinding_occupation_9
        SELECT * FROM spellbinding_occupation_9 WHERE (TRUE);
    UPDATE spellbinding_occupation_9
    SET affectionate_lacazeduthiers_11 = -8156403899205781517,
        brilliant_heller_15 = -5125876187024831370,
        rousing_mutualistsorg_14 = 5407180534.325975,
        fantastic_hewetson_18 = X'73757065725F7075676E616C65',
        thoughtful_hunt_12 = 'fortuitous_ocarroll',
        fearless_reitman_10 = -5950482754.331081,
        technological_propos_17 = 'imaginative_laya'
    WHERE (FALSE);
END;

INSERT INTO spellbinding_occupation_9 VALUES
(4424809535.610264, -578783662584182030, 'diplomatic_heredia', X'706C75636B795F626167696E736B69', -8706666618.225624, 308424772820097370, 8891353023.855804, 'excellent_mccarthy', X'616D617A696E675F6C616E65'),
(6256766006.928358, 8443373764808777983, 'rousing_abacus', X'676C696D6D6572696E675F7A6971', -2628193223.9937954, 3459210825691415951, -295951398.30797577, 'kind_sharp', X'6C6F76696E675F656D6D61');

INSERT INTO spellbinding_occupation_9 VALUES
(-6800098379.631634, 2482803385035812249, 'flexible_pentecost', X'6D6F76696E675F776F6F64776F726B', -5101433261.720527, -3567788410267959713, -8073502947.6008835, 'glistening_fulano', X'636F75726167656F75735F6B616C65'),
(3306794031.008669, 6427602129275079032, 'wondrous_monaghan', X'64696C6967656E745F7363687761727A', 9631408519.53051, -1684447188648680268, 3252650683.341938, 'optimistic_nappalos', X'656C6567616E745F73746F776173736572');

INSERT INTO spellbinding_occupation_9 VALUES
(7767161224.622696, -1743571527922740251, 'adaptable_reo', X'6D61676E69666963656E745F70617472697A6961', 4518833159.836601, 7745538090405886344, -5362785860.664702, 'qualified_hakiel', X'656E6761676966755F6E75727365'),
(7238299930.889935, -6905021346313814225, 'sincere_aman', X'666162756C6F75735F73616D75647A69', 1746051365.7113361, 8456865750190177515, -9173223276.743935, 'spectacular_mogutin', X'6C696B61626C655F636C61726B'),
(2386990685.0495243, 6605207765674540892, 'courageous_knabb', X'696E646570656E64656E745F726462', -1220491985.740755, -7244471264718141981, -4274556067.547324, 'thoughtful_enckell', X'70726F647563746976655F7261736B696E'),
(3760241384.9700813, 7633896663664778180, 'spectacular_preti', X'64696C6967656E745F6B657272', 3129288675.6782093, 6385161053648972070, 5783058869.993795, 'resourceful_russo', X'7368696D6D6572696E675F64617669646E65656C'),
(9654906624.491634, 5240627906285380382, 'spellbinding_submedia', X'6C6F76656C795F726F6F73', -620764284.3328953, -4506780404010403369, 4642790445.595289, 'shimmering_stirner', X'746563686E6F6C6F676963616C5F68756D616E');

jussisaurio avatar Dec 08 '25 11:12 jussisaurio

This is probably a problem with the move_to_right_state performance optimization not taking into account btree modifications from trigger subprograms.

jussisaurio avatar Dec 08 '25 11:12 jussisaurio