mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-16 18:25:11 -06:00
Fix a couple of warnings introduced by commit 01420adb99
In addition make the code really use an inner join if no additional conditions are set which gives better performance on at least postgresql
This commit is contained in:
parent
87f94abc8d
commit
80dbb9940b
@ -260,7 +260,7 @@ load_splits_for_transactions (GncSqlBackend* sql_be, std::string selector)
|
||||
if (selector.empty())
|
||||
{
|
||||
sql += SPLIT_TABLE ".* FROM " SPLIT_TABLE " INNER JOIN "
|
||||
TRANSACTION_TABLE " WHERE " SPLIT_TABLE "." + sskey + " = "
|
||||
TRANSACTION_TABLE " ON " SPLIT_TABLE "." + sskey + " = "
|
||||
TRANSACTION_TABLE "." + tpkey;
|
||||
selector = "(SELECT DISTINCT " + tpkey + " FROM " TRANSACTION_TABLE ")";
|
||||
}
|
||||
@ -378,12 +378,20 @@ query_transactions (GncSqlBackend* sql_be, std::string selector)
|
||||
if (!instances.empty())
|
||||
{
|
||||
const std::string tpkey(tx_col_table[0]->name());
|
||||
if (selector.empty())
|
||||
{
|
||||
selector = "(SELECT DISTINCT ";
|
||||
selector += tpkey + " FROM " TRANSACTION_TABLE +")";
|
||||
}
|
||||
if (!selector.empty() && (selector[0] != '('))
|
||||
{
|
||||
auto tselector = std::string ("(SELECT DISTINCT ");
|
||||
tselector += tpkey + " FROM " TRANSACTION_TABLE " WHERE " + selector + ")";
|
||||
selector = tselector;
|
||||
}
|
||||
|
||||
load_splits_for_transactions (sql_be, selector);
|
||||
|
||||
if (selector.empty())
|
||||
{
|
||||
selector = "(SELECT DISTINCT ";
|
||||
selector += tpkey + " FROM " TRANSACTION_TABLE ")";
|
||||
}
|
||||
gnc_sql_slots_load_for_sql_subquery (sql_be, selector,
|
||||
(BookLookupFn)xaccTransLookup);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user