[Libreoffice-commits] core.git: 7 commits - connectivity/Library_firebird_sdbc.mk connectivity/source

Andrzej J.R. Hunt andrzej at ahunt.org
Wed Jul 31 07:10:32 PDT 2013


 connectivity/Library_firebird_sdbc.mk                        |   16 
 connectivity/source/drivers/firebird/Blob.cxx                |    2 
 connectivity/source/drivers/firebird/Connection.cxx          |  737 ++++
 connectivity/source/drivers/firebird/Connection.hxx          |  183 +
 connectivity/source/drivers/firebird/DatabaseMetaData.cxx    | 1660 +++++++++++
 connectivity/source/drivers/firebird/DatabaseMetaData.hxx    |  205 +
 connectivity/source/drivers/firebird/Driver.cxx              |  222 +
 connectivity/source/drivers/firebird/Driver.hxx              |   79 
 connectivity/source/drivers/firebird/FConnection.cxx         |  737 ----
 connectivity/source/drivers/firebird/FConnection.hxx         |  183 -
 connectivity/source/drivers/firebird/FDatabaseMetaData.cxx   | 1588 ----------
 connectivity/source/drivers/firebird/FDatabaseMetaData.hxx   |  204 -
 connectivity/source/drivers/firebird/FDriver.cxx             |  221 -
 connectivity/source/drivers/firebird/FDriver.hxx             |   78 
 connectivity/source/drivers/firebird/FPreparedStatement.cxx  |  570 ---
 connectivity/source/drivers/firebird/FPreparedStatement.hxx  |  167 -
 connectivity/source/drivers/firebird/FResultSet.cxx          | 1025 ------
 connectivity/source/drivers/firebird/FResultSet.hxx          |  307 --
 connectivity/source/drivers/firebird/FResultSetMetaData.cxx  |  210 -
 connectivity/source/drivers/firebird/FResultSetMetaData.hxx  |  107 
 connectivity/source/drivers/firebird/FServices.cxx           |  134 
 connectivity/source/drivers/firebird/FStatement.cxx          |  213 -
 connectivity/source/drivers/firebird/FStatement.hxx          |   86 
 connectivity/source/drivers/firebird/FSubComponent.hxx       |  147 
 connectivity/source/drivers/firebird/PreparedStatement.cxx   |  570 +++
 connectivity/source/drivers/firebird/PreparedStatement.hxx   |  167 +
 connectivity/source/drivers/firebird/ResultSet.cxx           | 1024 ++++++
 connectivity/source/drivers/firebird/ResultSet.hxx           |  307 ++
 connectivity/source/drivers/firebird/ResultSetMetaData.cxx   |  210 +
 connectivity/source/drivers/firebird/ResultSetMetaData.hxx   |  107 
 connectivity/source/drivers/firebird/Services.cxx            |  135 
 connectivity/source/drivers/firebird/Statement.cxx           |  213 +
 connectivity/source/drivers/firebird/Statement.hxx           |   86 
 connectivity/source/drivers/firebird/StatementCommonBase.cxx |    4 
 connectivity/source/drivers/firebird/StatementCommonBase.hxx |    2 
 connectivity/source/drivers/firebird/SubComponent.hxx        |  148 
 36 files changed, 6065 insertions(+), 5989 deletions(-)

New commits:
commit da25756ba9a6b7ea51625dc5ca9291d209867068
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 16:03:29 2013 +0200

    Remove unnecessary F- prefix for firebird-sdbc files.
    
    Change-Id: I6574ef7fd1c26770a74b2d1f2b0d997fcca97779

