You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Bojan Smojver <bo...@rexursive.com> on 2007/01/16 04:04:11 UTC

OCI: which version to support?

Some of the nice new calls in 10g (e.g. OCILobRead2) are not part of the
older Oracle APIs. What's the policy on Oracle version support for APU
DBD driver?

PS. I personally don't care as I don't use Oracle at all. I just like
the semantics of OCILobRead2 better than OCILobRead (which comes with
weird and scary character/byte counting mix), when it comes to creating
a bucket brigade.

-- 
Bojan


Re: OCI: which version to support?

Posted by Bojan Smojver <bo...@rexursive.com>.
On Tue, 2007-01-16 at 14:53 -0800, Chris Darroch wrote:

>    Well, I'm not sure there's a policy, as such.  At a minimum, I'd
> think 10g and 9i should be supported.  8i (8.1, IIRC) would be nice too.
> I seem to recall that 8.0 had somewhat incomplete features, since a
> lot changed from 7; OCI got a big makeover.  I'd be inclined to suggest
> not trying to support anything earlier than 8i, myself.

OK. I'll keep that in mind.

If you have any real life experience with OCILobRead() and how the
character v. bytes counting *actually* works, it would be good to know.
The manual is clear as mud on the issue and when building a bucket
brigade, one needs to do repeated reads from a position where the
previous read left off. The new function OCILobRead2() has much better
semantics for this, but unfortunately only comes with 10g.

The other solution is, of course, to just make one big bucket if
OCILobRead2() isn't there. Brute force and all...

>    Another to-do item is adding version detection to the autoconf
> stuff.  As with so many things in Oracle, this is, I suspect,
> non-trivial.  DBD::Oracle's Makefile.PL function get_client_version()
> is pretty terrifying.  The stuff in APR-util's build/dbd.m4 is tame
> by comparison.

Yeah, I'm not sure I want to get into this one :-).

BTW, I added detection of libnnz10 recently to dbd.m4, which should take
care of linking of some flavours of 10g, I guess.

<off-topic>
Honestly, I find the whole OCI terrifying. IMHO, all open source
databases we currently support have more elegant APIs. Not to mention
better documented. <sigh/>
</off-topic>

-- 
Bojan


Re: OCI: which version to support?

Posted by Chris Darroch <ch...@pearsoncmg.com>.
Bojan Smojver wrote:

> Some of the nice new calls in 10g (e.g. OCILobRead2) are not part of the
> older Oracle APIs. What's the policy on Oracle version support for APU
> DBD driver?
> 
> PS. I personally don't care as I don't use Oracle at all. I just like
> the semantics of OCILobRead2 better than OCILobRead (which comes with
> weird and scary character/byte counting mix), when it comes to creating
> a bucket brigade.

   Well, I'm not sure there's a policy, as such.  At a minimum, I'd
think 10g and 9i should be supported.  8i (8.1, IIRC) would be nice too.
I seem to recall that 8.0 had somewhat incomplete features, since a
lot changed from 7; OCI got a big makeover.  I'd be inclined to suggest
not trying to support anything earlier than 8i, myself.

   Another to-do item is adding version detection to the autoconf
stuff.  As with so many things in Oracle, this is, I suspect,
non-trivial.  DBD::Oracle's Makefile.PL function get_client_version()
is pretty terrifying.  The stuff in APR-util's build/dbd.m4 is tame
by comparison.

Chris.

-- 
GPG Key ID: 366A375B
GPG Key Fingerprint: 485E 5041 17E1 E2BB C263  E4DE C8E3 FA36 366A 375B