connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx | 8 + connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx | 12 ++ connectivity/source/drivers/firebird/DatabaseMetaData.cxx | 43 +++++++--- connectivity/source/inc/FDatabaseMetaDataResultSet.hxx | 5 - connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx | 1 wizards/com/sun/star/wizards/db/DBMetaData.java | 2 6 files changed, 58 insertions(+), 13 deletions(-)
New commits: commit a95ecd8b65ea2275a66f6694f0c09e3faaef4407 Author: Julien Nabet <[email protected]> Date: Thu Oct 24 08:30:41 2013 +0200 fdo#69772 make StringsFromResultSet more robust Correctly handle case argument _xResultSet == null, instead of throwing a NullPointerException. Change-Id: I81e35c77116e2e0302da86f03f7e757a52e97b29 diff --git a/wizards/com/sun/star/wizards/db/DBMetaData.java b/wizards/com/sun/star/wizards/db/DBMetaData.java index a75009c..9e8b98d 100644 --- a/wizards/com/sun/star/wizards/db/DBMetaData.java +++ b/wizards/com/sun/star/wizards/db/DBMetaData.java @@ -959,6 +959,8 @@ public class DBMetaData private String[] StringsFromResultSet(XResultSet _xResultSet, int _icol) { String[] sColValues = null; + if (_xResultSet == null) + return sColValues; try { XRow xRow = UnoRuntime.queryInterface( XRow.class, _xResultSet ); commit d1fdaafd7c1c1ce3d89dda3bd745f9dd594d83ca Author: Lionel Elie Mamane <[email protected]> Date: Fri Oct 25 09:59:40 2013 +0200 fdo#6412 firebird-sdbc DatabaseMetaData unimplemented getXXX: provide empty RS As opposed to NULL object. Else, callers that do a UNO_QUERY_THROW get unexpected results. Change-Id: Ie9dd157eed03031ba04ed59c363a45e246bbb001 diff --git a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx index a1ba07a..fbc82ba 100644 --- a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx @@ -91,7 +91,9 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInDataManipulation( ) thro uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getCatalogs() throw(SQLException, RuntimeException) { - return 0; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eCatalogs); } sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls() throw(SQLException, RuntimeException) @@ -150,7 +152,9 @@ OUString SAL_CALL ODatabaseMetaData::getSchemaTerm() uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getSchemas() throw(SQLException, RuntimeException) { - return 0; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eSchemas); } //----- Max Sizes/Lengths ----------------------------------------------------- @@ -838,7 +842,9 @@ uno::Reference< XConnection > SAL_CALL ODatabaseMetaData::getConnection() // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException) { - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTableTypes); } uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo() @@ -1413,7 +1419,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedureColumns( (void) schemaPattern; (void) procedureNamePattern; (void) columnNamePattern; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eProcedureColumns); } // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedures( @@ -1424,7 +1432,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedures( (void) catalog; (void) schemaPattern; (void) procedureNamePattern; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eProcedures); } // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getVersionColumns( @@ -1434,7 +1444,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getVersionColumns( (void) catalog; (void) schema; (void) table; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eVersionColumns); } // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getExportedKeys( @@ -1447,7 +1459,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getExportedKeys( (void) catalog; (void) schema; (void) table; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eExportedKeys); } // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys( @@ -1460,7 +1474,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys( (void) catalog; (void) schema; (void) table; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eImportedKeys); } uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getPrimaryKeys( @@ -1627,7 +1643,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getBestRowIdentifier( (void) table; (void) scope; (void) nullable; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eBestRowIdentifier); } uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges( @@ -1709,7 +1727,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getCrossReference( (void) foreignCatalog; (void) foreignSchema; (void) foreignTable; - return NULL; + OSL_FAIL("Not implemented yet!"); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eCrossReference); } // ------------------------------------------------------------------------- uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& catalog, const OUString& schemaPattern, const OUString& typeNamePattern, const Sequence< sal_Int32 >& types ) throw(SQLException, RuntimeException) @@ -1719,7 +1739,8 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& cat (void) typeNamePattern; (void) types; OSL_FAIL("Not implemented yet!"); - throw SQLException(); + // TODO implement + return new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eUDTs); } // ----------------------------------------------------------------------------- commit 373e4d33c1ecbef94736f551fae75d68c4f21f8e Author: Lionel Elie Mamane <[email protected]> Date: Fri Oct 25 09:56:56 2013 +0200 connectivity commontools DatabaseMetaData: provide for getUDTs, too Change-Id: Id361ac34f400922893f6a906e4345eed2be1b2d2 diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx index 102a4f6..c56272c 100644 --- a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx +++ b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx @@ -111,6 +111,7 @@ void ODatabaseMetaDataResultSet::setType(MetaDataResultSetType _eType) case eTypeInfo: setTypeInfoMap(); break; case eBestRowIdentifier: setBestRowIdentifierMap(); break; case eVersionColumns: setVersionColumnsMap(); break; + case eUDTs: setUDTsMap(); break; default: OSL_FAIL("Wrong type!"); } @@ -611,6 +612,13 @@ void ODatabaseMetaDataResultSet::setTypeInfoMap() m_xMetaData = pMetaData; } // ------------------------------------------------------------------------- +void ODatabaseMetaDataResultSet::setUDTsMap() +{ + ODatabaseMetaDataResultSetMetaData* pMetaData = new ODatabaseMetaDataResultSetMetaData(); + pMetaData->setUDTsMap(); + m_xMetaData = pMetaData; +} +// ------------------------------------------------------------------------- void ODatabaseMetaDataResultSet::setTableTypes() { ODatabaseMetaDataResultSetMetaData* pMetaData = new ODatabaseMetaDataResultSetMetaData(); diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx index ea2af9b..fe5c961 100644 --- a/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx +++ b/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx @@ -352,4 +352,14 @@ void ODatabaseMetaDataResultSetMetaData::setVersionColumnsMap() m_mColumns[8] = OColumn(OUString(),"PSEUDO_COLUMN", ColumnValue::NO_NULLS, 0,0,0, DataType::INTEGER); } +void ODatabaseMetaDataResultSetMetaData::setUDTsMap() +{ + m_mColumns[1] = OColumn(OUString(),"TYPE_CAT", ColumnValue::NULLABLE, 0,0,0, DataType::VARCHAR); + m_mColumns[2] = OColumn(OUString(),"TYPE_SCHEM", ColumnValue::NULLABLE, 0,0,0, DataType::VARCHAR); + m_mColumns[3] = OColumn(OUString(),"TYPE_NAME", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); + m_mColumns[4] = OColumn(OUString(),"CLASS_NAME", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); + m_mColumns[5] = OColumn(OUString(),"DATA_TYPE", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); + m_mColumns[6] = OColumn(OUString(),"REMARKS", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx b/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx index a503bae..0ca1cf4 100644 --- a/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx +++ b/connectivity/source/inc/FDatabaseMetaDataResultSet.hxx @@ -101,7 +101,9 @@ namespace connectivity /// describes a result set as expected by XDatabaseMetaData::getBestRowIdentifier eBestRowIdentifier = 15, /// describes a result set as expected by XDatabaseMetaData::getVersionColumns - eVersionColumns = 16 + eVersionColumns = 16, + /// describes a result set as expected by XDatabaseMetaData::getUDTs + eUDTs = 17 }; private: @@ -234,6 +236,7 @@ namespace connectivity void setTypeInfoMap(); void setBestRowIdentifierMap(); void setVersionColumnsMap(); + void setUDTsMap(); public: // some methods to get already defined ORowSetValues // this increase the reuse of ORowSetValues diff --git a/connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx b/connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx index e940948..8703be4 100644 --- a/connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx +++ b/connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx @@ -96,6 +96,7 @@ namespace connectivity void setImportedKeysMap() { setCrossReferenceMap(); } void setCatalogsMap(); void setSchemasMap(); + void setUDTsMap(); }; } #endif // _CONNECTIVITY_FILE_ADATABASEMETARESULTSETMETADATA_HXX_ commit 60b67b7e39217521d65e41398182f253e720333e Author: Lionel Elie Mamane <[email protected]> Date: Fri Oct 25 09:55:07 2013 +0200 janitorial: indentation Change-Id: I0b571a9fe719c4f18f89638eb62434dd0813bd01 diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx index 816a1a4..ea2af9b 100644 --- a/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx +++ b/connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx @@ -342,7 +342,7 @@ void ODatabaseMetaDataResultSetMetaData::setSchemasMap() void ODatabaseMetaDataResultSetMetaData::setVersionColumnsMap() { - m_mColumns[1] = OColumn(OUString(),"SCOPE", ColumnValue::NO_NULLS, 0,0,0, DataType::INTEGER); + m_mColumns[1] = OColumn(OUString(),"SCOPE", ColumnValue::NO_NULLS, 0,0,0, DataType::INTEGER); m_mColumns[2] = OColumn(OUString(),"COLUMN_NAME", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); m_mColumns[3] = OColumn(OUString(),"DATA_TYPE", ColumnValue::NO_NULLS, 0,0,0, DataType::INTEGER); m_mColumns[4] = OColumn(OUString(),"TYPE_NAME", ColumnValue::NO_NULLS, 0,0,0, DataType::VARCHAR); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
