From ee2f51cd43ef4e5fbda33918daee26e06ab38580 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Mon, 9 Mar 2020 18:59:29 +0100 Subject: tdf#130334: Firebird deal with array fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://bugs.documentfoundation.org/show_bug.cgi?id=130334#c11 See https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-bnrytypes.html#fblangref25-datatypes-array Change-Id: I27c53b9c771fcdb3b89e66af325a8234c7de08bb Change-Id: I7b9d27f78e351eda611d13f5a07ef3c80ff00e3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90239 Tested-by: Jenkins Reviewed-by: Julien Nabet (cherry picked from commit 2ede753a8b7adecbf6ca78745e43e23c7498e289) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90042 Reviewed-by: Xisco FaulĂ­ --- connectivity/source/drivers/firebird/Util.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/connectivity/source/drivers/firebird/Util.cxx b/connectivity/source/drivers/firebird/Util.cxx index c4d6eeece4d1..572767851770 100644 --- a/connectivity/source/drivers/firebird/Util.cxx +++ b/connectivity/source/drivers/firebird/Util.cxx @@ -304,12 +304,12 @@ void firebird::mallocSQLVAR(XSQLDA* pSqlda) case SQL_TIMESTAMP: pVar->sqldata = static_cast(malloc(sizeof(ISC_TIMESTAMP))); break; + // an ARRAY is in fact a BLOB of a specialized type + // See https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-bnrytypes.html#fblangref25-datatypes-array + case SQL_ARRAY: case SQL_BLOB: pVar->sqldata = static_cast(malloc(sizeof(ISC_QUAD))); break; - case SQL_ARRAY: - assert(false); // TODO: implement - break; case SQL_TYPE_TIME: pVar->sqldata = static_cast(malloc(sizeof(ISC_TIME))); break; @@ -353,6 +353,9 @@ void firebird::freeSQLVAR(XSQLDA* pSqlda) case SQL_DOUBLE: case SQL_D_FLOAT: case SQL_TIMESTAMP: + // an ARRAY is in fact a BLOB of a specialized type + // See https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-datatypes-bnrytypes.html#fblangref25-datatypes-array + case SQL_ARRAY: case SQL_BLOB: case SQL_INT64: case SQL_TYPE_TIME: @@ -364,9 +367,6 @@ void firebird::freeSQLVAR(XSQLDA* pSqlda) pVar->sqldata = nullptr; } break; - case SQL_ARRAY: - assert(false); // TODO: implement - break; case SQL_NULL: assert(false); // TODO: implement break; -- cgit