it's been a while as I was mentioning that the naming convention for
OCI8* functions should change into something like oracle_*. Problem is
that there is also an old ora_* set of functions.

I think this is something like rewriting the whole thingie ;)

if notbody else minds we could think of applying the patch.

m


On Fri, 5 Dec 2003 13:37:29 -0000
"Wez Furlong" <[EMAIL PROTECTED]> wrote:

> Would it make sense to expose this stuff as a stream using
> the streams API, so the user would be able to fread($lob) etc?
> 
> You could still add functions for those things that aren't
> covered already by streams (the erase() call).
> 
> One of the benefits would be avoiding adding more functions to
> the global namespace, and also side stepping any naming convention
> wars that might arise.
> 
> --Wez.
> 
> ----- Original Message ----- 
> From: "Antony Dovgal" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Friday, December 05, 2003 1:30 PM
> Subject: [PHP-DEV] [PATCH] for oci8 and some improvement proposals
> 
> 
> > Hi, all!
> >
> > I want to propose a patch, that will add functions listed below to OCI8
> extension.
> > Similar functions exist in Postgres & Informix extensions, but they are
> absent in OCI8 module.
> > The patch is being used on 4 my servers (development, test & 2 production
> servers) about a week and seems to be (almost? =)) bug-free.
> >
> > ocitelllob();          [ OCI_Lob->tell(); ]         - ftell(); analogue
> for Lobs
> > ociwritelob();         [ OCI_Lob->write(); ]        - fwrite(); analogue
> for Lobs
> > ocitruncatelob();      [ OCI_Lob->truncate(); ]     - ftruncate();
> analogue for Lobs
> > ocieraselob();         [ OCI_Lob->erase(); ]        - erases specified
> part of a Lob (for BLOBs it means zero-filling, for CLOBs - space-filling)
> > ociflushlob();         [ OCI_Lob->flush(); ]        - flushes Lob buffer
> (if buffering was enabled before)
> > ocisetbufferinglob();  [ OCI_Lob->setBuffering(); ] - turns on/off
> buffering for the current Lob
> > ocigetbufferinglob();  [ OCI_Lob->getBuffering(); ] - gets buffering'
> current state
> > ocirewindlob();        [ OCI_Lob->rewind(); ]       - rewind(); analogue
> for Lobs
> > ocireadlob();          [ OCI_Lob->read(); ]         - fread(); analogue
> for Lobs
> > ocieoflob();           [ OCI_Lob->eof(); ]          - feof(); analogue for
> Lobs
> > ociseeklob();          [ OCI_Lob->seek(); ]         - fseek(); analogue
> for Lobs
> > ocilobgetlength();     [ OCI_Lob->getLength(); ]    - filesize(); analogue
> for Lobs
> >
> > ociappendlob();        - appends data from a Lob to another Lob
> > ocicopylob();          - copies data from a Lob to another Lob
> > ociisequallob();       - compares 2 Lobs and checks if they are equal
> >
> > All OCI-Lob methods could be rewritten to receive Lob as parameter, when
> they aren't called as methods, but currently this is not done (should I do
> it?).
> >
> > As you can see, I've added this check:
> > if (oci_lobgetlen(descr->conn,descr,&len) == 0 && descr->lob_size >= 0)
> > to almost all new functions.
> > I propose to add this check to already existing functions (I mean, to
> replace calls of CALL_OCI_RETURN()),
> > 'cause at this moment they get Lob's length from Oracle each time they are
> called and it's not the best decision imho.
> >
> > And there is another one thing I want to ask you about:
> > ALL functions, which wrap database API's in PHP, are called like this:
> <db>_<action>_<to>_<do>,
> > but only OCI8 wrappers are called in another way: oci<action><to><do>
> > Maybe it's time to declare this style deprecated and to change it to
> oci_<action>_<to>_<do>?
> > (especially after that endless discussion about studlyCaps =))


-- 
Maxim Maletsky
[EMAIL PROTECTED]

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to