diff --git a/connectivity/Library_firebird_sdbc.mk b/connectivity/Library_firebird_sdbc.mk
index 6030fec..1893718 100644
--- a/connectivity/Library_firebird_sdbc.mk
+++ b/connectivity/Library_firebird_sdbc.mk
@@ -38,14 +38,14 @@ $(eval $(call gb_Library_set_componentfile,firebird_sdbc,connectivity/source/dri
 
 $(eval $(call gb_Library_add_exception_objects,firebird_sdbc,\
     connectivity/source/drivers/firebird/Blob \
-    connectivity/source/drivers/firebird/FConnection \
-    connectivity/source/drivers/firebird/FDatabaseMetaData \
-    connectivity/source/drivers/firebird/FDriver \
-    connectivity/source/drivers/firebird/FPreparedStatement \
-    connectivity/source/drivers/firebird/FResultSet \
-    connectivity/source/drivers/firebird/FResultSetMetaData \
-    connectivity/source/drivers/firebird/FServices \
-    connectivity/source/drivers/firebird/FStatement \
+    connectivity/source/drivers/firebird/Connection \
+    connectivity/source/drivers/firebird/DatabaseMetaData \
+    connectivity/source/drivers/firebird/Driver \
+    connectivity/source/drivers/firebird/PreparedStatement \
+    connectivity/source/drivers/firebird/ResultSet \
+    connectivity/source/drivers/firebird/ResultSetMetaData \
+    connectivity/source/drivers/firebird/Services \
+    connectivity/source/drivers/firebird/Statement \
     connectivity/source/drivers/firebird/StatementCommonBase \
     connectivity/source/drivers/firebird/Util \
 ))
diff --git a/connectivity/source/drivers/firebird/Blob.cxx b/connectivity/source/drivers/firebird/Blob.cxx
index 8423b28..f27835d 100644
--- a/connectivity/source/drivers/firebird/Blob.cxx
+++ b/connectivity/source/drivers/firebird/Blob.cxx
@@ -8,7 +8,7 @@
  */
 
 #include "Blob.hxx"
-#include "FConnection.hxx"
+#include "Connection.hxx"
 #include "Util.hxx"
 
 #include "connectivity/dbexception.hxx"
diff --git a/connectivity/source/drivers/firebird/FConnection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FConnection.cxx
rename to connectivity/source/drivers/firebird/Connection.cxx
index 6fb8578..96ed57c 100644
--- a/connectivity/source/drivers/firebird/FConnection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -17,11 +17,11 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FConnection.hxx"
-#include "FDatabaseMetaData.hxx"
-#include "FDriver.hxx"
-#include "FPreparedStatement.hxx"
-#include "FStatement.hxx"
+#include "Connection.hxx"
+#include "DatabaseMetaData.hxx"
+#include "Driver.hxx"
+#include "PreparedStatement.hxx"
+#include "Statement.hxx"
 #include "Util.hxx"
 
 
diff --git a/connectivity/source/drivers/firebird/FConnection.hxx b/connectivity/source/drivers/firebird/Connection.hxx
similarity index 98%
rename from connectivity/source/drivers/firebird/FConnection.hxx
rename to connectivity/source/drivers/firebird/Connection.hxx
index 96b97ec..559bba9 100644
--- a/connectivity/source/drivers/firebird/FConnection.hxx
+++ b/connectivity/source/drivers/firebird/Connection.hxx
@@ -21,27 +21,27 @@
 #define CONNECTIVITY_FIREBIRD_CONNECTION_HXX
 
 #include "Blob.hxx"
+#include "SubComponent.hxx"
+
+#include <ibase.h>
+
+#include <connectivity/CommonTools.hxx>
+#include <connectivity/OSubComponent.hxx>
+#include <cppuhelper/compbase4.hxx>
+#include <cppuhelper/weakref.hxx>
+#include <map>
+#include <OTypeInfo.hxx>
 
-#include <com/sun/star/sdbc/SQLWarning.hpp>
 #include <com/sun/star/beans/PropertyValue.hpp>
 #include <com/sun/star/document/DocumentEvent.hpp>
 #include <com/sun/star/document/XDocumentEventListener.hpp>
 #include <com/sun/star/embed/XStorage.hpp>
-#include "connectivity/OSubComponent.hxx"
-#include "connectivity/CommonTools.hxx"
-#include "FSubComponent.hxx"
-
-#include "OTypeInfo.hxx"
 #include <com/sun/star/lang/DisposedException.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
+#include <com/sun/star/sdbc/SQLWarning.hpp>
 #include <com/sun/star/sdbc/XConnection.hpp>
-#include <cppuhelper/compbase4.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <map>
-
-#include <ibase.h>
+#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
 
 namespace connectivity
 {
diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
rename to connectivity/source/drivers/firebird/DatabaseMetaData.cxx
index bf7fadc..943bb82 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx
@@ -17,12 +17,12 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FDatabaseMetaData.hxx"
-#include "FDatabaseMetaDataResultSet.hxx"
+#include "DatabaseMetaData.hxx"
 #include "Util.hxx"
 
 #include <ibase.h>
 #include <rtl/ustrbuf.hxx>
+#include <FDatabaseMetaDataResultSet.hxx>
 
 #include <com/sun/star/sdbc/ColumnValue.hpp>
 #include <com/sun/star/sdbc/DataType.hpp>
diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.hxx b/connectivity/source/drivers/firebird/DatabaseMetaData.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FDatabaseMetaData.hxx
rename to connectivity/source/drivers/firebird/DatabaseMetaData.hxx
index 3b2da61..54ef0db 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.hxx
+++ b/connectivity/source/drivers/firebird/DatabaseMetaData.hxx
@@ -20,7 +20,8 @@
 #ifndef CONNECTIVITY_FIREBIRD_DATABASEMETADATA_HXX
 #define CONNECTIVITY_FIREBIRD_DATABASEMETADATA_HXX
 
-#include "FConnection.hxx"
+#include "Connection.hxx"
+
 #include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
 #include <cppuhelper/implbase1.hxx>
 
diff --git a/connectivity/source/drivers/firebird/FDriver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FDriver.cxx
rename to connectivity/source/drivers/firebird/Driver.cxx
index 4ddab75..21afe46 100644
--- a/connectivity/source/drivers/firebird/FDriver.cxx
+++ b/connectivity/source/drivers/firebird/Driver.cxx
@@ -17,8 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FDriver.hxx"
-#include "FConnection.hxx"
+#include "Connection.hxx"
+#include "Driver.hxx"
+
 #include "connectivity/dbexception.hxx"
 #include "resource/common_res.hrc"
 #include "resource/hsqldb_res.hrc"
diff --git a/connectivity/source/drivers/firebird/FDriver.hxx b/connectivity/source/drivers/firebird/Driver.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FDriver.hxx
rename to connectivity/source/drivers/firebird/Driver.hxx
index 442d520..fcb0f57 100644
--- a/connectivity/source/drivers/firebird/FDriver.hxx
+++ b/connectivity/source/drivers/firebird/Driver.hxx
@@ -20,10 +20,11 @@
 #ifndef CONNECTIVITY_FIREBIRD_DRIVER_HXX
 #define CONNECTIVITY_FIREBIRD_DRIVER_HXX
 
+#include "Connection.hxx"
+
 #include <com/sun/star/sdbc/XDriver.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <cppuhelper/compbase2.hxx>
-#include "FConnection.hxx"
 
 namespace connectivity
 {
diff --git a/connectivity/source/drivers/firebird/FPreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FPreparedStatement.cxx
rename to connectivity/source/drivers/firebird/PreparedStatement.cxx
index 441b86b..aeddb14 100644
--- a/connectivity/source/drivers/firebird/FPreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -17,10 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FConnection.hxx"
-#include "FPreparedStatement.hxx"
-#include "FResultSetMetaData.hxx"
-#include "FResultSet.hxx"
+#include "Connection.hxx"
+#include "PreparedStatement.hxx"
+#include "ResultSet.hxx"
+#include "ResultSetMetaData.hxx"
 #include "Util.hxx"
 
 #include <comphelper/sequence.hxx>
diff --git a/connectivity/source/drivers/firebird/FPreparedStatement.hxx b/connectivity/source/drivers/firebird/PreparedStatement.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FPreparedStatement.hxx
rename to connectivity/source/drivers/firebird/PreparedStatement.hxx
index 0399d6a..60d5c66 100644
--- a/connectivity/source/drivers/firebird/FPreparedStatement.hxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.hxx
@@ -20,7 +20,7 @@
 #ifndef CONNECTIVITY_FIREBIRD_PREPAREDSTATEMENT_HXX
 #define CONNECTIVITY_FIREBIRD_PREPAREDSTATEMENT_HXX
 
-#include "FStatement.hxx"
+#include "Statement.hxx"
 
 #include <cppuhelper/implbase5.hxx>
 
diff --git a/connectivity/source/drivers/firebird/FResultSet.cxx b/connectivity/source/drivers/firebird/ResultSet.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FResultSet.cxx
rename to connectivity/source/drivers/firebird/ResultSet.cxx
index ca0ded1..36c59af 100644
--- a/connectivity/source/drivers/firebird/FResultSet.cxx
+++ b/connectivity/source/drivers/firebird/ResultSet.cxx
@@ -17,18 +17,17 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FResultSet.hxx"
-#include "FResultSetMetaData.hxx"
+#include "ResultSet.hxx"
+#include "ResultSetMetaData.hxx"
 #include "Util.hxx"
 
-#include <propertyids.hxx>
-#include <TConnection.hxx>
-
-#include <connectivity/dbexception.hxx>
 #include <comphelper/sequence.hxx>
 #include <cppuhelper/typeprovider.hxx>
+#include <connectivity/dbexception.hxx>
+#include <propertyids.hxx>
 #include <rtl/string.hxx>
 #include <rtl/ustrbuf.hxx>
+#include <TConnection.hxx>
 
 #include <com/sun/star/beans/PropertyAttribute.hpp>
 #include <com/sun/star/lang/DisposedException.hpp>
diff --git a/connectivity/source/drivers/firebird/FResultSet.hxx b/connectivity/source/drivers/firebird/ResultSet.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FResultSet.hxx
rename to connectivity/source/drivers/firebird/ResultSet.hxx
index cd0ee5a..a741295 100644
--- a/connectivity/source/drivers/firebird/FResultSet.hxx
+++ b/connectivity/source/drivers/firebird/ResultSet.hxx
@@ -20,7 +20,7 @@
 #ifndef CONNECTIVITY_FIREBIRD_RESULTSET_HXX
 #define CONNECTIVITY_FIREBIRD_RESULTSET_HXX
 
-#include "FStatement.hxx"
+#include "Statement.hxx"
 
 #include <ibase.h>
 
diff --git a/connectivity/source/drivers/firebird/FResultSetMetaData.cxx b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FResultSetMetaData.cxx
rename to connectivity/source/drivers/firebird/ResultSetMetaData.cxx
index f699b8f..9bcc6b3 100644
--- a/connectivity/source/drivers/firebird/FResultSetMetaData.cxx
+++ b/connectivity/source/drivers/firebird/ResultSetMetaData.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FResultSetMetaData.hxx"
+#include "ResultSetMetaData.hxx"
 #include "Util.hxx"
 
 #include <com/sun/star/sdbc/ColumnValue.hpp>
diff --git a/connectivity/source/drivers/firebird/FResultSetMetaData.hxx b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FResultSetMetaData.hxx
rename to connectivity/source/drivers/firebird/ResultSetMetaData.hxx
index 4aa4f9a..23a7377 100644
--- a/connectivity/source/drivers/firebird/FResultSetMetaData.hxx
+++ b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx
@@ -20,7 +20,7 @@
 #ifndef CONNECTIVITY_FIREBIRD_RESULTSETMETADATA_HXX
 #define CONNECTIVITY_FIREBIRD_RESULTSETMETADATA_HXX
 
-#include "FConnection.hxx"
+#include "Connection.hxx"
 
 #include <ibase.h>
 
diff --git a/connectivity/source/drivers/firebird/FServices.cxx b/connectivity/source/drivers/firebird/Services.cxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FServices.cxx
rename to connectivity/source/drivers/firebird/Services.cxx
index 65068a7..a60aad0 100644
--- a/connectivity/source/drivers/firebird/FServices.cxx
+++ b/connectivity/source/drivers/firebird/Services.cxx
@@ -17,10 +17,11 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <sal/types.h>
-#include "FDriver.hxx"
+#include "Driver.hxx"
+
 #include <cppuhelper/factory.hxx>
 #include <osl/diagnose.h>
+#include <sal/types.h>
 
 using namespace connectivity::firebird;
 using ::rtl::OUString;
diff --git a/connectivity/source/drivers/firebird/FStatement.cxx b/connectivity/source/drivers/firebird/Statement.cxx
similarity index 98%
rename from connectivity/source/drivers/firebird/FStatement.cxx
rename to connectivity/source/drivers/firebird/Statement.cxx
index 36d2704..7378e5c 100644
--- a/connectivity/source/drivers/firebird/FStatement.cxx
+++ b/connectivity/source/drivers/firebird/Statement.cxx
@@ -17,10 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FDriver.hxx"
-#include "FStatement.hxx"
-#include "FConnection.hxx"
-#include "FResultSet.hxx"
+#include "Connection.hxx"
+#include "Driver.hxx"
+#include "ResultSet.hxx"
+#include "Statement.hxx"
 #include "Util.hxx"
 
 #include <comphelper/sequence.hxx>
@@ -28,10 +28,10 @@
 #include <osl/thread.h>
 #include <rtl/ustrbuf.hxx>
 
+#include <com/sun/star/lang/DisposedException.hpp>
 #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
 #include <com/sun/star/sdbc/ResultSetType.hpp>
 #include <com/sun/star/sdbc/FetchDirection.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
 
 using namespace connectivity::firebird;
 
diff --git a/connectivity/source/drivers/firebird/FStatement.hxx b/connectivity/source/drivers/firebird/Statement.hxx
similarity index 100%
rename from connectivity/source/drivers/firebird/FStatement.hxx
rename to connectivity/source/drivers/firebird/Statement.hxx
diff --git a/connectivity/source/drivers/firebird/StatementCommonBase.cxx b/connectivity/source/drivers/firebird/StatementCommonBase.cxx
index e562c87..eba79de 100644
--- a/connectivity/source/drivers/firebird/StatementCommonBase.cxx
+++ b/connectivity/source/drivers/firebird/StatementCommonBase.cxx
@@ -17,8 +17,8 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "FDriver.hxx"
-#include "FResultSet.hxx"
+#include "Driver.hxx"
+#include "ResultSet.hxx"
 #include "StatementCommonBase.hxx"
 #include "Util.hxx"
 
diff --git a/connectivity/source/drivers/firebird/StatementCommonBase.hxx b/connectivity/source/drivers/firebird/StatementCommonBase.hxx
index 97c72c9..99f4563 100644
--- a/connectivity/source/drivers/firebird/StatementCommonBase.hxx
+++ b/connectivity/source/drivers/firebird/StatementCommonBase.hxx
@@ -20,7 +20,7 @@
 #ifndef CONNECTIVITY_FIREBIRD_STATEMENT_BASE_HXX
 #define CONNECTIVITY_FIREBIRD_STATEMENT_BASE_HXX
 
-#include "FConnection.hxx"
+#include "Connection.hxx"
 
 #include <ibase.h>
 
diff --git a/connectivity/source/drivers/firebird/FSubComponent.hxx b/connectivity/source/drivers/firebird/SubComponent.hxx
similarity index 99%
rename from connectivity/source/drivers/firebird/FSubComponent.hxx
rename to connectivity/source/drivers/firebird/SubComponent.hxx
index 929d318..2417427 100644
--- a/connectivity/source/drivers/firebird/FSubComponent.hxx
+++ b/connectivity/source/drivers/firebird/SubComponent.hxx
@@ -20,12 +20,13 @@
 #ifndef CONNECTIVITY_FIREBIRD_SUBCOMPONENT_HXX
 #define CONNECTIVITY_FIREBIRD_SUBCOMPONENT_HXX
 
-#include <cppuhelper/weak.hxx>
 #include <cppuhelper/interfacecontainer.h>
-#include <com/sun/star/lang/DisposedException.hpp>
 #include <cppuhelper/propshlp.hxx>
-#include <osl/mutex.hxx>
+#include <cppuhelper/weak.hxx>
 #include <osl/diagnose.h>
+#include <osl/mutex.hxx>
+
+#include <com/sun/star/lang/DisposedException.hpp>
 
 namespace cppu {
     class IPropertyArrayHelper;
commit 289741da6d5f1e7130f27e62b7ec4819da849d22
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 15:40:39 2013 +0200

    Optimise getPrimaryKeys a bit. (firebird-sdbc)
    
    Change-Id: I93d0a460b8c855596969a16fc33b31f9e0065624

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index d5478f7..bf7fadc 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -1492,7 +1492,10 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getPrimaryKeys(
     while(xRs->next())
     {
         // 3. Table Name
-        aCurrentRow[3] = new ORowSetValueDecorator(xRow->getString(1));
+        if (xRs->getRow() == 1) // Table name doesn't change, so only retrieve once
+        {
+            aCurrentRow[3] = new ORowSetValueDecorator(xRow->getString(1));
+        }
         // 4. Column Name
         aCurrentRow[4] = new ORowSetValueDecorator(xRow->getString(2));
         // 5. KEY_SEQ (which key in the sequence)
commit a55178ee66d1920a9bd9e7dda3d599a4b86f328a
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 15:20:32 2013 +0200

    Implement getPrimaryKeys. (firebird-sdbc)
    
    Change-Id: I7ccd013eaaf1c06b5eecae4b51bf607561531200

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index 5df5323..d5478f7 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -1449,15 +1449,64 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys(
     (void) table;
     return NULL;
 }
-// -------------------------------------------------------------------------
+
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getPrimaryKeys(
-    const Any& catalog, const OUString& schema, const OUString& table ) throw(SQLException, RuntimeException)
+        const Any& aCatalog,
+        const OUString& sSchema,
+        const OUString& sTable)
+    throw(SQLException, RuntimeException)
 {
-    SAL_WARN("connectivity.firebird", "Not yet implemented");
-    (void) catalog;
-    (void) schema;
-    (void) table;
-    return NULL;
+    (void) aCatalog;
+    (void) sSchema;
+    SAL_INFO("connectivity.firebird", "getPrimaryKeys() with "
+             "Table: " << sTable);
+
+    OUStringBuffer aQueryBuf("SELECT "
+        "constr.RDB$RELATION_NAME, "    // 1. Table Name
+        "inds.RDB$FIELD_NAME, "         // 2. Column Name
+        "inds.RDB$SORT_ORDER, "         // 3. Sequence Number
+        "constr.RDB$CONSTRAINT_NAME, "  // 4 Constraint name
+        "FROM RDB$RELATION_FIELDS constr "
+        "JOIN RDB$INDEX_SEGMENTS inds "
+        "on (constr.RDB$INDEX_NAME = inds.RDB$INDEX_NAME) ");
+
+    OUString sAppend = "WHERE constr.RDB$RELATION_NAME = '%' ";
+    aQueryBuf.append(sAppend.replaceAll("%", sTable));
+
+    aQueryBuf.append("AND constr.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY' "
+                    "ORDER BY inds.RDB$FIELD_NAME");
+
+    OUString sQuery = aQueryBuf.makeStringAndClear();
+
+    uno::Reference< XStatement > xStatement = m_pConnection->createStatement();
+    uno::Reference< XResultSet > xRs = xStatement->executeQuery(sQuery);
+    uno::Reference< XRow > xRow( xRs, UNO_QUERY_THROW );
+
+    ODatabaseMetaDataResultSet::ORows aResults;
+    ODatabaseMetaDataResultSet::ORow aCurrentRow(7);
+
+    aCurrentRow[0] =  new ORowSetValueDecorator(); // Unused -- numbering starts from 0
+    aCurrentRow[1] =  new ORowSetValueDecorator(); // Catalog - can be null
+    aCurrentRow[2] =  new ORowSetValueDecorator(); // Schema - can be null
+
+    while(xRs->next())
+    {
+        // 3. Table Name
+        aCurrentRow[3] = new ORowSetValueDecorator(xRow->getString(1));
+        // 4. Column Name
+        aCurrentRow[4] = new ORowSetValueDecorator(xRow->getString(2));
+        // 5. KEY_SEQ (which key in the sequence)
+        aCurrentRow[5] = new ORowSetValueDecorator(xRow->getShort(3));
+        // 6. Primary Key Name
+        aCurrentRow[6] = new ORowSetValueDecorator(xRow->getString(4));
+
+        aResults.push_back(aCurrentRow);
+    }
+    ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTables);
+    uno::Reference< XResultSet > xResultSet = pResultSet;
+    pResultSet->setRows( aResults );
+
+    return xResultSet;
 }
 // -------------------------------------------------------------------------
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getIndexInfo(
commit 08c4c6327d0aebb991e190e3c149ad364af098fc
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 12:53:33 2013 +0200

    Fix getTablePrivileges, warn on unimplemented methods. (firebird-sdbc)
    
    Change-Id: Ibf32f31d8b78c632c947a8b7546464b0b457ee08

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index a4a0ef4..5df5323 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -1401,6 +1401,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedureColumns(
     const Any& catalog, const OUString& schemaPattern,
     const OUString& procedureNamePattern, const OUString& columnNamePattern ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schemaPattern;
     (void) procedureNamePattern;
@@ -1412,6 +1413,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedures(
     const Any& catalog, const OUString& schemaPattern,
     const OUString& procedureNamePattern ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schemaPattern;
     (void) procedureNamePattern;
@@ -1421,6 +1423,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedures(
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getVersionColumns(
     const Any& catalog, const OUString& schema, const OUString& table ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schema;
     (void) table;
@@ -1430,6 +1433,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getVersionColumns(
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getExportedKeys(
     const Any& catalog, const OUString& schema, const OUString& table ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schema;
     (void) table;
@@ -1439,6 +1443,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getExportedKeys(
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys(
     const Any& catalog, const OUString& schema, const OUString& table ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schema;
     (void) table;
@@ -1448,6 +1453,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys(
 uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getPrimaryKeys(
     const Any& catalog, const OUString& schema, const OUString& table ) throw(SQLException, RuntimeException)
 {
+    SAL_WARN("connectivity.firebird", "Not yet implemented");
     (void) catalog;
     (void) schema;
     (void) table;
@@ -1529,7 +1535,9 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges(
 
     while( rs->next() )
     {
-        ODatabaseMetaDataResultSet::ORow aCurrentRow(7);
+        // TODO: avoid reallocations
+        ODatabaseMetaDataResultSet::ORow aCurrentRow;
+        aCurrentRow.reserve(7);
 
         // 1. TABLE_CAT
         aCurrentRow.push_back(new ORowSetValueDecorator());
commit 6523504d5bedad19ce8ca6a28916045ad17d6263
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 12:32:11 2013 +0200

    Some more DatabaseMetaData (firebird-sdbc).
    
    Change-Id: I9ac7043878acc5738582ecf6091230cdd7b63152

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index 4dece2d..a4a0ef4 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -242,16 +242,76 @@ sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers()
     return sal_True;
 }
 
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw(SQLException, RuntimeException)
+// ---- SQL Feature Support ---------------------------------------------------
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithAddColumn()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithDropColumn()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete()
+    throw(SQLException, RuntimeException)
 {
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable()
+    throw(SQLException, RuntimeException)
+{
+    // TODO: true if embedded, but unsure about remote server
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert(sal_Int32 fromType,
+                                                     sal_Int32 toType)
+    throw(SQLException, RuntimeException)
+{
+    (void) fromType;
+    (void) toType;
     return sal_False;
 }
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw(SQLException, RuntimeException)
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTypeConversion()
+    throw(SQLException, RuntimeException)
 {
     return sal_False;
 }
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsColumnAliasing()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
+
+sal_Bool SAL_CALL ODatabaseMetaData::supportsTableCorrelationNames()
+    throw(SQLException, RuntimeException)
+{
+    return sal_True;
+}
 // -------------------------------------------------------------------------
 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
 {
@@ -295,16 +355,6 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTr
     return sal_True;
 }
 // -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
 {
     return sal_False;
@@ -361,11 +411,6 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw
     return sal_False;
 }
 // -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
 sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatements(  ) throw(SQLException, RuntimeException)
 {
     sal_Int32 nValue = 0; // 0 means no limit
@@ -399,16 +444,6 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures(  ) throw(SQLExcep
     return sal_True;
 }
 // -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseMetaData::isReadOnly(  ) throw(SQLException, RuntimeException)
 {
     return m_pConnection->isReadOnly();
@@ -424,33 +459,11 @@ sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFilePerTable(  ) throw(SQLExceptio
     return sal_False;
 }
 // -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsTypeConversion(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseMetaData::nullPlusNonNullIsNull(  ) throw(SQLException, RuntimeException)
 {
     return sal_False;
 }
 // -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsColumnAliasing(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsTableCorrelationNames(  ) throw(SQLException, RuntimeException)
-{
-    return sal_False;
-}
-// -------------------------------------------------------------------------
-sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(SQLException, RuntimeException)
-{
-    (void) fromType;
-    (void) toType;
-    return sal_False;
-}
-// -------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
 {
     return sal_False;
commit 9f2c95533df5205953db54926f3d953ea2ac5b3f
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 12:06:22 2013 +0200

    Avoid repeated allocations in getColumns. (firebird-sdbc)
    
    Change-Id: I3d519815c42899f7cd60c6f06887cac7341e192b

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index 99880ac..4dece2d 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -1040,6 +1040,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumnPrivileges(
 
     while( rs->next() )
     {
+        // TODO: avoid reallocations here.
         ODatabaseMetaDataResultSet::ORow aCurrentRow;
         aCurrentRow.reserve(9);
 
@@ -1152,34 +1153,34 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
     uno::Reference< XRow > xRow( rs, UNO_QUERY_THROW );
 
     ODatabaseMetaDataResultSet::ORows aResults;
+    ODatabaseMetaDataResultSet::ORow aCurrentRow(19);
+
+    aCurrentRow[0] =  new ORowSetValueDecorator(); // Unused -- numbering starts from 0
+    aCurrentRow[1] =  new ORowSetValueDecorator(); // Catalog - can be null
+    aCurrentRow[2] =  new ORowSetValueDecorator(); // Schema - can be null
+    aCurrentRow[8] =  new ORowSetValueDecorator(); // Unused
+    aCurrentRow[10] = new ORowSetValueDecorator(sal_Int32(10)); // Radix: fixed in FB
+    aCurrentRow[14] = new ORowSetValueDecorator(); // Unused
+    aCurrentRow[15] = new ORowSetValueDecorator(); // Unused
 
     while( rs->next() )
     {
-        ODatabaseMetaDataResultSet::ORow aCurrentRow;
-        aCurrentRow.reserve(19);
-
-        // 0. EMPTY
-        aCurrentRow.push_back(new ORowSetValueDecorator());
-        // 1. TABLE_CAT (catalog) may be null
-        aCurrentRow.push_back(new ORowSetValueDecorator());
-        // 2. TABLE_SCHEM (schema) may be null
-        aCurrentRow.push_back(new ORowSetValueDecorator());
         // 3. TABLE_NAME
         {
             OUString aTableName = xRow->getString(1);
-            aCurrentRow.push_back(new ORowSetValueDecorator(aTableName));
+            aCurrentRow[3] = new ORowSetValueDecorator(aTableName);
         }
         // 4. Column Name
         {
             OUString aColumnName = xRow->getString(2);
-            aCurrentRow.push_back(new ORowSetValueDecorator(aColumnName));
+            aCurrentRow[4] = new ORowSetValueDecorator(aColumnName);
         }
 
         // 5. Datatype
         short aType = getFBTypeFromBlrType(xRow->getShort(6));
-        aCurrentRow.push_back(new ORowSetValueDecorator(getColumnTypeFromFBType(aType)));
+        aCurrentRow[5] = new ORowSetValueDecorator(getColumnTypeFromFBType(aType));
         // 6. Typename (SQL_*)
-        aCurrentRow.push_back(new ORowSetValueDecorator(getColumnTypeNameFromFBType(aType)));
+        aCurrentRow[6] = new ORowSetValueDecorator(getColumnTypeNameFromFBType(aType));
 
         // 7. Column Sizes
         {
@@ -1208,23 +1209,21 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
                     // TODO: implement.
                     break;
             }
-            aCurrentRow.push_back(new ORowSetValueDecorator(aColumnSize));
+            aCurrentRow[7] = new ORowSetValueDecorator(aColumnSize);
         }
-        // 8. Unused
-        aCurrentRow.push_back(new ORowSetValueDecorator());
+
         // 9. Decimal Digits
         // TODO: implement
-        aCurrentRow.push_back(new ORowSetValueDecorator(sal_Int32(0)));
-        // 10. Radix
-        aCurrentRow.push_back(new ORowSetValueDecorator(sal_Int32(10)));
+        aCurrentRow[9] = new ORowSetValueDecorator(sal_Int32(0));
+
         // 11. Nullable
         if (xRow->getShort(9))
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(ColumnValue::NO_NULLS));
+            aCurrentRow[11] = new ORowSetValueDecorator(ColumnValue::NO_NULLS);
         }
         else
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(ColumnValue::NULLABLE));
+            aCurrentRow[11] = new ORowSetValueDecorator(ColumnValue::NULLABLE);
         }
         // 12. Comments -- may be omitted
         {
@@ -1237,7 +1236,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
                                         aBlobLength,
                                         RTL_TEXTENCODING_UTF8);
             }
-            aCurrentRow.push_back(new ORowSetValueDecorator(aDescription));
+            aCurrentRow[12] = new ORowSetValueDecorator(aDescription);
         }
         // 13. Default --  may be omitted.
         {
@@ -1246,40 +1245,37 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
             {
                 // TODO: Implement
             }
-            aCurrentRow.push_back(new ORowSetValueDecorator());
+            aCurrentRow[13] = new ORowSetValueDecorator();
         }
-        // 14. Unused
-        aCurrentRow.push_back(new ORowSetValueDecorator());
-        // 15. Unused
-        aCurrentRow.push_back(new ORowSetValueDecorator());
+
         // 16. Bytes in Column for char
         if (aType == SQL_TEXT)
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(xRow->getShort(7)));
+            aCurrentRow[16] = new ORowSetValueDecorator(xRow->getShort(7));
         }
         else if (aType == SQL_VARYING)
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(sal_Int32(32767)));
+            aCurrentRow[16] = new ORowSetValueDecorator(sal_Int32(32767));
         }
         else
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(sal_Int32(0)));
+            aCurrentRow[16] = new ORowSetValueDecorator(sal_Int32(0));
         }
         // 17. Index of column
         {
-            short aColumnNumber = xRow->getShort(5);
+            short nColumnNumber = xRow->getShort(5);
             // Firebird stores column numbers beginning with 0 internally
             // SDBC expects column numbering to begin with 1.
-            aCurrentRow.push_back(new ORowSetValueDecorator(sal_Int32(aColumnNumber + 1)));
+            aCurrentRow[17] = new ORowSetValueDecorator(sal_Int32(nColumnNumber + 1));
         }
         // 18. Is nullable
         if (xRow->getShort(9))
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(OUString("NO")));
+            aCurrentRow[18] = new ORowSetValueDecorator(OUString("NO"));
         }
         else
         {
-            aCurrentRow.push_back(new ORowSetValueDecorator(OUString("YES")));
+            aCurrentRow[18] = new ORowSetValueDecorator(OUString("YES"));
         }
 
         aResults.push_back(aCurrentRow);
commit 080555a321e82331ff3531c9066a7282506a1882
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date:   Wed Jul 31 11:48:34 2013 +0200

    Some vector cleanup (firebird-sdbc).
    
    This also fixes showing of column properties when editing them in base.
    (Initial size of vector isn't the same as reserving capacity.)
    
    Change-Id: Id1406ddde0c68af20d712bc99ed070e6354158a6

diff --git a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
index 52f44ca..99880ac 100644
--- a/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/firebird/FDatabaseMetaData.cxx
@@ -819,7 +819,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
 
         // Common data
         aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); // Literal quote marks
-        aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); // Literal quote marks             // Create Params
+        aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); // Literal quote marks
         aRow[7] = new ORowSetValueDecorator(sal_Bool(true)); // Nullable
         aRow[8] = new ORowSetValueDecorator(sal_Bool(true)); // Case sensitive
         aRow[10] = new ORowSetValueDecorator(sal_Bool(false)); // Is unsigned
@@ -835,7 +835,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("CHAR"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_TEXT));
         aRow[3] = new ORowSetValueDecorator(sal_Int16(32767)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator(OUString("length"));
+        aRow[6] = new ORowSetValueDecorator(OUString("length")); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(true)); // Can be money value
@@ -848,7 +848,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("VARCHAR"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_VARYING));
         aRow[3] = new ORowSetValueDecorator(sal_Int16(32767)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator(OUString("length"));
+        aRow[6] = new ORowSetValueDecorator(OUString("length")); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(true)); // Can be money value
@@ -859,7 +859,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
 
         // Integer Types common
         {
-            aRow[6] = new ORowSetValueDecorator();
+            aRow[6] = new ORowSetValueDecorator(); // Create Params
             aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
             aRow[11] = new ORowSetValueDecorator(sal_Bool(true)); // Can be money value
@@ -885,7 +885,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
 
         // Decimal Types common
         {
-            aRow[6] = new ORowSetValueDecorator();
+            aRow[6] = new ORowSetValueDecorator(); // Create Params
             aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
             aRow[11] = new ORowSetValueDecorator(sal_Bool(true)); // Can be money value
@@ -919,7 +919,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("timestamp"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_TIMESTAMP));
         aRow[3] = new ORowSetValueDecorator(sal_Int32(8)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator();
+        aRow[6] = new ORowSetValueDecorator(); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(false)); // Can be money value
@@ -933,7 +933,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("TIME"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_TYPE_TIME));
         aRow[3] = new ORowSetValueDecorator(sal_Int32(8)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator();
+        aRow[6] = new ORowSetValueDecorator(); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(false)); // Can be money value
@@ -947,7 +947,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("DATE"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_TYPE_DATE));
         aRow[3] = new ORowSetValueDecorator(sal_Int32(8)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator();
+        aRow[6] = new ORowSetValueDecorator(); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::FULL)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(false)); // Can be money value
@@ -961,7 +961,7 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo()
         aRow[1] = new ORowSetValueDecorator(OUString("BLOB"));
         aRow[2] = new ORowSetValueDecorator(getColumnTypeFromFBType(SQL_BLOB));
         aRow[3] = new ORowSetValueDecorator(sal_Int32(0)); // Prevision = max length
-        aRow[6] = new ORowSetValueDecorator();
+        aRow[6] = new ORowSetValueDecorator(); // Create Params
         aRow[9] = new ORowSetValueDecorator(
                 sal_Int16(ColumnSearch::NONE)); // Searchable
         aRow[11] = new ORowSetValueDecorator(sal_Bool(false)); // Can be money value
@@ -1040,8 +1040,11 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumnPrivileges(
 
     while( rs->next() )
     {
-        ODatabaseMetaDataResultSet::ORow aCurrentRow(8);
+        ODatabaseMetaDataResultSet::ORow aCurrentRow;
+        aCurrentRow.reserve(9);
 
+        // 0. Empty
+        aCurrentRow.push_back(new ORowSetValueDecorator());
         // 1. TABLE_CAT
         aCurrentRow.push_back(new ORowSetValueDecorator());
         // 2. TABLE_SCHEM
@@ -1144,9 +1147,6 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
 
     OUString query = queryBuf.makeStringAndClear();
 
-    SAL_INFO("connectivity.firebird", "Retrieving columns with " <<
-                OUStringToOString(query,RTL_TEXTENCODING_UTF8).getStr());
-
     uno::Reference< XStatement > statement = m_pConnection->createStatement();
     uno::Reference< XResultSet > rs = statement->executeQuery(query.getStr());
     uno::Reference< XRow > xRow( rs, UNO_QUERY_THROW );
@@ -1155,8 +1155,11 @@ uno::Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
 
     while( rs->next() )
     {
-        ODatabaseMetaDataResultSet::ORow aCurrentRow(18);
+        ODatabaseMetaDataResultSet::ORow aCurrentRow;
+        aCurrentRow.reserve(19);
 
+        // 0. EMPTY
+        aCurrentRow.push_back(new ORowSetValueDecorator());
         // 1. TABLE_CAT (catalog) may be null
         aCurrentRow.push_back(new ORowSetValueDecorator());
         // 2. TABLE_SCHEM (schema) may be null


More information about the Libreoffice-commits mailing list