connectivity/Library_firebird_sdbc.mk | 1 connectivity/source/drivers/firebird/Catalog.cxx | 67 ++++++++++++++++++++ connectivity/source/drivers/firebird/Catalog.hxx | 43 ++++++++++++ connectivity/source/drivers/firebird/Connection.cxx | 27 +++++--- connectivity/source/drivers/firebird/Connection.hxx | 26 ++++--- connectivity/source/drivers/firebird/Driver.cxx | 17 ++--- connectivity/source/drivers/firebird/Table.cxx | 21 +++--- connectivity/source/drivers/firebird/Table.hxx | 3 connectivity/source/drivers/firebird/Tables.cxx | 28 ++++---- connectivity/source/drivers/firebird/Tables.hxx | 7 +- 10 files changed, 184 insertions(+), 56 deletions(-)
New commits: commit ec365165ba7f332df479422174899808e1ff4152 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 17:15:46 2013 +0100 Implement refreshTables. (firebird-sdbc) Change-Id: Ie2fe0c92c3cb1eb0ae68cdea8ad709021a8d8392 diff --git a/connectivity/source/drivers/firebird/Catalog.cxx b/connectivity/source/drivers/firebird/Catalog.cxx index 552889a..0f84c94 100644 --- a/connectivity/source/drivers/firebird/Catalog.cxx +++ b/connectivity/source/drivers/firebird/Catalog.cxx @@ -8,11 +8,15 @@ */ #include "Catalog.hxx" +#include "Tables.hxx" using namespace ::connectivity::firebird; +using namespace ::rtl; + using namespace ::com::sun::star; using namespace ::com::sun::star::sdbc; +using namespace ::com::sun::star::uno; Catalog::Catalog(const uno::Reference< XConnection >& rConnection): OCatalog(rConnection), @@ -23,8 +27,24 @@ Catalog::Catalog(const uno::Reference< XConnection >& rConnection): //----- OCatalog ------------------------------------------------------------- void Catalog::refreshTables() { - // TODO: implement me. - // Sets m_pTables (OCatalog) + // TODO: set type -- currenty we also get system tables... + uno::Reference< XResultSet > xTables = m_xMetaData->getTables(Any(), + "%", + "%", + Sequence< OUString >()); + + TStringVector aTableNames; + + fillNames(xTables, aTableNames); + + if (!m_pTables) + m_pTables = new Tables(m_xConnection->getMetaData(), + *this, + m_aMutex, + aTableNames); + else + m_pTables->reFill(aTableNames); + } void Catalog::refreshViews() diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx index be3d231..8828b97 100644 --- a/connectivity/source/drivers/firebird/Tables.cxx +++ b/connectivity/source/drivers/firebird/Tables.cxx @@ -28,11 +28,12 @@ using namespace ::com::sun::star::uno; Tables::Tables(const uno::Reference< XDatabaseMetaData >& rMetaData, OWeakObject& rParent, - Mutex& rMutex) : + Mutex& rMutex, + TStringVector& rNames) : OCollection(rParent, sal_True, rMutex, - TStringVector(1, "TABLE")), // std::vector with 1 element + rNames), m_rMutex(rMutex), m_xMetaData(rMetaData) { diff --git a/connectivity/source/drivers/firebird/Tables.hxx b/connectivity/source/drivers/firebird/Tables.hxx index 2f21cd6..c025e1b 100644 --- a/connectivity/source/drivers/firebird/Tables.hxx +++ b/connectivity/source/drivers/firebird/Tables.hxx @@ -41,7 +41,8 @@ namespace connectivity public: Tables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& rMetaData, ::cppu::OWeakObject& rParent, - ::osl::Mutex& rMutex); + ::osl::Mutex& rMutex, + ::connectivity::TStringVector& rNames); // TODO: we should also implement XDataDescriptorFactory, XRefreshable, // XAppend, etc., but all are optional. commit 88d74f35c2ce7968fe3f57f34e25d09374164ecd Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 16:47:18 2013 +0100 Create Catalog to deal with sdbcx details. (firebird-sdbc) Change-Id: I521db652157e6b6da79e70f3731b6eddfc2bab1d diff --git a/connectivity/Library_firebird_sdbc.mk b/connectivity/Library_firebird_sdbc.mk index 066d60ad..577c169 100644 --- a/connectivity/Library_firebird_sdbc.mk +++ b/connectivity/Library_firebird_sdbc.mk @@ -38,6 +38,7 @@ $(eval $(call gb_Library_set_componentfile,firebird_sdbc,connectivity/source/dri $(eval $(call gb_Library_add_exception_objects,firebird_sdbc,\ connectivity/source/drivers/firebird/Blob \ + connectivity/source/drivers/firebird/Catalog \ connectivity/source/drivers/firebird/Columns \ connectivity/source/drivers/firebird/Connection \ connectivity/source/drivers/firebird/DatabaseMetaData \ diff --git a/connectivity/source/drivers/firebird/Catalog.cxx b/connectivity/source/drivers/firebird/Catalog.cxx new file mode 100644 index 0000000..552889a --- /dev/null +++ b/connectivity/source/drivers/firebird/Catalog.cxx @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "Catalog.hxx" + +using namespace ::connectivity::firebird; + +using namespace ::com::sun::star; +using namespace ::com::sun::star::sdbc; + +Catalog::Catalog(const uno::Reference< XConnection >& rConnection): + OCatalog(rConnection), + m_xConnection(rConnection) +{ +} + +//----- OCatalog ------------------------------------------------------------- +void Catalog::refreshTables() +{ + // TODO: implement me. + // Sets m_pTables (OCatalog) +} + +void Catalog::refreshViews() +{ + // TODO: implement me. + // Sets m_pViews (OCatalog) +} + +//----- IRefreshableGroups --------------------------------------------------- +void Catalog::refreshGroups() +{ + // TODO: implement me +} + +//----- IRefreshableUsers ---------------------------------------------------- +void Catalog::refreshUsers() +{ + // TODO: implement me +} +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file diff --git a/connectivity/source/drivers/firebird/Catalog.hxx b/connectivity/source/drivers/firebird/Catalog.hxx new file mode 100644 index 0000000..7281b79 --- /dev/null +++ b/connectivity/source/drivers/firebird/Catalog.hxx @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef CONNECTIVITY_FIREBIRD_CATALOG_HXX +#define CONNECTIVITY_FIREBIRD_CATALOG_HXX + +#include <connectivity/sdbcx/VCatalog.hxx> + +namespace connectivity +{ + namespace firebird + { + class Catalog: public ::connectivity::sdbcx::OCatalog + { + protected: + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > + m_xConnection; + + public: + Catalog(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& rConnection); + + // OCatalog + virtual void refreshTables(); + virtual void refreshViews(); + + // IRefreshableGroups + virtual void refreshGroups(); + + // IRefreshableUsers + virtual void refreshUsers(); + }; + } // namespace firebird +} // namespace connectivity + +#endif //CONNECTIVITY_FIREBIRD_CATALOG_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx index 9dbc87f..de795eb 100644 --- a/connectivity/source/drivers/firebird/Connection.cxx +++ b/connectivity/source/drivers/firebird/Connection.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include "Catalog.hxx" #include "Connection.hxx" #include "DatabaseMetaData.hxx" #include "Driver.hxx" @@ -67,6 +68,7 @@ using namespace ::com::sun::star::frame; using namespace ::com::sun::star::io; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::sdbc; +using namespace ::com::sun::star::sdbcx; using namespace ::com::sun::star::uno; const OUString OConnection::sDBLocation( "firebird.fdb" ); @@ -86,7 +88,8 @@ OConnection::OConnection(FirebirdDriver* _pDriver) m_bReadOnly(sal_False), m_aTransactionIsolation(TransactionIsolation::REPEATABLE_READ), m_DBHandler(0), - m_transactionHandle(0) + m_transactionHandle(0), + m_xCatalog(0) { SAL_INFO("connectivity.firebird", "OConnection()."); @@ -762,12 +765,22 @@ void OConnection::clearStatements() m_aStatements.clear(); } -//----- XTablesSupplier ------------------------------------------------------ -uno::Reference< XNameAccess > SAL_CALL OConnection::getTables() - throw (RuntimeException) +uno::Reference< XTablesSupplier > OConnection::createCatalog() { - return new Tables(getMetaData(), - *this, - m_aMutex); + MutexGuard aGuard(m_aMutex); + + // m_xCatalog is a weak reference. Reuse it if it still exists. + Reference< XTablesSupplier > xCatalog = m_xCatalog; + if (xCatalog.is()) + { + return xCatalog; + } + else + { + xCatalog = new Catalog(this); + m_xCatalog = xCatalog; + return m_xCatalog; + } + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/firebird/Connection.hxx b/connectivity/source/drivers/firebird/Connection.hxx index d7a4f37..ca6fae6 100644 --- a/connectivity/source/drivers/firebird/Connection.hxx +++ b/connectivity/source/drivers/firebird/Connection.hxx @@ -27,7 +27,7 @@ #include <connectivity/CommonTools.hxx> #include <connectivity/OSubComponent.hxx> -#include <cppuhelper/compbase5.hxx> +#include <cppuhelper/compbase4.hxx> #include <cppuhelper/weakref.hxx> #include <map> #include <OTypeInfo.hxx> @@ -49,11 +49,10 @@ namespace connectivity namespace firebird { - typedef ::cppu::WeakComponentImplHelper5< ::com::sun::star::document::XDocumentEventListener, + typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::document::XDocumentEventListener, ::com::sun::star::lang::XServiceInfo, ::com::sun::star::sdbc::XConnection, - ::com::sun::star::sdbc::XWarningsSupplier, - ::com::sun::star::sdbcx::XTablesSupplier + ::com::sun::star::sdbc::XWarningsSupplier > OConnection_BASE; class OStatementCommonBase; @@ -109,7 +108,10 @@ namespace connectivity isc_db_handle m_DBHandler; isc_tr_handle m_transactionHandle; - ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xEmbeddedStorage; + ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > + m_xEmbeddedStorage; + ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbcx::XTablesSupplier> + m_xCatalog; void buildTypeInfo() throw( ::com::sun::star::sdbc::SQLException); @@ -161,13 +163,6 @@ namespace connectivity // css.lang.XEventListener virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); - // XTablesSupplier - virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > - SAL_CALL getTables() - throw(::com::sun::star::uno::RuntimeException); - - - inline ::rtl::OUString getUserName() const { return m_sUser; } inline isc_db_handle& getDBHandle() { return m_DBHandler; } inline FirebirdDriver* getDriver() const { return m_pDriver;} @@ -185,6 +180,13 @@ namespace connectivity ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob> createBlob(ISC_QUAD* pBlobID) throw(::com::sun::star::sdbc::SQLException); + + /** + * Create and/or connect to the sdbcx Catalog. This is completely + * unrelated to the SQL "Catalog". + */ + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > + createCatalog(); }; } } diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx index 41c31d2..2b9e656 100644 --- a/connectivity/source/drivers/firebird/Driver.cxx +++ b/connectivity/source/drivers/firebird/Driver.cxx @@ -174,7 +174,8 @@ uno::Reference< XTablesSupplier > SAL_CALL FirebirdDriver::getDataDefinitionByCo const uno::Reference< XConnection >& rConnection) throw(SQLException, RuntimeException) { - return uno::Reference< XTablesSupplier >(rConnection, UNO_QUERY); + OConnection* pConnection = static_cast< OConnection* >(rConnection.get()); + return uno::Reference< XTablesSupplier >(pConnection->createCatalog(), UNO_QUERY); } uno::Reference< XTablesSupplier > SAL_CALL FirebirdDriver::getDataDefinitionByURL( commit f400dac5a846007c9bf7529623732670b73c692e Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 15:44:48 2013 +0100 Enable sdbcx retrieval. (firebird-sdbc) Note: this completely breaks the GUI editing of a db for now since the sdbcx portion of the driver is still non-functional. Change-Id: Ia4561dae1689fb66c87ac6ab154c02f27ecf211a diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx index 7be842a..41c31d2 100644 --- a/connectivity/source/drivers/firebird/Driver.cxx +++ b/connectivity/source/drivers/firebird/Driver.cxx @@ -125,7 +125,7 @@ Reference< XConnection > SAL_CALL FirebirdDriver::connect( throw DisposedException(); if ( ! acceptsURL(url) ) - return NULL; + return NULL; // TODO: throw Exception? // create a new connection with the given properties and append it to our vector OConnection* pCon = new OConnection(this); @@ -171,23 +171,19 @@ sal_Int32 SAL_CALL FirebirdDriver::getMinorVersion( ) throw(RuntimeException) //----- XDataDefinitionSupplier uno::Reference< XTablesSupplier > SAL_CALL FirebirdDriver::getDataDefinitionByConnection( - const uno::Reference< XConnection >& rxConnection) + const uno::Reference< XConnection >& rConnection) throw(SQLException, RuntimeException) { - (void) rxConnection; - // TODO: IMPLEMENT ME - return 0; + return uno::Reference< XTablesSupplier >(rConnection, UNO_QUERY); } uno::Reference< XTablesSupplier > SAL_CALL FirebirdDriver::getDataDefinitionByURL( - const OUString& rsURL, + const OUString& rURL, const uno::Sequence< PropertyValue >& rInfo) throw(SQLException, RuntimeException) { - (void) rsURL; - (void) rInfo; - // TODO: IMPLEMENT ME - return 0; + uno::Reference< XConnection > xConnection = connect(rURL, rInfo); + return getDataDefinitionByConnection(xConnection); } namespace connectivity commit 64deb339a97c1977f363fa08fd2b7d9fcfe2e957 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 12:08:33 2013 +0100 Implement getTables(). (firebird-sdbc) Change-Id: I6b13fe51547ac5a51a03bf9b55f8e684275652cb diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx index 63daf08..9dbc87f 100644 --- a/connectivity/source/drivers/firebird/Connection.cxx +++ b/connectivity/source/drivers/firebird/Connection.cxx @@ -766,8 +766,8 @@ void OConnection::clearStatements() uno::Reference< XNameAccess > SAL_CALL OConnection::getTables() throw (RuntimeException) { - // TODO: IMPLEMENT ME PROPERLY - //return new Tables(); - return 0; + return new Tables(getMetaData(), + *this, + m_aMutex); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx index 607fdc3..be3d231 100644 --- a/connectivity/source/drivers/firebird/Tables.cxx +++ b/connectivity/source/drivers/firebird/Tables.cxx @@ -26,13 +26,15 @@ using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::uno; -Tables::Tables(ODatabaseMetaData& xMetaData, +Tables::Tables(const uno::Reference< XDatabaseMetaData >& rMetaData, OWeakObject& rParent, - Mutex& rMutex, - const TStringVector& rVector) : - OCollection(rParent, sal_True, rMutex, rVector), + Mutex& rMutex) : + OCollection(rParent, + sal_True, + rMutex, + TStringVector(1, "TABLE")), // std::vector with 1 element m_rMutex(rMutex), - m_xMetaData(xMetaData) + m_xMetaData(rMetaData) { } @@ -47,10 +49,10 @@ ObjectType Tables::createObject(const OUString& rName) { // TODO: parse the name. // TODO: use table types - uno::Reference< XResultSet > xTables = m_xMetaData.getTables(Any(), - OUString(), - rName, - uno::Sequence< OUString >()); + uno::Reference< XResultSet > xTables = m_xMetaData->getTables(Any(), + OUString(), + rName, + uno::Sequence< OUString >()); if (!xTables.is()) throw RuntimeException(); @@ -62,7 +64,7 @@ ObjectType Tables::createObject(const OUString& rName) ObjectType xRet(new Table(this, m_rMutex, - m_xMetaData.getConnection(), + m_xMetaData->getConnection(), xRow->getString(3), // Name xRow->getString(4), // Type xRow->getString(5))); // Description / Remarks / Comments diff --git a/connectivity/source/drivers/firebird/Tables.hxx b/connectivity/source/drivers/firebird/Tables.hxx index 8128fb4..2f21cd6 100644 --- a/connectivity/source/drivers/firebird/Tables.hxx +++ b/connectivity/source/drivers/firebird/Tables.hxx @@ -35,13 +35,13 @@ namespace connectivity virtual ::connectivity::sdbcx::ObjectType createObject( const ::rtl::OUString& rName); - ODatabaseMetaData& m_xMetaData; + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > + m_xMetaData; public: - Tables(ODatabaseMetaData& xMetaData, + Tables(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& rMetaData, ::cppu::OWeakObject& rParent, - ::osl::Mutex& rMutex, - const ::connectivity::TStringVector& rVector); + ::osl::Mutex& rMutex); // TODO: we should also implement XDataDescriptorFactory, XRefreshable, // XAppend, etc., but all are optional. commit 6878fa8a9cba2d484f5fad264188c5a825fc5315 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 10:51:05 2013 +0100 Use correct data in Tables::createObject. (firebird-sdbc) Change-Id: I01a55a15fdb88bf0910afabb6763829c979e35fa diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx index a0f70cf..607fdc3 100644 --- a/connectivity/source/drivers/firebird/Tables.cxx +++ b/connectivity/source/drivers/firebird/Tables.cxx @@ -63,9 +63,9 @@ ObjectType Tables::createObject(const OUString& rName) ObjectType xRet(new Table(this, m_rMutex, m_xMetaData.getConnection(), - rName, - "", // TODO: Type - "")); // TODO: Description + xRow->getString(3), // Name + xRow->getString(4), // Type + xRow->getString(5))); // Description / Remarks / Comments if (xTables->next()) throw RuntimeException(); // Only one table should be returned commit 893a8a6f1183d8af2fe6be68457ecfe3f6ad8155 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 10:47:34 2013 +0100 Remove unneeded field. (firebird-sdbc) This can be retrieved as needed from DatabaseMetaData. Change-Id: I0324b7c087e6d7357437a9d6bc94340605066172 diff --git a/connectivity/source/drivers/firebird/Table.cxx b/connectivity/source/drivers/firebird/Table.cxx index 0c0c753..7624eee 100644 --- a/connectivity/source/drivers/firebird/Table.cxx +++ b/connectivity/source/drivers/firebird/Table.cxx @@ -28,8 +28,7 @@ Table::Table(Tables* pTables, const uno::Reference< XConnection >& rConnection, const OUString& rName, const OUString& rType, - const OUString& rDescription, - sal_Int32 nPrivileges): + const OUString& rDescription): OTableHelper(pTables, rConnection, sal_True, @@ -40,7 +39,6 @@ Table::Table(Tables* pTables, ""), m_rMutex(rMutex) { - (void) nPrivileges; } //----- OTableHelper --------------------------------------------------------- diff --git a/connectivity/source/drivers/firebird/Table.hxx b/connectivity/source/drivers/firebird/Table.hxx index e7ed569..0ea4695 100644 --- a/connectivity/source/drivers/firebird/Table.hxx +++ b/connectivity/source/drivers/firebird/Table.hxx @@ -30,8 +30,7 @@ namespace connectivity const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection, const ::rtl::OUString& rName, const ::rtl::OUString& rType, - const ::rtl::OUString& rDescription, - sal_Int32 _nPrivileges); + const ::rtl::OUString& rDescription); // OTableHelper virtual ::connectivity::sdbcx::OCollection* createColumns( diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx index af8dd9b..a0f70cf 100644 --- a/connectivity/source/drivers/firebird/Tables.cxx +++ b/connectivity/source/drivers/firebird/Tables.cxx @@ -65,8 +65,7 @@ ObjectType Tables::createObject(const OUString& rName) m_xMetaData.getConnection(), rName, "", // TODO: Type - "", // TODO: Description - 0)); // TODO: privileges + "")); // TODO: Description if (xTables->next()) throw RuntimeException(); // Only one table should be returned commit c33f9afcadf350ea9f9a82b57f52ee08998ef653 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 10:25:05 2013 +0100 Add getIndexes. (firebird-sdbc) Change-Id: I939c8033b6813754ee62092e3cab39ded853501e diff --git a/connectivity/source/drivers/firebird/Table.cxx b/connectivity/source/drivers/firebird/Table.cxx index 7138916..0c0c753 100644 --- a/connectivity/source/drivers/firebird/Table.cxx +++ b/connectivity/source/drivers/firebird/Table.cxx @@ -10,6 +10,7 @@ #include "Columns.hxx" #include "Table.hxx" +#include <connectivity/TIndexes.hxx> #include <connectivity/TKeys.hxx> using namespace ::connectivity; @@ -61,9 +62,9 @@ OCollection* Table::createKeys(const TStringVector& rNames) OCollection* Table::createIndexes(const TStringVector& rNames) { - (void) rNames; - // TODO: IMPLEMENT ME - return 0; + return new OIndexesHelper(this, + m_rMutex, + rNames); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file commit 2997e7d253419ae7cd545e9d0a4a5fe205c5a156 Author: Andrzej J.R. Hunt <[email protected]> Date: Mon Aug 12 10:15:53 2013 +0100 Add getKeys() using OKeysHelper (firebird-sdbc). Change-Id: I5a885cec81d9abcd0b1fc18d0dcd98c292999a51 diff --git a/connectivity/source/drivers/firebird/Table.cxx b/connectivity/source/drivers/firebird/Table.cxx index fe14352..7138916 100644 --- a/connectivity/source/drivers/firebird/Table.cxx +++ b/connectivity/source/drivers/firebird/Table.cxx @@ -10,6 +10,8 @@ #include "Columns.hxx" #include "Table.hxx" +#include <connectivity/TKeys.hxx> + using namespace ::connectivity; using namespace ::connectivity::firebird; using namespace ::connectivity::sdbcx; @@ -50,9 +52,11 @@ OCollection* Table::createColumns(const TStringVector& rNames) OCollection* Table::createKeys(const TStringVector& rNames) { - (void) rNames; - // TODO: IMPLEMENT ME - return 0; + // TODO: maybe add a wrapper here in case we the OKeysHelper isn't + // fully FB compatible. + return new OKeysHelper(this, + m_rMutex, + rNames); } OCollection* Table::createIndexes(const TStringVector& rNames) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
