diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2017-07-30 17:57:14 +0200 |
---|---|---|
committer | Lionel Elie Mamane <lionel@mamane.lu> | 2017-07-30 20:23:09 +0200 |
commit | 2b1d6f0d3b0b025148c81986ba7f109659d838af (patch) | |
tree | 475feb3567e60c37b5bc6f669711c1b9a65c33ad /include/connectivity/parameters.hxx | |
parent | aba73077851a744c06e72b3bddf5a0bae85d7c28 (diff) |
tdf#96370 rework filtering to be aware of WHERE vs HAVING clause
Several bugs (AFAIK not filed into tdf bugzilla) fixed.
Remaining problems:
When some filter clauses go into WHERE and others in HAVING,
they are always logically ANDed (it cannot be any other way),
but that is not communicated to the user in the UI.
Some things left undone:
* DatabaseDataProvider (and its users?) needs to be updated
to be HAVING-aware, too.
* Form-based filter (.uno:FormFilter) not HAVING-aware
it reads the current filter in function
svxform::FormController::setFilter
in
svx/source/form/formcontrollers.cxx
That's one place that needs to be updated.
The other place is the one that applies the filter.
Change-Id: I0e9d30a1927b6739a16ae7627e8d0dae8823b376
Diffstat (limited to 'include/connectivity/parameters.hxx')
-rw-r--r-- | include/connectivity/parameters.hxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/connectivity/parameters.hxx b/include/connectivity/parameters.hxx index 49eebb93665a..e5ba530bfcc4 100644 --- a/include/connectivity/parameters.hxx +++ b/include/connectivity/parameters.hxx @@ -296,13 +296,19 @@ namespace dbtools the detail part denotes a column name. In such a case, an additional filter needs to be created, containing a new parameter. + @param _out_rAdditionalHavingComponents + the additional having clause components which are required for master-detail relationships where + the detail part denotes a column name. In such a case, an additional filter needs to be created, + containing a new parameter. + @precond <member>m_aMasterFields</member> and <member>m_aDetailFields</member> have the same length */ void classifyLinks( const css::uno::Reference< css::container::XNameAccess >& _rxParentColumns, const css::uno::Reference< css::container::XNameAccess >& _rxColumns, - ::std::vector< OUString >& _out_rAdditionalFilterComponents + ::std::vector< OUString >& _out_rAdditionalFilterComponents, + ::std::vector< OUString >& _out_rAdditionalHavingComponents ); /** finalizes our <member>m_pOuterParameters</member> so that it can be used for |