#39700 [Opn->Csd]: NUMERIC error when result precision are 7,8 or 12-14
| From: | lwe@php.net | Date: | Thu, 08 Nov 2007 19:46:02 +0000 |
| Subject: | #39700 [Opn->Csd]: NUMERIC error when result precision are 7,8 or 12-14 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-119365@lists.php.net to get a copy of this message | ||
ID: 39700
Updated by: lwe@php.net
Reported By: ilpochta at gmail dot com
-Status: Open
+Status: Closed
Bug Type: InterBase related
Operating System: All
PHP Version: 5.2.0
New Comment:
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Fixed in HEAD and PHP_5_3
Previous Comments:
------------------------------------------------------------------------
[2007-09-11 10:44:28] nb,b at fdhf dot hgk
http://www.meta-fx.com/
------------------------------------------------------------------------
[2007-01-22 10:34:18] tony2001@php.net
>Are the php_interbase maintained?
No, feel free to take it over.
------------------------------------------------------------------------
[2007-01-22 10:29:36] ilpochta at gmail dot com
Are the php_interbase maintained?
Please, fix this bug before PHP-5.2.1. Just recount the nulls in
"scales" array :)
------------------------------------------------------------------------
[2006-12-01 21:51:52] ilpochta at gmail dot com
Take the solution from #39056, add two strings to them (for precisions
17 and 18) and .... it works! :)
# diff ./php-5.2.0/ext/interbase/old/ibase_query.c
./fixed/ext/interbase/ibase_query.c
1289,1291c1289,1304
< static ISC_INT64 const scales[] = { 1, 10, 100, 1000, 10000,
100000, 1000000, 100000000, 1000000000,
< 1000000000,
LL_LIT(10000000000),LL_LIT(100000000000),LL_LIT(10000000000000),LL_LIT(100000000000000),
<
LL_LIT(1000000000000000),LL_LIT(1000000000000000),LL_LIT(1000000000000000000)
};
---
> static ISC_INT64 const scales[] = { 1, 10, 100, 1000,
> 10000,
> 100000,
> 1000000,
> 10000000,
> 100000000,
> 1000000000, LL_LIT
> (10000000000),LL_LIT
> (100000000000),LL_LIT
> (1000000000000),LL_LIT
> (10000000000000),LL_LIT
> (100000000000000),LL_LIT
> (1000000000000000),LL_LIT
> (10000000000000000),LL_LIT
> (100000000000000000),LL_LIT
> (1000000000000000000) };
----------
I think, same error is present in function firebird_stmt_get_col() from
ext/pdo_firebird/firebird_statement.c .
------------------------------------------------------------------------
[2006-12-01 11:09:47] tony2001@php.net
You can try to change the lines mentioned in #39056 (see
ext/interbase/ibase_query.c) and tell us if it works.
I don't think anybody here uses Interbase these days.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/39700
--
Edit this bug report at http://bugs.php.net/?id=39700&edit=1