simplify initialisation in *DatabaseMetaData
Change-Id: I1d7e107e22a98489e4d1013e14bb780e20d87c40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148594
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/connectivity/source/drivers/component/CDatabaseMetaData.cxx b/connectivity/source/drivers/component/CDatabaseMetaData.cxx
index b8bbae3..bbd921b 100644
--- a/connectivity/source/drivers/component/CDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/component/CDatabaseMetaData.cxx
@@ -46,14 +46,12 @@ OComponentDatabaseMetaData::~OComponentDatabaseMetaData()
Reference< XResultSet > OComponentDatabaseMetaData::impl_getTypeInfo_throw( )
{
::osl::MutexGuard aGuard( m_aMutex );
rtl::Reference<ODatabaseMetaDataResultSet> pResult = new ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo);
static ODatabaseMetaDataResultSet::ORows aRows;
if(aRows.empty())
static ODatabaseMetaDataResultSet::ORows aRows = []()
{
aRows.reserve(6);
ODatabaseMetaDataResultSet::ORows aTmp;
aTmp.reserve(6);
ODatabaseMetaDataResultSet::ORow aRow
{
ODatabaseMetaDataResultSet::getEmptyValue(),
@@ -77,43 +75,45 @@ Reference< XResultSet > OComponentDatabaseMetaData::impl_getTypeInfo_throw( )
new ORowSetValueDecorator(sal_Int32(10))
};
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL"));
aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL);
aRow[3] = ODatabaseMetaDataResultSet::get0Value();
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[15] = ODatabaseMetaDataResultSet::get0Value();
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("BOOL"));
aRow[2] = new ORowSetValueDecorator(DataType::BIT);
aRow[3] = new ORowSetValueDecorator(sal_Int32(20));
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[15] = new ORowSetValueDecorator(sal_Int32(15));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("DATE"));
aRow[2] = new ORowSetValueDecorator(DataType::DATE);
aRow[3] = ODatabaseMetaDataResultSet::get0Value();
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[15] = ODatabaseMetaDataResultSet::get0Value();
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("TIME"));
aRow[2] = new ORowSetValueDecorator(DataType::TIME);
aRow[3] = ODatabaseMetaDataResultSet::get0Value();
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[15] = ODatabaseMetaDataResultSet::get0Value();
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP"));
aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP);
aRow[3] = ODatabaseMetaDataResultSet::get0Value();
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[15] = ODatabaseMetaDataResultSet::get0Value();
aRows.push_back(aRow);
}
aTmp.push_back(aRow);
return aTmp;
}();
pResult->setRows(std::move(aRows));
return pResult;
diff --git a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
index 26c2ad8..91a9c66 100644
--- a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx
@@ -54,14 +54,12 @@ ODbaseDatabaseMetaData::~ODbaseDatabaseMetaData()
Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( )
{
::osl::MutexGuard aGuard( m_aMutex );
rtl::Reference<::connectivity::ODatabaseMetaDataResultSet> pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo);
static ODatabaseMetaDataResultSet::ORows aRows;
if(aRows.empty())
static ODatabaseMetaDataResultSet::ORows aRows = []()
{
aRows.reserve(10);
ODatabaseMetaDataResultSet::ORows aTmp;
aTmp.reserve(10);
ODatabaseMetaDataResultSet::ORow aRow
{
ODatabaseMetaDataResultSet::getEmptyValue(),
@@ -85,20 +83,20 @@ Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( )
new ORowSetValueDecorator(sal_Int32(10))
};
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("LONGVARCHAR"));
aRow[2] = new ORowSetValueDecorator(DataType::LONGVARCHAR);
aRow[3] = new ORowSetValueDecorator(sal_Int32(2147483647));
aRow[6] = new ORowSetValueDecorator();
aRow[13] = new ORowSetValueDecorator(OUString("M"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("DATE"));
aRow[2] = new ORowSetValueDecorator(DataType::DATE);
aRow[3] = new ORowSetValueDecorator(sal_Int32(10));
aRow[13] = new ORowSetValueDecorator(OUString("D"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("BOOLEAN"));
aRow[2] = new ORowSetValueDecorator(DataType::BIT);
@@ -108,44 +106,46 @@ Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( )
aRow[6] = new ORowSetValueDecorator(OUString());
aRow[9] = ODatabaseMetaDataResultSet::getBasicValue();
aRow[13] = new ORowSetValueDecorator(OUString("L"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("DOUBLE"));
aRow[2] = new ORowSetValueDecorator(DataType::DOUBLE);
aRow[3] = new ORowSetValueDecorator(sal_Int32(8));
aRow[13] = new ORowSetValueDecorator(OUString("B"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[11] = new ORowSetValueDecorator(ORowSetValue(true));
aRow[13] = new ORowSetValueDecorator(OUString("Y"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("TIMESTAMP"));
aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP);
aRow[11] = new ORowSetValueDecorator(ORowSetValue(false));
aRow[13] = new ORowSetValueDecorator(OUString("T"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("INTEGER"));
aRow[2] = new ORowSetValueDecorator(DataType::INTEGER);
aRow[3] = new ORowSetValueDecorator(sal_Int32(10));
aRow[13] = new ORowSetValueDecorator(OUString("I"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("DECIMAL"));
aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL);
aRow[3] = new ORowSetValueDecorator(sal_Int32(20));
aRow[6] = new ORowSetValueDecorator(OUString("length,scale"));
aRow[13] = new ORowSetValueDecorator(OUString("F"));
aRows.push_back(aRow);
aTmp.push_back(aRow);
aRow[1] = new ORowSetValueDecorator(OUString("NUMERIC"));
aRow[2] = new ORowSetValueDecorator(DataType::DECIMAL);
aRow[3] = new ORowSetValueDecorator(sal_Int32(16));
aRow[13] = new ORowSetValueDecorator(OUString("N"));
aRow[15] = new ORowSetValueDecorator(sal_Int32(16));
aRows.push_back(aRow);
}
aTmp.push_back(aRow);
return aTmp;
}();
pResult->setRows(std::move(aRows));
return pResult;
diff --git a/connectivity/source/drivers/file/FDatabaseMetaData.cxx b/connectivity/source/drivers/file/FDatabaseMetaData.cxx
index 95d19d3..7b720f9 100644
--- a/connectivity/source/drivers/file/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/file/FDatabaseMetaData.cxx
@@ -618,14 +618,13 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins( )
Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( )
{
::osl::MutexGuard aGuard( m_aMutex );
rtl::Reference<ODatabaseMetaDataResultSet> pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTableTypes );
static ODatabaseMetaDataResultSet::ORows aRows;
if(aRows.empty())
static ODatabaseMetaDataResultSet::ORows aRows = []()
{
aRows.push_back( { ODatabaseMetaDataResultSet::getEmptyValue(), new ORowSetValueDecorator(OUString("TABLE")) } );
}
ODatabaseMetaDataResultSet::ORows aTmp;
aTmp.push_back( { ODatabaseMetaDataResultSet::getEmptyValue(), new ORowSetValueDecorator(OUString("TABLE")) } );
return aTmp;
}();
pResult->setRows(std::move(aRows));
return pResult;
}