Currently, transactions/splits are not loaded from an sqlite3/mysql/postgres db at startup in the 2.3.X series. I think I need to change this so that it does load all transactions/splits. As has been pointed out many times, gnucash is *not* a database app. When it acts more like a database app, we can restore this behavior.
There are a number of bugs which can be attributed to this current behavior: 1) the account function to get the balance as of a certain date assumes that all splits are loaded. It find the last split on or before the date and returns its running balance value. That is the cause of https://bugzilla.gnome.org/show_bug.cgi?id=591098 - "present" and all other columns except TOTAL are zero until you open the account and read in all of the splits. 2) https://bugzilla.gnome.org/show_bug.cgi?id=598618 (does not calculate account balances correctly). When gnucash starts with an sql db, when the accounts are loaded, an SQL query is also run to calculate the final balance for all accounts. This value is set as the starting balance so that the final balance appears correctly in the account list. As transactions are loaded (e.g. because an account is opened), for each account, the final balance is compared both before and after the transactions are loaded, and for any accounts that have changed (i.e. there are new splits loaded for the account), the starting balance is adjusted so that the end balance is unchanged. However, this uses the function xaccAccountRecomputeBalance() which has some restrictions (does nothing if account is being edited, for example). Until we change gnucash to properly use the data as a database, I think the best solution is to load all of the data on startup. Phil _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel