On Thu, Sep 20, 2001 at 03:00:24PM -0600, Robert Wyrick wrote:
> I just joined the group and am assuming this is the correct place to post a
> patch.  Please excuse my ignorance if I am wrong...

It's a good place - and thanks.

> This patch makes DBD::Oracle handle TIMESTAMP WITH TIME ZONE columns.
> I will note now that the solution below is NOT ideal (IMHO).  I personally
> think that DBI needs some new DATE/TIME types that support timezones as well.

Yes.

> Also, is there a reason that the Oracle types TIME, TIME WITH TIME ZONE,
> and TIMESTAMP aren't supported?

Lack of tuits. I'll be working with 9i soon so maybe then, unless
I get more patches first... :)

Tim.

> Thanks,
> Rob
> 
> P.S. Is there a FAQ for this list?
> 
> -------------------------------------------------------
> diff -c DBD-Oracle-1.12/Oracle.pm DBD-Oracle-1.12-rew/Oracle.pm
> *** DBD-Oracle-1.12/Oracle.pm   Fri Aug 31 10:27:17 2001
> --- DBD-Oracle-1.12-rew/Oracle.pm       Wed Sep 19 16:58:05 2001
> ***************
> *** 489,494 ****
> --- 489,497 ----
>              [ 'DATE', 9, 19, '\'', '\'', undef, 1, '0', 3,
>                undef, '0', '0', undef, '0', '0', 11, undef, undef
>              ],
> +           [ 'TIMESTAMP WITH TIME ZONE', 11, 34, '\'', '\'', undef, 1, '0', 3,
> +             undef, '0', '0', undef, '0', '9', 11, undef, undef
> +           ],
>              [ 'VARCHAR2', 12, $varchar2_maxlen, '\'', '\'', 'max length', 1, 1, 3,
>                undef, '0', '0', undef, undef, undef, 12, undef, undef
>              ]
> diff -c DBD-Oracle-1.12/dbdimp.c DBD-Oracle-1.12-rew/dbdimp.c
> *** DBD-Oracle-1.12/dbdimp.c    Wed Aug 29 13:39:15 2001
> --- DBD-Oracle-1.12-rew/dbdimp.c        Wed Sep 19 17:00:49 2001
> ***************
> *** 1922,1927 ****
> --- 1922,1928 ----
>        case SQLT_CHR:  sql_fbh.dbtype = SQL_VARCHAR;       break;
>        case SQLT_LNG:  sql_fbh.dbtype = SQL_LONGVARCHAR;   break; /* long */
>        case SQLT_DAT:  sql_fbh.dbtype = SQL_DATE;                break;
> +     case SQLT_TIMESTAMP_TZ:  sql_fbh.dbtype = SQL_TIMESTAMP;          break;
>        case SQLT_BIN:  sql_fbh.dbtype = SQL_BINARY;        break; /* raw */
>        case SQLT_LBI:  sql_fbh.dbtype = SQL_LONGVARBINARY; break; /* long raw */
>        case SQLT_AFC:  sql_fbh.dbtype = SQL_CHAR;          break; /* Ansi fixed 
> char */
> diff -c DBD-Oracle-1.12/oci8.c DBD-Oracle-1.12-rew/oci8.c
> *** DBD-Oracle-1.12/oci8.c      Fri Aug 31 09:55:05 2001
> --- DBD-Oracle-1.12-rew/oci8.c  Wed Sep 19 17:43:02 2001
> ***************
> *** 897,902 ****
> --- 897,906 ----
>                  avg_width = 4;     /* > approx +/- 1_000_000 ?  */
>                  break;
> 
> +    case 188:            /* TIMESTAMP WITH TIME ZONE */
> +               /* actually dependent on NLS default date format*/
> +               fbh->disize = 75;       /* a generous default   */
> +       break;
>          case  12:                               /* DATE         */
>                  /* actually dependent on NLS default date format*/
>                  fbh->disize = 75;       /* a generous default   */
> 

Reply via email to