Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On Fri, Jul 19, 2013 at 08:35:07AM +0200, Andrzej J. R. Hunt wrote:
On Fri, 2013-07-19 at 04:40 +0200, Lionel Elie Mamane wrote:

3) You seem to have duplicated
   connectivity/source/{inc,commontools}/propertyids.[hc]xx
   in connectivity/source/drivers/firebird/propertyids.[hc]xx?

   With the _same_ include guard?

These were already there when I started working on the Firebird
driver -- I'm trying to deduplicate anything that already exists
elsewhere so I'll look at this too. (I think this probably
originally came from the skeleton driver in
odk/examples/DevelopersGuide/Database/DriverSkeleton/ ).

Our skeleton has "bad" example? Urgh. Please keep a list of those
issues, we'll fix them in the skeleton... later.

4) OResultSet::m_sqlData: the driver caches the *whole* resultset? Oh
   my... And not only that, it eagerly fetches the *whole* resultset?

   I'm not actually sure any LibreOffice code really requires
   scrollable cursors; it seems to me that when it detects that the
   driver / database does not support that, it makes a *new* query
   with "WHERE primary_key=VALUE" each time it wants to "go back"
   (this happens in dbaccess/source/core/api/KeySet.cxx and
   RowSetCache.cxx).

   If FireBird can't support previous() et al, it could just throw an
   SQLError when they are called?

Firebird 3 does apparently support scrollable cursors but 2.5 doesn't --
I never realized that drivers were allowed to not support previous() --
I'll remove the local storage and see how things work out.

I'm not completely confident, but it could work.

Essentially, if we do that, the driver will only support
"ResultSetType" value "FORWARD_ONLY", and should throw an SQLERROR if
anything else is asked for (e.g. SCROLL_(IN)SENSITIVE).

Grepping in dbaccess, this seems perfectly supported by LibreOffice in
theory; we'll see if we encounter bugs there :)

Be sure to set the "RespectDriverResultSetType" advanced property for
this driver.

OTOH, in the light of the day, I have a suspicion that some ODBC do
the caching that shocked me so much in the night... Oh well, keep it
in a corner, ready to be pressed into service again if we decide in
the future.

-- 
Lionel

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.