summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2022-03-12 13:59:48 +0100
committerAndras Timar <andras.timar@collabora.com>2022-03-22 10:30:08 +0100
commitfe82289835632fd8adca00c5611632ca653ffe14 (patch)
tree24791c81b793d93295f1042bfd522705ea5c66b4 /connectivity
parentd1bee045022f6d163608cbdf141a9508f9f7e3e5 (diff)
tdf#147309: Recreating a view with same name and in the same session fails (FB)
Since HSQLDB already worked, just do the same. Change-Id: I44929cf36179cc3cdff6e61f05899c9a913c78b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131442 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131447 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/drivers/firebird/Catalog.hxx1
-rw-r--r--connectivity/source/drivers/firebird/Tables.cxx10
2 files changed, 10 insertions, 1 deletions
diff --git a/connectivity/source/drivers/firebird/Catalog.hxx b/connectivity/source/drivers/firebird/Catalog.hxx
index b6bf02f6b69d..3ffb9238eda7 100644
--- a/connectivity/source/drivers/firebird/Catalog.hxx
+++ b/connectivity/source/drivers/firebird/Catalog.hxx
@@ -32,6 +32,7 @@ namespace connectivity::firebird
virtual void refreshUsers() override;
sdbcx::OCollection* getPrivateTables() const { return m_pTables.get(); }
+ sdbcx::OCollection* getPrivateViews() const { return m_pViews.get(); }
};
} // namespace connectivity::firebird
diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx
index 06e6806d0a4f..29662ef12643 100644
--- a/connectivity/source/drivers/firebird/Tables.cxx
+++ b/connectivity/source/drivers/firebird/Tables.cxx
@@ -9,6 +9,7 @@
#include "Table.hxx"
#include "Tables.hxx"
+#include "Views.hxx"
#include "Catalog.hxx"
#include "Util.hxx"
@@ -202,7 +203,14 @@ void Tables::dropObject(sal_Int32 nPosition, const OUString& sName)
const OUString sQuoteString = m_xMetaData->getIdentifierQuoteString();
m_xMetaData->getConnection()->createStatement()->execute(
- "DROP " + sType + ::dbtools::quoteName(sQuoteString,sName));
+ "DROP " + sType + " " + ::dbtools::quoteName(sQuoteString,sName));
+
+ if (sType == "VIEW")
+ {
+ Views* pViews = static_cast<Views*>(static_cast<Catalog&>(m_rParent).getPrivateViews());
+ if ( pViews && pViews->hasByName(sName) )
+ pViews->dropByNameImpl(sName);
+ }
}
void connectivity::firebird::Tables::appendNew(const OUString& _rsNewTable)