summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Elie Mamane <lionel@mamane.lu>2013-07-02 00:56:57 +0200
committerDavid Tardon <dtardon@redhat.com>2013-07-02 07:43:34 +0000
commita571129c94318ce5667f89cb6489561b8c161ee2 (patch)
tree5734dab6944467f43e6cb7a36921e0023ff2a543
parentb625356d1d36bd42dff24960066f63ab45bbb30b (diff)
fdo#66464 initialise static join info at construct time
to ensure that isReadOnly returns something sensible as soon as construct() finishes Change-Id: I5f9bef049297c5232df0ecdb9084add968a0052f Reviewed-on: https://gerrit.libreoffice.org/4669 Tested-by: David Tardon <dtardon@redhat.com> Reviewed-by: David Tardon <dtardon@redhat.com>
-rw-r--r--dbaccess/source/core/api/OptimisticSet.cxx16
1 files changed, 11 insertions, 5 deletions
diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx
index be34382fad9e..ff22d4d4335c 100644
--- a/dbaccess/source/core/api/OptimisticSet.cxx
+++ b/dbaccess/source/core/api/OptimisticSet.cxx
@@ -136,11 +136,6 @@ void OptimisticSet::construct(const Reference< XResultSet>& _xDriverSet,const OU
OKeySetValue keySetValue((ORowSetValueVector *)NULL,::std::pair<sal_Int32,Reference<XRow> >(0,(Reference<XRow>)NULL));
m_aKeyMap.insert(OKeySetMatrix::value_type(0,keySetValue));
m_aKeyIter = m_aKeyMap.begin();
-}
-
-void OptimisticSet::makeNewStatement( )
-{
- OUStringBuffer aFilter = createKeyFilter();
Reference< XSingleSelectQueryComposer> xSourceComposer(m_xComposer,UNO_QUERY);
Reference< XMultiServiceFactory > xFactory(m_xConnection, UNO_QUERY_THROW);
@@ -156,6 +151,17 @@ void OptimisticSet::makeNewStatement( )
m_aSqlIterator.traverseAll();
fillJoinedColumns_throw(m_aSqlIterator.getJoinConditions());
+}
+
+void OptimisticSet::makeNewStatement( )
+{
+ OUStringBuffer aFilter = createKeyFilter();
+
+ Reference< XSingleSelectQueryComposer> xSourceComposer(m_xComposer,UNO_QUERY);
+ Reference< XMultiServiceFactory > xFactory(m_xConnection, UNO_QUERY_THROW);
+ Reference<XSingleSelectQueryComposer> xAnalyzer(xFactory->createInstance(SERVICE_NAME_SINGLESELECTQUERYCOMPOSER),UNO_QUERY);
+ xAnalyzer->setElementaryQuery(xSourceComposer->getElementaryQuery());
+
const OUString sComposerFilter = m_xComposer->getFilter();
if ( !m_sRowSetFilter.isEmpty() || !sComposerFilter.isEmpty() )
{