mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bug 797983 - v4.2 report numbers change over gnucash restarts;...
Price Database dropping user:price-editor entries. A wider problem: QofInstance was unmarking itself dirty as long as the backend raised an error and unconditionally marking itself non-infant. This matters because the SQL backend depends on infant status to decide whether to do an insert or update query; either will fail if the infant status is wrong. The price editor dialog clones a price having only its commodity set and GncSqlPriceBackend declines to save if the currency isn't set. Since the instance marked itself non-infant even though it wasn't saved subsequent commits tried to use an update query and since the price wasn't in the table that inevitably failed. Requiring that QofBackend::commit should doing the marking-clean required implementing it in the backends where it wasn't already.
This commit is contained in:
@@ -48,6 +48,13 @@ G_GNUC_UNUSED static QofLogModule log_module = QOF_MOD_BACKEND;
|
||||
|
||||
GModuleVec QofBackend::c_be_registry{};
|
||||
|
||||
void
|
||||
QofBackend::commit(QofInstance* instance)
|
||||
{
|
||||
if (qof_instance_is_dirty(instance))
|
||||
qof_instance_mark_clean(instance);
|
||||
}
|
||||
|
||||
void
|
||||
QofBackend::set_error(QofBackendError err)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user