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

From: Date: Mon, 16 Dec 2019 10:26:20 +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-224333@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:

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)


Previous Comments:
------------------------------------------------------------------------
[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

------------------------------------------------------------------------
[2019-12-13 18:04:03] lzsiga at freemail dot c3 dot hu

Ok, I've started to work on the booleans, see here: http://lzsiga.users.sourceforge.net/bigendian_64_oci8.txt

------------------------------------------------------------------------
[2019-11-27 10:41:11] lzsiga at freemail dot c3 dot hu

@davereddy
Hi, sorry for the delay; I tried php bind_boolean_1.phpt with 7.4.0; the very first
test gave

    Test 1
    bool(false)
    bool(false)

while the file says it should be

    Test 1
    bool(true)
    bool(false)

I hope I'll be able look into this problem.

------------------------------------------------------------------------
[2019-11-27 10:12:25] lzsiga at freemail dot c3 dot hu

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

------------------------------------------------------------------------
[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

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


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