summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--connectivity/inc/connectivity/PColumn.hxx15
-rw-r--r--connectivity/inc/connectivity/sdbcx/VColumn.hxx29
-rw-r--r--connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx5
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx5
-rw-r--r--connectivity/source/commontools/TColumnsHelper.cxx10
-rw-r--r--connectivity/source/commontools/TIndexColumns.cxx6
-rw-r--r--connectivity/source/commontools/TKeyColumns.cxx34
-rw-r--r--connectivity/source/commontools/dbtools2.cxx14
-rw-r--r--connectivity/source/commontools/predicateinput.cxx5
-rw-r--r--connectivity/source/drivers/calc/CTable.cxx3
-rw-r--r--connectivity/source/drivers/dbase/DIndexColumns.cxx5
-rw-r--r--connectivity/source/drivers/dbase/DTable.cxx3
-rw-r--r--connectivity/source/drivers/evoab2/NColumns.cxx15
-rw-r--r--connectivity/source/drivers/file/FColumns.cxx12
-rw-r--r--connectivity/source/drivers/file/FPreparedStatement.cxx5
-rw-r--r--connectivity/source/drivers/flat/ETable.cxx3
-rw-r--r--connectivity/source/drivers/mozab/MColumns.cxx13
-rw-r--r--connectivity/source/drivers/mozab/MPreparedStatement.cxx5
-rw-r--r--connectivity/source/parse/PColumn.cxx67
-rw-r--r--connectivity/source/parse/sqliterator.cxx32
-rw-r--r--connectivity/source/sdbcx/VColumn.cxx16
-rw-r--r--connectivity/source/sdbcx/VIndexColumn.cxx10
-rw-r--r--connectivity/source/sdbcx/VKeyColumn.cxx10
-rw-r--r--dbaccess/source/core/api/definitioncolumn.cxx39
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignView.cxx5
25 files changed, 243 insertions, 123 deletions
diff --git a/connectivity/inc/connectivity/PColumn.hxx b/connectivity/inc/connectivity/PColumn.hxx
index 9ac4eb5a272c..7da2c0691769 100644
--- a/connectivity/inc/connectivity/PColumn.hxx
+++ b/connectivity/inc/connectivity/PColumn.hxx
@@ -41,7 +41,6 @@ namespace connectivity
public OParseColumn_BASE, public OParseColumn_PROP
{
::rtl::OUString m_aRealName;
- ::rtl::OUString m_aTableName;
::rtl::OUString m_sLabel;
sal_Bool m_bFunction;
sal_Bool m_bDbasePrecisionChanged;
@@ -65,21 +64,24 @@ namespace connectivity
sal_Int32 _Type,
sal_Bool _IsAutoIncrement,
sal_Bool _IsCurrency,
- sal_Bool _bCase);
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName);
virtual void construct();
void setRealName(const ::rtl::OUString& _rName) { m_aRealName = _rName; }
void setLabel(const ::rtl::OUString& i_sLabel) { m_sLabel = i_sLabel; }
- void setTableName(const ::rtl::OUString& _rName) { m_aTableName = _rName; }
+ void setTableName(const ::rtl::OUString& _rName) { m_TableName = _rName; }
void setFunction(sal_Bool _bFunction) { m_bFunction = _bFunction; }
void setAggregateFunction(sal_Bool _bFunction) { m_bAggregateFunction = _bFunction; }
void setIsSearchable( sal_Bool _bIsSearchable ) { m_bIsSearchable = _bIsSearchable; }
void setDbasePrecisionChanged(sal_Bool _bDbasePrecisionChanged) { m_bDbasePrecisionChanged = _bDbasePrecisionChanged; }
- ::rtl::OUString getRealName() const { return m_aRealName; }
- ::rtl::OUString getLabel() const { return m_sLabel; }
- ::rtl::OUString getTableName() const { return m_aTableName; }
+ const ::rtl::OUString& getRealName() const { return m_aRealName; }
+ const ::rtl::OUString& getLabel() const { return m_sLabel; }
+ const ::rtl::OUString& getTableName() const { return m_TableName; }
sal_Bool getFunction() const { return m_bFunction; }
sal_Bool getDbasePrecisionChanged() const { return m_bDbasePrecisionChanged; }
@@ -118,7 +120,6 @@ namespace connectivity
public OOrderColumn_BASE, public OOrderColumn_PROP
{
const sal_Bool m_bAscending;
- const ::rtl::OUString m_sTableName;
protected:
virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const;
diff --git a/connectivity/inc/connectivity/sdbcx/VColumn.hxx b/connectivity/inc/connectivity/sdbcx/VColumn.hxx
index c58e7cf2d81e..ca7a0bcc0b1c 100644
--- a/connectivity/inc/connectivity/sdbcx/VColumn.hxx
+++ b/connectivity/inc/connectivity/sdbcx/VColumn.hxx
@@ -63,6 +63,10 @@ namespace connectivity
sal_Bool m_IsRowVersion;
sal_Bool m_IsCurrency;
+ ::rtl::OUString m_CatalogName;
+ ::rtl::OUString m_SchemaName;
+ ::rtl::OUString m_TableName;
+
using OColumnDescriptor_BASE::rBHelper;
virtual ::cppu::IPropertyArrayHelper* createArrayHelper( sal_Int32 _nId) const;
virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
@@ -74,17 +78,20 @@ namespace connectivity
OColumn( sal_Bool _bCase);
OColumn( const ::rtl::OUString& _Name,
- const ::rtl::OUString& _TypeName,
- const ::rtl::OUString& _DefaultValue,
- const ::rtl::OUString& _Description,
- sal_Int32 _IsNullable,
- sal_Int32 _Precision,
- sal_Int32 _Scale,
- sal_Int32 _Type,
- sal_Bool _IsAutoIncrement,
- sal_Bool _IsRowVersion,
- sal_Bool _IsCurrency,
- sal_Bool _bCase);
+ const ::rtl::OUString& _TypeName,
+ const ::rtl::OUString& _DefaultValue,
+ const ::rtl::OUString& _Description,
+ sal_Int32 _IsNullable,
+ sal_Int32 _Precision,
+ sal_Int32 _Scale,
+ sal_Int32 _Type,
+ sal_Bool _IsAutoIncrement,
+ sal_Bool _IsRowVersion,
+ sal_Bool _IsCurrency,
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName);
DECLARE_SERVICE_INFO();
//XInterface
diff --git a/connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx b/connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx
index d5c11c40b985..bdccd128f172 100644
--- a/connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx
+++ b/connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx
@@ -50,7 +50,10 @@ namespace connectivity
sal_Bool _IsAutoIncrement,
sal_Bool _IsRowVersion,
sal_Bool _IsCurrency,
- sal_Bool _bCase);
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName);
virtual void construct();
DECLARE_SERVICE_INFO();
diff --git a/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx b/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx
index 92624b5caad6..b3624bd69a3a 100644
--- a/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx
+++ b/connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx
@@ -50,7 +50,10 @@ namespace connectivity
sal_Bool _IsAutoIncrement,
sal_Bool _IsRowVersion,
sal_Bool _IsCurrency,
- sal_Bool _bCase);
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName);
// just to make it not inline
virtual ~OKeyColumn();
diff --git a/connectivity/source/commontools/TColumnsHelper.cxx b/connectivity/source/commontools/TColumnsHelper.cxx
index 83bfe69746d1..ad725c4f1e64 100644
--- a/connectivity/source/commontools/TColumnsHelper.cxx
+++ b/connectivity/source/commontools/TColumnsHelper.cxx
@@ -115,6 +115,11 @@ sdbcx::ObjectType OColumnsHelper::createObject(const ::rtl::OUString& _rName)
{
nField11 = ColumnValue::NO_NULLS;
} // if ( xKeys.is() )
+ ::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
+ ::rtl::OUString aCatalog, aSchema, aTable;
+ m_pTable->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME)) >>= aCatalog;
+ m_pTable->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_SCHEMANAME)) >>= aSchema;
+ m_pTable->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME)) >>= aTable;
connectivity::sdbcx::OColumn* pRet = new connectivity::sdbcx::OColumn(_rName,
pColDesc->aField6,
pColDesc->sField13,
@@ -126,7 +131,10 @@ sdbcx::ObjectType OColumnsHelper::createObject(const ::rtl::OUString& _rName)
bAutoIncrement,
sal_False,
bIsCurrency,
- isCaseSensitive());
+ isCaseSensitive(),
+ aCatalog,
+ aSchema,
+ aTable);
xRet = pRet;
}
diff --git a/connectivity/source/commontools/TIndexColumns.cxx b/connectivity/source/commontools/TIndexColumns.cxx
index 7edd3ea706df..c64e94bf1d14 100644
--- a/connectivity/source/commontools/TIndexColumns.cxx
+++ b/connectivity/source/commontools/TIndexColumns.cxx
@@ -47,8 +47,9 @@ OIndexColumns::OIndexColumns( OIndexHelper* _pIndex,
sdbcx::ObjectType OIndexColumns::createObject(const ::rtl::OUString& _rName)
{
::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
- ::rtl::OUString aSchema,aTable;
+ ::rtl::OUString aCatalog, aSchema, aTable;
::com::sun::star::uno::Any Catalog(m_pIndex->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME)));
+ Catalog >>= aCatalog;
m_pIndex->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_SCHEMANAME)) >>= aSchema;
m_pIndex->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME)) >>= aTable;
@@ -93,7 +94,8 @@ sdbcx::ObjectType OIndexColumns::createObject(const ::rtl::OUString& _rName)
nSize,
nDec,
nDataType,
- sal_False,sal_False,sal_False,sal_True);
+ sal_False,sal_False,sal_False,sal_True,
+ aCatalog, aSchema, aTable);
xRet = pRet;
break;
}
diff --git a/connectivity/source/commontools/TKeyColumns.cxx b/connectivity/source/commontools/TKeyColumns.cxx
index f9a9a223f82b..bb5a36a38f2a 100644
--- a/connectivity/source/commontools/TKeyColumns.cxx
+++ b/connectivity/source/commontools/TKeyColumns.cxx
@@ -48,13 +48,15 @@ OKeyColumnsHelper::OKeyColumnsHelper( OTableKeyHelper* _pKey,
sdbcx::ObjectType OKeyColumnsHelper::createObject(const ::rtl::OUString& _rName)
{
::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
- ::rtl::OUString aSchema,aTable;
+ ::rtl::OUString aCatalog, aSchema, aTable;
+ ::com::sun::star::uno::Any Catalog(m_pKey->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME)));
+ Catalog >>= aCatalog;
m_pKey->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_SCHEMANAME)) >>= aSchema;
m_pKey->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME)) >>= aTable;
// frist get the related column to _rName
Reference< XResultSet > xResult = m_pKey->getTable()->getMetaData()->getImportedKeys(
- m_pKey->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME)),aSchema,aTable);
+ Catalog, aSchema, aTable);
::rtl::OUString aRefColumnName;
if ( xResult.is() )
@@ -75,8 +77,7 @@ sdbcx::ObjectType OKeyColumnsHelper::createObject(const ::rtl::OUString& _rName)
sdbcx::ObjectType xRet;
// now describe the column _rName and set his related column
- xResult = m_pKey->getTable()->getMetaData()->getColumns(
- m_pKey->getTable()->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME)),aSchema,aTable,_rName);
+ xResult = m_pKey->getTable()->getMetaData()->getColumns(Catalog, aSchema, aTable, _rName);
if ( xResult.is() )
{
@@ -101,17 +102,20 @@ sdbcx::ObjectType OKeyColumnsHelper::createObject(const ::rtl::OUString& _rName)
}
OKeyColumn* pRet = new OKeyColumn(aRefColumnName,
- _rName,
- aTypeName,
- sColumnDef,
- nNull,
- nSize,
- nDec,
- nDataType,
- sal_False,
- sal_False,
- sal_False,
- isCaseSensitive());
+ _rName,
+ aTypeName,
+ sColumnDef,
+ nNull,
+ nSize,
+ nDec,
+ nDataType,
+ sal_False,
+ sal_False,
+ sal_False,
+ isCaseSensitive(),
+ aCatalog,
+ aSchema,
+ aTable);
xRet = pRet;
}
}
diff --git a/connectivity/source/commontools/dbtools2.cxx b/connectivity/source/commontools/dbtools2.cxx
index bb832535cbfe..4092e9e185de 100644
--- a/connectivity/source/commontools/dbtools2.cxx
+++ b/connectivity/source/commontools/dbtools2.cxx
@@ -389,6 +389,8 @@ namespace
Reference<XPropertySet> xProp;
Reference<XDatabaseMetaData> xMetaData = _xConnection->getMetaData();
Reference< XResultSet > xResult = xMetaData->getColumns(_aCatalog, _aSchema, _aTable, _rQueryName);
+ ::rtl::OUString sCatalog;
+ _aCatalog >>= sCatalog;
if ( xResult.is() )
{
@@ -472,7 +474,10 @@ namespace
bAutoIncrement,
sal_False,
bIsCurrency,
- _bCase);
+ _bCase,
+ sCatalog,
+ _aSchema,
+ _aTable);
xProp = pRet;
break;
@@ -515,6 +520,8 @@ Reference<XPropertySet> createSDBCXColumn(const Reference<XPropertySet>& _xTable
Reference<XDatabaseMetaData> xMetaData = _xConnection->getMetaData();
Any aCatalog;
aCatalog = _xTable->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_CATALOGNAME));
+ ::rtl::OUString sCatalog;
+ aCatalog >>= sCatalog;
::rtl::OUString aSchema, aTable;
_xTable->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_SCHEMANAME)) >>= aSchema;
@@ -536,7 +543,10 @@ Reference<XPropertySet> createSDBCXColumn(const Reference<XPropertySet>& _xTable
_bIsAutoIncrement,
sal_False,
_bIsCurrency,
- _bCase);
+ _bCase,
+ sCatalog,
+ aSchema,
+ aTable);
}
diff --git a/connectivity/source/commontools/predicateinput.cxx b/connectivity/source/commontools/predicateinput.cxx
index 4950de6fd7a7..f8f89601f21c 100644
--- a/connectivity/source/commontools/predicateinput.cxx
+++ b/connectivity/source/commontools/predicateinput.cxx
@@ -374,7 +374,10 @@ namespace dbtools
nType,
sal_False,
sal_False,
- xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
+ xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers(),
+ ::rtl::OUString(),
+ ::rtl::OUString(),
+ ::rtl::OUString());
Reference<XPropertySet> xColumn = pColumn;
pColumn->setFunction(sal_True);
pColumn->setRealName(sField);
diff --git a/connectivity/source/drivers/calc/CTable.cxx b/connectivity/source/drivers/calc/CTable.cxx
index da8cbe573657..ff3c33319a48 100644
--- a/connectivity/source/drivers/calc/CTable.cxx
+++ b/connectivity/source/drivers/calc/CTable.cxx
@@ -514,7 +514,8 @@ void OCalcTable::fillColumns()
sdbcx::OColumn* pColumn = new sdbcx::OColumn( aAlias, aTypeName, ::rtl::OUString(),::rtl::OUString(),
ColumnValue::NULLABLE, nPrecision, nDecimals,
eType, sal_False, sal_False, bCurrency,
- bStoresMixedCaseQuotedIdentifiers);
+ bStoresMixedCaseQuotedIdentifiers,
+ m_CatalogName, getSchema(), getName());
Reference< XPropertySet> xCol = pColumn;
m_aColumns->get().push_back(xCol);
m_aTypes.push_back(eType);
diff --git a/connectivity/source/drivers/dbase/DIndexColumns.cxx b/connectivity/source/drivers/dbase/DIndexColumns.cxx
index 1fbff248ee24..73aa3d525cda 100644
--- a/connectivity/source/drivers/dbase/DIndexColumns.cxx
+++ b/connectivity/source/drivers/dbase/DIndexColumns.cxx
@@ -59,7 +59,10 @@ sdbcx::ObjectType ODbaseIndexColumns::createObject(const ::rtl::OUString& _rName
,sal_False
,sal_False
,sal_False
- ,pTable->getConnection()->getMetaData()->supportsMixedCaseQuotedIdentifiers());
+ ,pTable->getConnection()->getMetaData()->supportsMixedCaseQuotedIdentifiers()
+ ,getString(xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME)))
+ ,getString(xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME)))
+ ,getString(xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME))));
return xRet;
}
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index f1bdb3237a94..499b238284cf 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -436,7 +436,8 @@ OSL_TRACE("column type: %c",aDBFColumn.db_typ);
sal_False,
bIsRowVersion,
bIsCurrency,
- bCase);
+ bCase,
+ m_CatalogName, getSchema(), getName());
m_aColumns->get().push_back(xCol);
} // for (; i < nFieldCount; i++)
OSL_ENSURE(i,"No columns in table!");
diff --git a/connectivity/source/drivers/evoab2/NColumns.cxx b/connectivity/source/drivers/evoab2/NColumns.cxx
index c4cae93cfcfe..b131bc36bb95 100644
--- a/connectivity/source/drivers/evoab2/NColumns.cxx
+++ b/connectivity/source/drivers/evoab2/NColumns.cxx
@@ -37,10 +37,14 @@ using namespace connectivity::evoab;
// -------------------------------------------------------------------------
sdbcx::ObjectType OEvoabColumns::createObject(const ::rtl::OUString& _rName)
{
+ const Any aCatalog;
+ const ::rtl::OUString sCatalogName;
+ const ::rtl::OUString sSchemaName(m_pTable->getSchema());
+ const ::rtl::OUString sTableName(m_pTable->getTableName());
Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(
- Any(),
- m_pTable->getSchema(),
- m_pTable->getTableName(),
+ aCatalog,
+ sSchemaName,
+ sTableName,
_rName);
sdbcx::ObjectType xRet = NULL;
@@ -64,7 +68,10 @@ sdbcx::ObjectType OEvoabColumns::createObject(const ::rtl::OUString& _rName)
sal_False,
sal_False,
sal_False,
- sal_True);
+ sal_True,
+ sCatalogName,
+ sSchemaName,
+ sTableName);
xRet = pRet;
break;
}
diff --git a/connectivity/source/drivers/file/FColumns.cxx b/connectivity/source/drivers/file/FColumns.cxx
index f916b2ddd7bc..199c0acda4d3 100644
--- a/connectivity/source/drivers/file/FColumns.cxx
+++ b/connectivity/source/drivers/file/FColumns.cxx
@@ -37,9 +37,12 @@ using namespace ::com::sun::star::lang;
sdbcx::ObjectType OColumns::createObject(const ::rtl::OUString& _rName)
{
-
+ const Any aCatalog;
+ const ::rtl::OUString sCatalogName;
+ const ::rtl::OUString sSchemaName(m_pTable->getSchema());
+ const ::rtl::OUString sTableName(m_pTable->getName());
Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(Any(),
- m_pTable->getSchema(),m_pTable->getName(),_rName);
+ sSchemaName, sTableName, _rName);
sdbcx::ObjectType xRet = NULL;
if(xResult.is())
@@ -60,7 +63,10 @@ sdbcx::ObjectType OColumns::createObject(const ::rtl::OUString& _rName)
sal_False,
sal_False,
sal_False,
- m_pTable->getConnection()->getMetaData()->supportsMixedCaseQuotedIdentifiers());
+ m_pTable->getConnection()->getMetaData()->supportsMixedCaseQuotedIdentifiers(),
+ sCatalogName,
+ sSchemaName,
+ sTableName);
xRet = pRet;
break;
}
diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx
index 0d810fcc2b32..f99cf3c959b6 100644
--- a/connectivity/source/drivers/file/FPreparedStatement.cxx
+++ b/connectivity/source/drivers/file/FPreparedStatement.cxx
@@ -506,7 +506,10 @@ sal_uInt32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Re
,eType
,sal_False
,sal_False
- ,m_aSQLIterator.isCaseSensitive());
+ ,m_aSQLIterator.isCaseSensitive()
+ ,::rtl::OUString()
+ ,::rtl::OUString()
+ ,::rtl::OUString());
m_xParamColumns->get().push_back(xParaColumn);
return m_xParamColumns->get().size();
}
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
index 14732280c6af..110f40195be4 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -171,7 +171,8 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale)
sal_False,
sal_False,
sal_False,
- bCase);
+ bCase,
+ m_CatalogName, getSchema(), getName());
Reference< XPropertySet> xCol = pColumn;
m_aColumns->get().push_back(xCol);
}
diff --git a/connectivity/source/drivers/mozab/MColumns.cxx b/connectivity/source/drivers/mozab/MColumns.cxx
index f6fb6e217942..786280cbbe5e 100644
--- a/connectivity/source/drivers/mozab/MColumns.cxx
+++ b/connectivity/source/drivers/mozab/MColumns.cxx
@@ -43,8 +43,12 @@ using namespace ::com::sun::star::lang;
sdbcx::ObjectType OColumns::createObject(const ::rtl::OUString& _rName)
{
- Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(Any(),
- m_pTable->getSchema(),m_pTable->getTableName(),_rName);
+ const Any aCatalog;
+ const ::rtl::OUString sCatalogName;
+ const ::rtl::OUString sSchemaName(m_pTable->getSchema());
+ const ::rtl::OUString sTableName(m_pTable->getTableName());
+ Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(
+ aCatalog, sSchemaName, sTableName, _rName);
sdbcx::ObjectType xRet = NULL;
if(xResult.is())
@@ -66,7 +70,10 @@ sdbcx::ObjectType OColumns::createObject(const ::rtl::OUString& _rName)
nPrec,
xRow->getInt(9),
nType,
- sal_False,sal_False,sal_False,sal_True);
+ sal_False,sal_False,sal_False,sal_True,
+ sCatalogName,
+ sSchemaName,
+ sTableName);
xRet = pRet;
break;
}
diff --git a/connectivity/source/drivers/mozab/MPreparedStatement.cxx b/connectivity/source/drivers/mozab/MPreparedStatement.cxx
index 9a650effd215..971749d03cc0 100644
--- a/connectivity/source/drivers/mozab/MPreparedStatement.cxx
+++ b/connectivity/source/drivers/mozab/MPreparedStatement.cxx
@@ -443,7 +443,10 @@ size_t OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Refere
,sal_False
,sal_False
,sal_False
- ,m_pSQLIterator->isCaseSensitive());
+ ,m_pSQLIterator->isCaseSensitive()
+ ,::rtl::OUString()
+ ,::rtl::OUString()
+ ,::rtl::OUString());
m_xParamColumns->get().push_back(xParaColumn);
return nParameter;
}
diff --git a/connectivity/source/parse/PColumn.cxx b/connectivity/source/parse/PColumn.cxx
index f9523c98fcac..1eebf8484da6 100644
--- a/connectivity/source/parse/PColumn.cxx
+++ b/connectivity/source/parse/PColumn.cxx
@@ -25,6 +25,8 @@
#include <comphelper/types.hxx>
#include <tools/diagnose_ex.h>
+#include <bitset>
+
using namespace ::comphelper;
using namespace connectivity;
using namespace dbtools;
@@ -48,6 +50,9 @@ OParseColumn::OParseColumn(const Reference<XPropertySet>& _xColumn,sal_Bool
, sal_False
, getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY)))
, _bCase
+ , getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME)))
+ , getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME)))
+ , getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME)))
)
, m_bFunction(sal_False)
, m_bDbasePrecisionChanged(sal_False)
@@ -68,7 +73,10 @@ OParseColumn::OParseColumn( const ::rtl::OUString& _Name,
sal_Int32 _Type,
sal_Bool _IsAutoIncrement,
sal_Bool _IsCurrency,
- sal_Bool _bCase
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName
) : connectivity::sdbcx::OColumn(_Name,
_TypeName,
_DefaultValue,
@@ -80,7 +88,10 @@ OParseColumn::OParseColumn( const ::rtl::OUString& _Name,
_IsAutoIncrement,
sal_False,
_IsCurrency,
- _bCase)
+ _bCase,
+ _CatalogName,
+ _SchemaName,
+ _TableName)
, m_bFunction(sal_False)
, m_bDbasePrecisionChanged(sal_False)
, m_bAggregateFunction(sal_False)
@@ -116,7 +127,7 @@ OParseColumn::OParseColumn( const ::rtl::OUString& _Name,
// -------------------------------------------------------------------------
OParseColumn* OParseColumn::createColumnForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
- const Reference< XDatabaseMetaData >& _rxDBMetaData, sal_Int32 _nColumnPos,StringMap& _rColumns )
+ const Reference< XDatabaseMetaData >& _rxDBMetaData, sal_Int32 _nColumnPos, StringMap& _rColumns )
{
::rtl::OUString sLabel = _rxResMetaData->getColumnLabel( _nColumnPos );
// retrieve the name of the column
@@ -143,17 +154,11 @@ OParseColumn* OParseColumn::createColumnForResultSet( const Reference< XResultSe
_rxResMetaData->getColumnType( _nColumnPos ),
_rxResMetaData->isAutoIncrement( _nColumnPos ),
_rxResMetaData->isCurrency( _nColumnPos ),
- _rxDBMetaData->supportsMixedCaseQuotedIdentifiers()
+ _rxDBMetaData->supportsMixedCaseQuotedIdentifiers(),
+ _rxResMetaData->getCatalogName( _nColumnPos ),
+ _rxResMetaData->getSchemaName( _nColumnPos ),
+ _rxResMetaData->getTableName( _nColumnPos )
);
- const ::rtl::OUString sTableName = _rxResMetaData->getTableName( _nColumnPos );
- if ( !sTableName.isEmpty() )
- pColumn->setTableName( ::dbtools::composeTableName( _rxDBMetaData,
- _rxResMetaData->getCatalogName( _nColumnPos ),
- _rxResMetaData->getSchemaName( _nColumnPos ),
- sTableName,
- sal_False,
- eComplete
- ) );
pColumn->setIsSearchable( _rxResMetaData->isSearchable( _nColumnPos ) );
pColumn->setRealName(_rxResMetaData->getColumnName( _nColumnPos ));
pColumn->setLabel(sLabel);
@@ -169,7 +174,6 @@ void OParseColumn::construct()
{
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION), PROPERTY_ID_FUNCTION, 0, &m_bFunction, ::getCppuType(static_cast< sal_Bool*>(0)));
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_AGGREGATEFUNCTION), PROPERTY_ID_AGGREGATEFUNCTION, 0, &m_bAggregateFunction, ::getCppuType(static_cast< sal_Bool*>(0)));
- registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME), PROPERTY_ID_TABLENAME, 0, &m_aTableName, ::getCppuType(static_cast< ::rtl::OUString*>(0)));
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_REALNAME), PROPERTY_ID_REALNAME, 0, &m_aRealName, ::getCppuType(static_cast< ::rtl::OUString*>(0)));
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DBASEPRECISIONCHANGED), PROPERTY_ID_DBASEPRECISIONCHANGED, 0, &m_bDbasePrecisionChanged, ::getCppuType(static_cast<sal_Bool*>(0)));
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISSEARCHABLE), PROPERTY_ID_ISSEARCHABLE, 0, &m_bIsSearchable, ::getCppuType(static_cast< sal_Bool*>(0)));
@@ -188,24 +192,6 @@ void OParseColumn::construct()
}
// -----------------------------------------------------------------------------
-namespace
-{
- ::rtl::OUString lcl_getColumnTableName( const Reference< XPropertySet >& i_parseColumn )
- {
- ::rtl::OUString sColumnTableName;
- try
- {
- OSL_VERIFY( i_parseColumn->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex( PROPERTY_ID_TABLENAME ) ) >>= sColumnTableName );
- }
- catch( const Exception& )
- {
- DBG_UNHANDLED_EXCEPTION();
- }
- return sColumnTableName;
- }
-}
-
-// -----------------------------------------------------------------------------
OOrderColumn::OOrderColumn( const Reference<XPropertySet>& _xColumn, const ::rtl::OUString& i_rOriginatingTableName,
sal_Bool _bCase, sal_Bool _bAscending )
: connectivity::sdbcx::OColumn(
@@ -220,12 +206,17 @@ OOrderColumn::OOrderColumn( const Reference<XPropertySet>& _xColumn, const ::rtl
getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))),
sal_False,
getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY))),
- _bCase
+ _bCase,
+ getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME))),
+ getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME))),
+ i_rOriginatingTableName
)
,m_bAscending(_bAscending)
- ,m_sTableName( i_rOriginatingTableName )
{
construct();
+ OSL_ENSURE( getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME))).isEmpty() ||
+ i_rOriginatingTableName == getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME)) ),
+ "dbaccess::OOrderColumn::OOrderColumn: forced originating table name != underlying column table name" );
}
// -----------------------------------------------------------------------------
@@ -242,10 +233,12 @@ OOrderColumn::OOrderColumn( const Reference<XPropertySet>& _xColumn, sal_Bool _b
getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT))),
sal_False,
getBOOL(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY))),
- _bCase
+ _bCase,
+ getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME))),
+ getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME))),
+ getString(_xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME)))
)
,m_bAscending(_bAscending)
- ,m_sTableName( lcl_getColumnTableName( _xColumn ) )
{
construct();
}
@@ -260,8 +253,6 @@ void OOrderColumn::construct()
{
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISASCENDING), PROPERTY_ID_ISASCENDING,
PropertyAttribute::READONLY, const_cast< sal_Bool* >( &m_bAscending ), ::getCppuType( static_cast< sal_Bool* >( 0 ) ) );
- registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME), PROPERTY_ID_TABLENAME,
- PropertyAttribute::READONLY, const_cast< ::rtl::OUString* >( &m_sTableName ), ::getCppuType(static_cast< ::rtl::OUString*>(0)));
}
// -----------------------------------------------------------------------------
::cppu::IPropertyArrayHelper* OOrderColumn::createArrayHelper() const
diff --git a/connectivity/source/parse/sqliterator.cxx b/connectivity/source/parse/sqliterator.cxx
index 5ee583e15605..7d91655b6394 100644
--- a/connectivity/source/parse/sqliterator.cxx
+++ b/connectivity/source/parse/sqliterator.cxx
@@ -899,7 +899,8 @@ void OSQLParseTreeIterator::traverseCreateColumns(const OSQLParseNode* pSelectNo
{
//TODO:Create a new class for create statement to handle field length
OParseColumn* pColumn = new OParseColumn(aColumnName,aTypeName,::rtl::OUString(),::rtl::OUString(),
- ColumnValue::NULLABLE_UNKNOWN,0,0,nType,sal_False,sal_False,isCaseSensitive());
+ ColumnValue::NULLABLE_UNKNOWN,0,0,nType,sal_False,sal_False,isCaseSensitive(),
+ ::rtl::OUString(),::rtl::OUString(),::rtl::OUString());
pColumn->setFunction(sal_False);
pColumn->setRealName(aColumnName);
@@ -1500,7 +1501,10 @@ void OSQLParseTreeIterator::traverseParameter(const OSQLParseNode* _pParseNode
nType,
sal_False,
sal_False,
- isCaseSensitive());
+ isCaseSensitive(),
+ ::rtl::OUString(),
+ ::rtl::OUString(),
+ ::rtl::OUString());
pColumn->setFunction(sal_True);
pColumn->setAggregateFunction(sal_True);
pColumn->setRealName(sFunctionName);
@@ -1564,7 +1568,10 @@ void OSQLParseTreeIterator::traverseParameter(const OSQLParseNode* _pParseNode
nType,
sal_False,
sal_False,
- isCaseSensitive() );
+ isCaseSensitive(),
+ ::rtl::OUString(),
+ ::rtl::OUString(),
+ ::rtl::OUString());
pColumn->setName(aNewColName);
pColumn->setRealName(sParameterName);
m_aParameters->get().push_back(pColumn);
@@ -1707,7 +1714,10 @@ void OSQLParseTreeIterator::appendColumns(::rtl::Reference<OSQLColumns>& _rColum
, getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))
, getBOOL(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT)))
, getBOOL(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY)))
- , isCaseSensitive() );
+ , isCaseSensitive()
+ , getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME)))
+ , getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME)))
+ , getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME))));
pColumn->setTableName(_rTableAlias);
pColumn->setRealName(*pBegin);
@@ -1785,7 +1795,10 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns>& _
_nType,
sal_False,
sal_False,
- isCaseSensitive()
+ isCaseSensitive(),
+ ::rtl::OUString(),
+ ::rtl::OUString(),
+ ::rtl::OUString()
);
xNewColumn = pColumn;
@@ -1799,7 +1812,8 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns>& _
::rtl::OUString aNewColName(getUniqueColumnName(rColumnAlias));
OParseColumn* pColumn = new OParseColumn(aNewColName,::rtl::OUString(),::rtl::OUString(),::rtl::OUString(),
- ColumnValue::NULLABLE_UNKNOWN,0,0,_nType,sal_False,sal_False,isCaseSensitive());
+ ColumnValue::NULLABLE_UNKNOWN,0,0,_nType,sal_False,sal_False,isCaseSensitive(),
+ ::rtl::OUString(),::rtl::OUString(),::rtl::OUString());
pColumn->setFunction(sal_True);
pColumn->setAggregateFunction(bAggFkt);
pColumn->setRealName(rColumnName);
@@ -1820,7 +1834,8 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns>& _
::rtl::OUString aNewColName(getUniqueColumnName(rColumnAlias));
OParseColumn* pColumn = new OParseColumn(aNewColName,::rtl::OUString(),::rtl::OUString(),::rtl::OUString(),
- ColumnValue::NULLABLE_UNKNOWN,0,0,_nType,sal_False,sal_False,isCaseSensitive());
+ ColumnValue::NULLABLE_UNKNOWN,0,0,_nType,sal_False,sal_False,isCaseSensitive(),
+ ::rtl::OUString(),::rtl::OUString(),::rtl::OUString());
pColumn->setFunction(sal_True);
pColumn->setAggregateFunction(bAggFkt);
pColumn->setRealName(rColumnName);
@@ -1857,7 +1872,8 @@ void OSQLParseTreeIterator::setSelectColumnName(::rtl::Reference<OSQLColumns>& _
::rtl::OUString aNewColName(getUniqueColumnName(rColumnAlias));
OParseColumn* pColumn = new OParseColumn(aNewColName,::rtl::OUString(),::rtl::OUString(),::rtl::OUString(),
- ColumnValue::NULLABLE_UNKNOWN,0,0,DataType::VARCHAR,sal_False,sal_False,isCaseSensitive());
+ ColumnValue::NULLABLE_UNKNOWN,0,0,DataType::VARCHAR,sal_False,sal_False,isCaseSensitive(),
+ ::rtl::OUString(),::rtl::OUString(),::rtl::OUString());
pColumn->setFunction(sal_True);
pColumn->setAggregateFunction(bAggFkt);
diff --git a/connectivity/source/sdbcx/VColumn.cxx b/connectivity/source/sdbcx/VColumn.cxx
index f8cae2530774..8de64c8ff189 100644
--- a/connectivity/source/sdbcx/VColumn.cxx
+++ b/connectivity/source/sdbcx/VColumn.cxx
@@ -87,7 +87,10 @@ OColumn::OColumn( const ::rtl::OUString& _Name,
sal_Bool _IsAutoIncrement,
sal_Bool _IsRowVersion,
sal_Bool _IsCurrency,
- sal_Bool _bCase)
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName)
:OColumnDescriptor_BASE(m_aMutex)
,ODescriptor(OColumnDescriptor_BASE::rBHelper,_bCase)
,m_TypeName(_TypeName)
@@ -100,6 +103,9 @@ OColumn::OColumn( const ::rtl::OUString& _Name,
,m_IsAutoIncrement(_IsAutoIncrement)
,m_IsRowVersion(_IsRowVersion)
,m_IsCurrency(_IsCurrency)
+ ,m_CatalogName(_CatalogName)
+ ,m_SchemaName(_SchemaName)
+ ,m_TableName(_TableName)
{
m_Name = _Name;
@@ -167,6 +173,9 @@ void OColumn::construct()
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT), PROPERTY_ID_ISAUTOINCREMENT, nAttrib, &m_IsAutoIncrement, ::getBooleanCppuType());
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISROWVERSION), PROPERTY_ID_ISROWVERSION, nAttrib, &m_IsRowVersion, ::getBooleanCppuType());
registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY), PROPERTY_ID_ISCURRENCY, nAttrib, &m_IsCurrency, ::getBooleanCppuType());
+ registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_CATALOGNAME), PROPERTY_ID_CATALOGNAME, nAttrib, &m_CatalogName, ::getCppuType(&m_CatalogName));
+ registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCHEMANAME), PROPERTY_ID_SCHEMANAME, nAttrib, &m_SchemaName, ::getCppuType(&m_SchemaName));
+ registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TABLENAME), PROPERTY_ID_TABLENAME, nAttrib, &m_TableName, ::getCppuType(&m_TableName));
}
// -------------------------------------------------------------------------
void OColumn::disposing(void)
@@ -195,7 +204,10 @@ Reference< XPropertySet > SAL_CALL OColumn::createDataDescriptor( ) throw(Runti
m_IsAutoIncrement,
m_IsRowVersion,
m_IsCurrency,
- isCaseSensitive());
+ isCaseSensitive(),
+ m_CatalogName,
+ m_SchemaName,
+ m_TableName);
pNewColumn->setNew(sal_True);
return pNewColumn;
}
diff --git a/connectivity/source/sdbcx/VIndexColumn.cxx b/connectivity/source/sdbcx/VIndexColumn.cxx
index be5fd014ff72..15a20a2dec59 100644
--- a/connectivity/source/sdbcx/VIndexColumn.cxx
+++ b/connectivity/source/sdbcx/VIndexColumn.cxx
@@ -71,7 +71,10 @@ OIndexColumn::OIndexColumn( sal_Bool _IsAscending,
sal_Bool _IsAutoIncrement,
sal_Bool _IsRowVersion,
sal_Bool _IsCurrency,
- sal_Bool _bCase
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName
) : OColumn(_Name,
_TypeName,
_DefaultValue,
@@ -83,7 +86,10 @@ OIndexColumn::OIndexColumn( sal_Bool _IsAscending,
_IsAutoIncrement,
_IsRowVersion,
_IsCurrency,
- _bCase)
+ _bCase,
+ _CatalogName,
+ _SchemaName,
+ _TableName)
, m_IsAscending(_IsAscending)
{
construct();
diff --git a/connectivity/source/sdbcx/VKeyColumn.cxx b/connectivity/source/sdbcx/VKeyColumn.cxx
index edb052277d2b..48e1df5154f3 100644
--- a/connectivity/source/sdbcx/VKeyColumn.cxx
+++ b/connectivity/source/sdbcx/VKeyColumn.cxx
@@ -71,7 +71,10 @@ OKeyColumn::OKeyColumn( const ::rtl::OUString& _ReferencedColumn,
sal_Bool _IsAutoIncrement,
sal_Bool _IsRowVersion,
sal_Bool _IsCurrency,
- sal_Bool _bCase
+ sal_Bool _bCase,
+ const ::rtl::OUString& _CatalogName,
+ const ::rtl::OUString& _SchemaName,
+ const ::rtl::OUString& _TableName
) : OColumn(_Name,
_TypeName,
_DefaultValue,
@@ -83,7 +86,10 @@ OKeyColumn::OKeyColumn( const ::rtl::OUString& _ReferencedColumn,
_IsAutoIncrement,
_IsRowVersion,
_IsCurrency,
- _bCase)
+ _bCase,
+ _CatalogName,
+ _SchemaName,
+ _TableName)
, m_ReferencedColumn(_ReferencedColumn)
{
construct();
diff --git a/dbaccess/source/core/api/definitioncolumn.cxx b/dbaccess/source/core/api/definitioncolumn.cxx
index 7be166698494..e8e0acd063c9 100644
--- a/dbaccess/source/core/api/definitioncolumn.cxx
+++ b/dbaccess/source/core/api/definitioncolumn.cxx
@@ -44,10 +44,16 @@ using namespace ::comphelper;
using namespace ::osl;
using namespace dbaccess;
-#define HAS_DESCRIPTION 0x00000001
-#define HAS_DEFAULTVALUE 0x00000002
-#define HAS_ROWVERSION 0x00000004
-#define HAS_AUTOINCREMENT_CREATION 0x00000008
+namespace
+{
+ const sal_Int32 HAS_DESCRIPTION = 0x00000001;
+ const sal_Int32 HAS_DEFAULTVALUE = 0x00000002;
+ const sal_Int32 HAS_ROWVERSION = 0x00000004;
+ const sal_Int32 HAS_AUTOINCREMENT_CREATION = 0x00000008;
+ const sal_Int32 HAS_CATALOGNAME = 0x00000010;
+ const sal_Int32 HAS_SCHEMANAME = 0x00000020;
+ const sal_Int32 HAS_TABLENAME = 0x00000040;
+}
//============================================================
//= OTableColumnDescriptor
@@ -336,6 +342,9 @@ OColumnWrapper::OColumnWrapper( const Reference< XPropertySet > & rCol, const bo
m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_DEFAULTVALUE) ? HAS_DEFAULTVALUE : 0;
m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_ISROWVERSION) ? HAS_ROWVERSION : 0;
m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_AUTOINCREMENTCREATION) ? HAS_AUTOINCREMENT_CREATION : 0;
+ m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_CATALOGNAME) ? HAS_CATALOGNAME : 0;
+ m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_SCHEMANAME) ? HAS_SCHEMANAME : 0;
+ m_nColTypeID |= xInfo->hasPropertyByName(PROPERTY_TABLENAME) ? HAS_TABLENAME : 0;
m_xAggregate->getPropertyValue(PROPERTY_NAME) >>= m_sName;
}
@@ -445,15 +454,7 @@ Sequence< ::rtl::OUString > OTableColumnDescriptorWrapper::getSupportedServiceNa
const sal_Int32 nHaveAlways = 7;
// Which optional properties are contained?
- sal_Int32 nHaveOptionally = 0;
- if (nId & HAS_DESCRIPTION)
- ++nHaveOptionally;
- if (nId & HAS_DEFAULTVALUE)
- ++nHaveOptionally;
- if (nId & HAS_ROWVERSION)
- ++nHaveOptionally;
- if ( nId & HAS_AUTOINCREMENT_CREATION )
- ++nHaveOptionally;
+ const sal_Int32 nHaveOptionally (::std::bitset<7>(nId).count());
BEGIN_PROPERTY_SEQUENCE( nHaveAlways + nHaveOptionally )
@@ -481,6 +482,18 @@ Sequence< ::rtl::OUString > OTableColumnDescriptorWrapper::getSupportedServiceNa
{
DECL_PROP0_BOOL( ISROWVERSION );
}
+ if ( nId & HAS_CATALOGNAME )
+ {
+ DECL_PROP0( CATALOGNAME, ::rtl::OUString );
+ }
+ if ( nId & HAS_SCHEMANAME )
+ {
+ DECL_PROP0( SCHEMANAME, ::rtl::OUString );
+ }
+ if ( nId & HAS_TABLENAME )
+ {
+ DECL_PROP0( TABLENAME, ::rtl::OUString );
+ }
END_PROPERTY_SEQUENCE()
diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
index ebddbfc41813..13446b2d9c53 100644
--- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx
@@ -3085,7 +3085,10 @@ OSQLParseNode* OQueryDesignView::getPredicateTreeFromEntry(OTableFieldDescRef pE
nType,
sal_False,
sal_False,
- xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers());
+ xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers(),
+ ::rtl::OUString(),
+ ::rtl::OUString(),
+ ::rtl::OUString());
_rxColumn = pColumn;
pColumn->setFunction(sal_True);
pColumn->setRealName(pEntry->GetField());