dbaccess/source/ui/relationdesign/RTableConnectionData.cxx |    6 ++++--
 dbaccess/source/ui/relationdesign/RelationTableView.cxx    |   11 +++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)

New commits:
commit 548fc442f56d9b456e48246caaffe13d996c841f
Author:     Pierre <prrv...@gmail.com>
AuthorDate: Sat Apr 13 19:19:50 2024 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Fri May 3 15:14:27 2024 +0200

    tdf#160375 Base displays and gives the full name of the table
    
    Change-Id: Icc8c6d85cc5a88461b7bd02487513e0e864bacef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166057
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx 
b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
index 7cb7bb577c0a..c679e462c630 100644
--- a/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
+++ b/dbaccess/source/ui/relationdesign/RTableConnectionData.cxx
@@ -38,6 +38,7 @@ using namespace ::com::sun::star::sdbcx;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::container;
+using namespace ::com::sun::star::lang;
 
 ORelationTableConnectionData::ORelationTableConnectionData()
     :m_nUpdateRules(KeyRule::NO_ACTION)
@@ -253,7 +254,8 @@ bool ORelationTableConnectionData::Update()
 
         xKey->setPropertyValue(PROPERTY_NAME,Any(sKeyName));
         xKey->setPropertyValue(PROPERTY_TYPE,Any(KeyType::FOREIGN));
-        
xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,Any(getReferencedTable()->GetTableName()));
+        // get the full name of the tables to ensure uniqueness across 
catalogs and schema
+        
xKey->setPropertyValue(PROPERTY_REFERENCEDTABLE,Any(getReferencedTable()->GetComposedName()));
         xKey->setPropertyValue(PROPERTY_UPDATERULE, Any(GetUpdateRules()));
         xKey->setPropertyValue(PROPERTY_DELETERULE, Any(GetDeleteRules()));
     }
@@ -298,7 +300,7 @@ bool ORelationTableConnectionData::Update()
         {
             OUString sReferencedTable;
             xKey->getPropertyValue(PROPERTY_REFERENCEDTABLE) >>= 
sReferencedTable;
-            if ( sReferencedTable == getReferencedTable()->GetTableName() )
+            if ( sReferencedTable == getReferencedTable()->GetComposedName() )
             {
                 xColSup.set(xKey,UNO_QUERY_THROW);
                 try
diff --git a/dbaccess/source/ui/relationdesign/RelationTableView.cxx 
b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
index 87a769ce83b3..da82719b7a23 100644
--- a/dbaccess/source/ui/relationdesign/RelationTableView.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
@@ -51,6 +51,7 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::sdbc;
 using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::accessibility;
 
@@ -107,7 +108,8 @@ void ORelationTableView::ReSync()
             // it should be cleaned up, including its data in the document
             pTabWin->clearListBox();
             pTabWin.disposeAndClear();
-            arrInvalidTables.push_back(pData->GetTableName());
+            // get the full name of the tables to ensure uniqueness across 
catalogs and schema
+            arrInvalidTables.push_back(pData->GetComposedName());
 
             std::erase(rTabWinDataList, *aIter);
             continue;
@@ -131,9 +133,9 @@ void ORelationTableView::ReSync()
         if ( !arrInvalidTables.empty() )
         {
             // do the tables to the  connection exist?
-            OUString strTabExistenceTest = 
pTabConnData->getReferencingTable()->GetTableName();
+            OUString strTabExistenceTest = 
pTabConnData->getReferencingTable()->GetComposedName();
             bool bInvalid = 
std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) 
!= arrInvalidTables.end();
-            strTabExistenceTest = 
pTabConnData->getReferencedTable()->GetTableName();
+            strTabExistenceTest = 
pTabConnData->getReferencedTable()->GetComposedName();
             bInvalid = bInvalid || 
std::find(arrInvalidTables.begin(),arrInvalidTables.end(),strTabExistenceTest) 
!= arrInvalidTables.end();
 
             if (bInvalid)
@@ -289,7 +291,8 @@ void ORelationTableView::AddTabWin(const OUString& 
_rComposedName, const OUStrin
     }
 
     // enter the new data structure into DocShell
-    TTableWindowData::value_type pNewTabWinData(createTableWindowData( 
_rComposedName, rWinName,rWinName ));
+    // show the table's full name as window name to ensure uniqueness across 
catalogs and schema
+    TTableWindowData::value_type pNewTabWinData(createTableWindowData( 
_rComposedName, rWinName, _rComposedName ));
     pNewTabWinData->ShowAll(false);
 
     // link new window into the window list

Reply via email to