Bug #60052 [Com]: Integer returned as a 64bit integer on X64_86

From: Date: Wed, 15 Jan 2014 06:59:49 +0000
Subject: Bug #60052 [Com]: Integer returned as a 64bit integer on X64_86
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-183803@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60052&edit=1 ID: 60052 Comment by: slavb18 at gmail dot com Reported by: m dot vanduren at jonker dot nl Summary: Integer returned as a 64bit integer on X64_86 Status: Assigned Type: Bug Package: PDO Firebird Operating System: All (linux tested) PHP Version: 5.3.8 Assigned To: mariuz Block user comment: N Private report: N New Comment: bug and patch are three years old, looks like this is not need to anybody Previous Comments: ------------------------------------------------------------------------ [2014-01-15 06:58:47] slavb18 at gmail dot com may be it's time to move to Java with native POJO ? ) ------------------------------------------------------------------------ [2014-01-03 02:40:48] papatiger+phpbug at gmail dot com Why are many serious bugs of pdo.firebird not revised? I cannot use ORM such as DBAL in Firebird. ------------------------------------------------------------------------ [2013-10-07 08:51:15] mariuz@php.net I will recheck and apply it (the patch) ------------------------------------------------------------------------ [2013-09-25 18:22:14] slavb18 at gmail dot com why this patch only partially accepted? still not working on x86-64 $q="select * FROM RDB\$DATABASE"; $q="execute block returns ( rI integer) as begin rI= -1; suspend; end"; $res=$pdo->dbExecute($q); print_r($res->fetch()); outputs Array ( [RI] => 4294967295 [0] => 4294967295 ) istead of Array ( [RI] => -1 [0] => -1 ) ------------------------------------------------------------------------ [2012-04-02 14:04:37] mariuz@php.net LL_MASK it should be already be "l" see the php_pdo_firebird_int.h:# define LL_MASK "l" So in the in the slprintf slprintf(*ptr, CHAR_BUF_LEN, "%" LL_MASK "d", *(ISC_INT64*)var->sqldata); should be replaced with slprintf(*ptr, CHAR_BUF_LEN, "%" "l" "d", *(ISC_INT64*)var->sqldata); I will check and create a test for 5.3.x ------------------------------------------------------------------------ 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 https://bugs.php.net/bug.php?id=60052 -- Edit this bug report at https://bugs.php.net/bug.php?id=60052&edit=1

« previous php.bugs (#183803) next »