XRowLocate::findColumn API definition ambiguities

Lionel Elie Mamane lionel at mamane.lu
Wed Sep 11 02:20:57 PDT 2013


On Tue, Sep 10, 2013 at 09:56:50PM +0100, Andrzej Hunt wrote:

> The definition of XRowLocate::findColumn, and its implementations, all
> seem to be slightly confused.

> XRowLocate doesn't specify what should happen what happens if
> findColumn is called for an invalid column name.

You mean XColumnLocate, not XRowLocate.

> In the case of JDBC drivers: the JDBC specification states that an
> SQLException should be thrown in this case. (...)

> Is it OK if I rewrite the specification of findColumn to mirror that
> of the JDBC specification,

Yes. SDB(C)(X) is (from my understanding) a C++-ized copy of (an older
version of) JDBC anyway, so just align.

> perhaps with a note that some drivers may still return invalid
> values instead?

Something like:

 Version of the specification before LibreOffice 4.2 left unspecified
 what happened when passed an invalid column name. As a result, some
 drivers written against older specification may return a special
 invalid numeric value, such as a negative value, zero or a number
 greater than the number of columns.

> (Of course I'd also upgrade all the drivers to reflect the new
> specification

Great, thanks. If you could also review what callers of findColumn
within LibreOffice do, that would be even greater.

> -- so this note would only apply to any external drivers -- are
> there any?)

I don't know of any truly external; in some way, the MySQL one counts
as "external" since people take binaries and try to use them with
multiple OpenOffice.org, Apache OpenOffice and LibreOffice versions.

-- 
Lionel


More information about the LibreOffice mailing list