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

From: Date: Thu, 26 Aug 2021 13:40:58 +0000
Subject: Bug #73002 [Com]: bigendian64/php7/oci8: output bind-variables doesn't work
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-236083@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
 Comment by:         lzsiga at freemail dot c3 dot 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:

Also there type 'oci_phpsized_int': its size on the Oracle version: 64-bit for Oracle 11+,
32-bit for older version.

Most likely it was meant to solve some problem, but of course there is no documentation about it.

When it is defined as 32-bit, it causes the same problem on big-endian platform.


Previous Comments:
------------------------------------------------------------------------
[2021-08-25 14:44:23] cmb@php.net

Related To: Bug #81382

------------------------------------------------------------------------
[2020-08-17 10:52:07] lzsiga at freemail dot c3 dot hu

The following patch has been added/updated:

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

------------------------------------------------------------------------
[2019-12-16 10:52:44] lzsiga at freemail dot c3 dot hu

The following patch has been added/updated:

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

------------------------------------------------------------------------
[2019-12-16 10:26:20] lzsiga at freemail dot c3 dot hu

Please test the latest patch, it might solve the boolean-problem. The clue of the patch is this
macro:

    #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
      #define LongPtr2Int32Ptr(longptr) ((int32_t *)(longptr))
    #else
      #define LongPtr2Int32Ptr(longptr) \
        ((int32_t *)((char *)(longptr)+(sizeof(long)-sizeof(int32_t))))
    #endif

It should work on both big-endian/32-bit and big-endian/64-bit; nonetheless it will fail
'long' isn't equal to 'zend_long' (e.g. Windows/64-bit)

------------------------------------------------------------------------
[2019-12-16 10:17:34] lzsiga at freemail dot c3 dot hu

The following patch has been added/updated:

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

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


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 (#236083) next »