ispyisail
60489c9893
Fix two faults the end-state gates found (stage D7)
...
A .qetz re-saved after opening from its index saved wrong folio numbers
in its database: reading each folio's header wrote its row with a
number counted from the folios read so far ("1/1", "2/2" for "1/3",
"2/3"), and an index-opened project keeps the rows it was saved with,
so nothing wrote them again. The folio table's rows are no longer
written while the project is being read (projectDataBase::
diagramInfoChanged()). Folio list tables showed it.
A .qetz whose project.sqlite is not a database crashed QElectroTech: the
first statement could not be prepared and SQLite was handed a null
statement. A statement that cannot be prepared now binds nothing and
steps to no row, and the file is refused.
Gates: 342 corpus projects,
written by QElectroTech 0.3 to 0.200, all open; .qet -> .qetz -> .qet
equals the plain resave with every folio built; a .qetz re-saved twice
holds the same bytes entry by entry but the save's own name, path and
time (the first fault made the first re-save differ); hostile .qetz
(truncated, garbage database, view for a table, trigger, escaping and
repeated names, later format, missing folio, 2 GiB zip bomb) neither
crash nor hang and none opens; an unknown extra entry still opens.
tst_lazyfolios: folio numbers with totals from the index as when built
(fails without the fix); tst_qetcontainer: garbage database refused
(segfaults without it). ctest 96/96 both ways; save and export gates
same on 342.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 23:03:51 +13:00
..
2026-10-13 11:01:21 +02:00
2026-10-13 11:01:21 +02:00
2026-10-11 05:00:01 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:51 +13:00
2026-10-11 05:00:01 +02:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-10-10 16:03:47 +02:00
2026-10-08 12:50:13 +13:00
2026-10-11 05:00:01 +02:00
2026-10-09 23:31:26 +13:00
2026-08-17 10:25:44 +02:00
2026-10-08 12:50:13 +13:00
2026-10-08 12:50:13 +13:00
2026-10-08 12:50:13 +13:00
2026-10-13 11:01:21 +02:00
2026-07-31 09:52:32 +12:00
2026-10-11 05:00:01 +02:00
2026-10-08 12:50:13 +13:00
2026-10-08 12:50:13 +13:00
2026-10-13 23:03:51 +13:00
2026-10-09 05:05:49 +13:00
2026-10-07 10:55:50 +02:00
2026-10-07 10:55:50 +02:00
2026-10-08 12:50:13 +13:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:44 +13:00
2026-09-25 23:25:27 +12:00
2026-01-16 15:24:35 +01:00
2026-10-13 23:03:51 +13:00
2026-10-09 08:49:24 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:51 +13:00
2026-10-09 22:09:28 +13:00
2026-01-16 15:24:35 +01:00
2026-09-28 09:19:59 +13:00
2026-08-09 09:11:40 +02:00
2026-08-09 09:11:40 +02:00
2026-10-11 05:00:01 +02:00
2026-10-11 05:00:01 +02:00
2026-09-26 08:22:12 +12:00
2026-10-07 23:38:34 +02:00
2026-01-16 15:24:35 +01:00
2026-10-13 23:03:14 +13:00
2026-10-13 23:03:14 +13:00
2026-09-26 21:18:35 +12:00
2026-09-26 21:06:13 +12:00
2026-10-13 23:03:51 +13:00
2026-10-07 10:12:20 +13:00
2026-10-08 12:50:13 +13:00
2026-09-26 21:34:02 +12:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-10-13 23:03:51 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-10-06 17:26:46 +02:00
2026-10-13 11:01:21 +02:00
2026-10-13 11:01:21 +02:00
2026-10-03 08:43:27 +13:00
2026-10-03 08:43:27 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-30 10:31:12 +13:00
2026-01-16 15:24:35 +01:00
2026-09-09 11:45:36 +12:00
2026-10-07 10:12:20 +13:00
2026-10-07 10:12:20 +13:00
2026-10-06 21:09:41 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:51 +13:00
2026-10-08 12:50:13 +13:00
2026-10-03 18:09:33 +02:00
2026-10-13 23:03:44 +13:00
2026-10-13 23:03:51 +13:00
2026-10-02 21:04:54 +13:00
2026-09-22 09:07:27 +02:00
2026-09-28 06:16:17 +13:00
2026-09-26 21:40:32 +12:00
2026-10-07 18:38:25 +13:00
2026-10-07 18:38:25 +13:00
2026-09-27 11:16:37 +13:00
2026-01-16 15:24:35 +01:00
2026-09-07 20:54:18 +12:00
2026-10-11 05:00:01 +02:00
2026-10-07 18:34:51 +13:00
2026-10-13 23:03:51 +13:00
2026-10-13 11:01:21 +02:00
2026-10-07 21:17:38 +13:00
2026-09-27 21:54:44 +13:00
2026-09-07 10:44:30 +02:00
2026-09-07 10:44:30 +02:00
2026-10-08 12:50:13 +13:00
2026-04-26 10:48:47 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:51 +13:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-09-19 12:22:24 -05:00
2026-01-16 15:24:35 +01:00
2026-10-11 05:00:01 +02:00
2026-10-11 05:00:01 +02:00
2026-10-08 12:50:13 +13:00
2026-05-13 19:42:11 +02:00
2026-10-13 11:01:21 +02:00
2026-08-04 16:36:23 +12:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-09-26 10:22:50 +12:00
2026-10-08 12:50:13 +13:00
2026-09-27 21:54:36 +13:00
2026-10-07 10:12:20 +13:00
2026-10-07 10:12:20 +13:00
2026-10-08 12:50:13 +13:00
2026-10-07 10:12:20 +13:00
2026-10-08 06:04:35 +02:00
2026-10-13 11:01:21 +02:00
2026-04-19 10:44:52 +02:00
2026-10-07 18:38:25 +13:00
2026-10-07 18:38:25 +13:00
2026-10-10 20:27:01 +13:00
2026-10-09 10:00:31 +02:00
2026-09-28 14:55:04 +02:00
2026-09-28 14:55:04 +02:00
2026-09-16 15:40:41 +12:00
2026-09-16 15:40:41 +12:00
2026-10-08 12:50:13 +13:00
2026-06-20 22:31:06 +12:00
2026-10-07 01:51:00 +02:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-10-06 21:09:41 +02:00
2026-10-06 21:09:41 +02:00
2026-10-12 16:02:26 +02:00
2026-10-04 08:54:13 +13:00
2026-10-08 06:03:31 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:33 +13:00
2026-10-13 11:01:21 +02:00
2026-10-13 11:01:21 +02:00
2026-10-13 07:44:40 +13:00
2026-10-11 05:00:01 +02:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-10-13 23:03:33 +13:00
2026-10-13 23:03:33 +13:00
2026-10-11 05:00:01 +02:00
2026-10-11 05:00:01 +02:00
2026-10-09 05:05:49 +13:00
2026-10-08 15:29:05 +02:00
2026-10-08 12:50:13 +13:00
2026-10-07 19:31:42 +13:00
2026-08-05 05:26:57 +12:00
2026-08-05 05:26:57 +12:00
2026-10-06 21:09:41 +02:00
2026-10-06 21:09:41 +02:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:51 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-09-20 12:45:07 -05:00
2026-09-19 12:26:06 -05:00
2026-08-16 07:16:33 +02:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-07-17 10:25:49 +02:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-09-17 00:07:46 +02:00
2026-09-17 00:07:46 +02:00
2026-08-09 01:34:22 +02:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-07-17 10:29:13 +02:00
2026-07-17 10:29:13 +02:00
2026-10-08 12:50:13 +13:00
2026-09-27 09:09:44 +02:00
2026-10-06 08:17:16 +13:00
2026-10-06 08:17:16 +13:00
2026-10-04 00:07:16 +13:00
2026-10-04 00:07:16 +13:00
2026-09-30 18:12:43 +13:00
2026-09-26 10:22:50 +12:00
2026-10-06 09:53:49 +02:00
2026-10-05 17:53:38 +02:00
2026-10-08 12:50:13 +13:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-01-16 15:24:35 +01:00
2026-10-08 12:50:13 +13:00
2026-10-07 08:13:52 +13:00
2026-10-07 08:13:52 +13:00
2026-10-07 08:13:52 +13:00
2026-10-07 07:05:12 +13:00
2026-10-06 09:14:35 +13:00
2026-10-01 21:18:12 +13:00
2026-10-01 21:18:12 +13:00
2026-10-13 23:03:51 +13:00
2026-10-13 23:03:44 +13:00
2026-10-04 01:43:37 +13:00
2026-10-04 01:43:37 +13:00