Bug #73002 [PATCH]: bigendian64/php7/oci8: output bind-variables doesn't work

From: Date: Wed, 27 Nov 2019 10:12:25 +0000
Subject: Bug #73002 [PATCH]: bigendian64/php7/oci8: output bind-variables doesn't work
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-223905@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73002&edit=1

 ID:                 73002
 Patch added by:     lzsiga@freemail.c3.hu
 Reported by:        lzsiga at freemail dot c3 dot hu
 Summary:            bigendian64/php7/oci8: output bind-variables doesn't
                     work
 Status:             Open
 Type:               Bug
 Package:            OCI8 related
 Operating System:   64-bit / BigEndian
 PHP Version:        7.*
 Block user comment: N
 Private report:     N

 New Comment:

The following patch has been added/updated:

Patch Name: oci8_statement.patch_7_4_0
Revision:   1574849545
URL:        https://bugs.php.net/patch-display.php?bug=73002&patch=oci8_statement.patch_7_4_0&revision=1574849545


Previous Comments:
------------------------------------------------------------------------
[2019-06-03 16:53:56] davereddy at shaw dot ca

I missed your request for an example.

Please see the unit test embedded with the distribution (it fails):

ext/oci8/tests/bind_boolean_1.phpt

------------------------------------------------------------------------
[2018-08-30 09:05:04] lzsiga at freemail dot c3 dot hu

Hi Dave

Please provide an example regarding the problem of boolean values.

------------------------------------------------------------------------
[2018-08-29 20:21:11] dave dot reddy at enbridge dot com

Although this fixes the binding of numeric values, binding of boolean variable is still broken with
this fix.

------------------------------------------------------------------------
[2018-02-13 20:17:18] dave dot reddy at enbridge dot com

This patch appears to have fixed the issue for us as well.  AIX 7.1, 64bit, PHP 7.2.1, running
fast-cgi daemons.

------------------------------------------------------------------------
[2017-12-04 09:53:59] lzsiga at freemail dot c3 dot hu

Latest patch works with PHP-7.2.0 too.
Also I created a little graph to illustrate the problem (i.e. the difference between big-endian and
little-endian, when it comes to mixing 32-bit and 64-bit)

0x1234 in eight byte

little endian
+----+----+----+----+----+----+----+----+
| 34 , 12 ; 00 , 00 | 00 , 00 ; 00 , 00 |
+----+----+----+----+----+----+----+----+
interpreted as int32: 0x00001234
<------------------>
interpreted as int64: 0x0000000000001234
<--------------------------------------->

big endian
+----+----+----+----+----+----+----+----+
| 00 , 00 ; 00 , 00 | 00 , 00 ; 12 , 34 |
+----+----+----+----+----+----+----+----+
interpreted as int32: 0x00000000
<------------------>
interpreted as int64: 0x0000000000001234
<--------------------------------------->

big endian
+----+----+----+----+----+----+----+----+
| 00 , 00 ; 12 , 34 | 00 , 00 ; 00 , 00 |
+----+----+----+----+----+----+----+----+
interpreted as int32: 0x00001234
<------------------>
interpreted as int64: 0x0000123400000000
<--------------------------------------->

------------------------------------------------------------------------


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=73002


--
Edit this bug report at https://bugs.php.net/bug.php?id=73002&edit=1


Thread (29 messages)

« previous php.bugs (#223905) next »