| timbo@cvs.perl.org 2006-01-09, 11:25 am |
| Author: timbo
Date: Mon Jan 9 07:21:01 2006
New Revision: 2372
Modified:
dbd-oracle/trunk/Changes
dbd-oracle/trunk/oci8.c
Log:
Fixed truncation error on fetch into UTF8 charset thanks to Honza Pazdziora.
Modified: dbd-oracle/trunk/Changes
====================
====================
====================
==================
--- dbd-oracle/trunk/Changes (original)
+++ dbd-oracle/trunk/Changes Mon Jan 9 07:21:01 2006
@@ -2,6 +2,7 @@
Fixed csform setting for Oracle 8.0.
Fixed csform setting for some UTF8 cases.
+ Fixed truncation error on fetch into UTF8 charset thanks to Honza Pazdziora.
Fixed INTERVAL DAY TO SECOND thanks to Honza Pazdziora.
Fixed undef warnings when connecting with undef $user.
Fixed LOB streaming example thanks to Pablo Zorzoli.
Modified: dbd-oracle/trunk/oci8.c
====================
====================
====================
==================
--- dbd-oracle/trunk/oci8.c (original)
+++ dbd-oracle/trunk/oci8.c Mon Jan 9 07:21:01 2006
@@ -1196,8 +1196,8 @@ dbd_describe(SV *h, imp_sth_t *imp_sth)
/* OCI_ATTR_CHAR_SIZE: like OCI_ATTR_DATA_SIZE but measured in chars */
OCIAttrGet_parmdp(im
p_sth, fbh->parmdp, &fbh->len_char_size, 0, OCI_ATTR_CHAR_SIZE, status);
#endif
-#ifdef OCI_ATTR_CHARSET_ID
fbh->csid = 0; fbh->csform = 0; /* just to be sure */
+#ifdef OCI_ATTR_CHARSET_ID
OCIAttrGet_parmdp(im
p_sth, fbh->parmdp, &fbh->csid, 0, OCI_ATTR_CHARSET_ID,
status);
OCIAttrGet_parmdp(im
p_sth, fbh->parmdp, &fbh->csform, 0, OCI_ATTR_CHARSET_FOR
M, status);
#endif
@@ -1223,7 +1223,7 @@ dbd_describe(SV *h, imp_sth_t *imp_sth)
/* FALLTHRU */
case 96: /* CHAR */
fbh->disize = fbh->dbsize;
- if (CS_IS_UTF8(fbh->csid))
+ if (CSFORM_IMPLIES_UTF8
(fbh->csform))
fbh->disize = fbh->dbsize * 4;
fbh->prec = fbh->disize;
break;
@@ -1249,7 +1249,7 @@ dbd_describe(SV *h, imp_sth_t *imp_sth)
break;
case 8: /* LONG */
- if (CS_IS_UTF8(fbh->csid))
+ if (CSFORM_IMPLIES_UTF8
(fbh->csform))
fbh->disize = long_readlen * 4;
else
fbh->disize = long_readlen;
|