Hi Vincent,

You do what is easiest for you, personally iI would like if the  
current driver using oracle OCI would be fixed but it is not up to me,  
as I am not going to write it, but it feels kosher for libdbi to use  
the database own library.

There is a list of things I wanted to do in the driver directory  
written in a file named TODO, those together with your list gives a  
pretty accurate list of what the driver needs if you choose to fix the  
current one. But as I said that is up to you.


Thanks for your work.

Christian


On May 3, 2009, at 8:56 PM, vincent rogier wrote:

> Hi Christian,
>
> Few hints about  the actual Oracle driver :
>
> - it cannot compile with a C90 compiler (one line of code to fix to  
> make it compile).
> - LONG type is handled as an integer instead of a character based type
> - only few types are handled and all types mapped as strings
> - numeric types are not handled properly (because of strong libdbi  
> integer typing)
> - no support for Oracle 8i
> - output buffers are unnecessary defined at every fetch call....
>
> The actual driver would need just few fixed and changes to be fully  
> and properly usable. That's an option.
>
> I contacted Markus a while ago to propose him to make a oracle  
> driver based of ocilib. Because it was a easy and quick job to  
> implement a driver with OCILIB as it's a full featured and mature  
> library. And using it would allow to have light libdbi glue and let  
> OCILIB work with all Oracle internal details and deal with Oracle  
> versions and new features. By example, new floatting types where  
> addind on 10g and using ocilib, the libdbi glue wouldn't need to be  
> modified. On thing as well, is the runtime Oracle version handling  
> by OCILIB that ajusts its capabilities depending on the Oracle  
> version...etc, ...
>
> Anyway, if Markus prefers, i could see and try to fix and update the  
> actual driver.
>
> I'm not trying to push ocilib into libdbi, i don't need it..
> i just wanted to help :)
>
> Vincent.
>
>
> 2009/5/3 Christian Stamgren <c...@stamgren.com>
> Hi All,
>
> Being the guy who wrote the Oracle driver long time ago (as well as  
> the Firebird and mSQL drivers).
>
> Yes, the driver is not completed. There was work left todo when I  
> left the maintainership over to someone else. Unfortunately that  
> someone else didn't finish it either. Most probably he broke more  
> then he fixed as the driver did compile and worked fine in the few  
> projects I used it against (Oracle 9i) when I still took care of it.
>
> I think it should be fairly easy to make it work again, although I  
> am not the one that is going to do it. Building a new driver based  
> on a third party library might be a way forward. But that would be a  
> layer on a layer solution. If I where the one coding I would focus  
> on fixing the current Oracle driver that uses OCI directly, not to  
> build a new module from scratch.
> But as I am not the one coding I would just be happy to get a  
> working driver for Oracle based on anything. So if you are writhing  
> this driver and planning to maintain it, go for it, exchange the  
> oracle driver with your driver.
>
> All the best,
>
> Christian
>
>
> On May 2, 2009, at 9:45 PM, vincent rogier wrote:
>
> Hi markus,
>
> I'm coming back about an ocilib based Oracle driver for libdbi.
>
> About FreeBSD, There's no official support or package from Oracle  
> Corp.
> A port has been done and seems to work. The last few weeks, i was in  
> contact with an italian that tried to port OCILIB to FreeBSD.
> OCILIB compiles well on FreeBDS but there is a problem with the  
> version of the lib C used for the Oracle Client port.
> I'm still waiting for news...
>
> So, the last package i sent you was working well except the numeric  
> types problems...
> It's not possible to know what size a numeric value really is  
> (1/2/4/8 bytes integers or even numeric...)
> When you create an INT column or a SHORT column, the storage is the  
> same : oracle NUMBER. Even SQL*PLUS would cannot make the  
> difference. Only the server knows the difference for range checking..
>
> Oracle is different from other database because the client program  
> that tells Oracle how it wants to retreive/insert the value.
>
> So, i'm still suck in the ocilib based libdbo driver to set the  
> integer type bit... For example, a column created as "INT" (4 bytes  
> integer range) or "NUMBER" (38 digits for scale and precision that  
> can holds integer, numeric, real, etc..) will be reported by Oracle  
> client library (OCI) as "NUMBER"... There's no way to make nay  
> difference...
>
> So my question : how to deal with that into an libdbi driver ?
>
> PS : about the actual oracle libdbi driver : the driver can't even  
> compile (syntax problems) and is wrong (LONG types, etc..) and  
> buggy. I'm sure no one has tested it...
>
> Regards,
>
> Vincent.
>
> 2008/11/13 Markus Hoenicka <markus.hoeni...@mhoenicka.de>
> vincent rogier writes:
>  > >I believe it would be more appropriate to call the driver "ocilib"
>  >
>  > Sure :). I'll change that
>  >
>
> Don't rush it. I hoped to get some feedback about the status and the
> capabilities of the existing oracle driver (which I can't test
> myself). If the ocilib driver surpasses the oracle driver and is
> better maintained, then the existing driver is obsolete and should be
> replaced by the ocilib driver. In that case, "oracle" wouldn't be a
> misnomer. However, if for some reason both drivers have to coexist,
> I'd rather avoid the name clash.
>
>  > Btw, i've got one question about libdbi integer types...
>  >
>  > Oracle does not make any difference between 1, 2, 4 or 8 bytes  
> integer (from
>  > an OCI point of vue).
>  > So, as far i've seen about libdbi implementation of datatype (use  
> of unions
>  > and checks on the integer type flag), there 's no easy and pretty  
> way to
>  > deal with it.... does all other libbdi drivers have no problems  
> like that ?
>  >
>
> SQlite is essentially typeless. I.e. it won't even distinguish between
> text and integer. SQLite3 has something called "column affinities"
> which helps to distinguish between text and other data types. However,
> there is no support for different integer types either.
>
> The sqlite/sqlite3 drivers use whatever type the column was declared
> with. Although it doesn't make a difference to SQLite, you *can*
> declare a column as TINYINT, SMALLINT, INTEGER, or BIGINT, and the
> drivers rely on you (as a programmer) doing so. OTOH, SQLite wouldn't
> barf if you store a long long value in a column declared as
> TINYINT. You wouldn't even lose data if you retrieve the value with
> sqlite. libdbi would reduce the data to a 1 byte integer upon
> retrieval though.
>
>
> How does Oracle deal with this? Is there just one integer type? What
> size is it? Are there any compatibility types to deal with imported
> data, like MySQL and other engines do?
>
> regards,
> Markus
>
> --
> Markus Hoenicka
> markus.hoeni...@cats.de
> (Spam-protected email: replace the quadrupeds with "mhoenicka")
> http://www.mhoenicka.de
>
>
>
> -- 
> Vincent Rogier
> ------------------------------------------------------------------------------
> Register Now & Save for Velocity, the Web Performance & Operations
> Conference from O'Reilly Media. Velocity features a full day of
> expert-led, hands-on workshops and two days of sessions from industry
> leaders in dedicated Performance & Operations tracks. Use code  
> vel09scf
> and Save an extra 15% before 5/3. 
> http://p.sf.net/sfu/velocityconf_______________________________________________
> Libdbi-drivers-devel mailing list
> Libdbi-drivers-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libdbi-drivers-devel
>
>
>
>
> -- 
> Vincent Rogier
> ------------------------------------------------------------------------------
> Register Now & Save for Velocity, the Web Performance & Operations
> Conference from O'Reilly Media. Velocity features a full day of
> expert-led, hands-on workshops and two days of sessions from industry
> leaders in dedicated Performance & Operations tracks. Use code  
> vel09scf
> and Save an extra 15% before 5/3. 
> http://p.sf.net/sfu/velocityconf_______________________________________________
> Libdbi-drivers-devel mailing list
> Libdbi-drivers-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libdbi-drivers-devel


------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Libdbi-drivers-devel mailing list
Libdbi-drivers-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libdbi-drivers-devel

Reply via email to