ID:               22306
 User updated by:  php at codewhore dot org
 Reported By:      php at codewhore dot org
 Status:           Open
 Bug Type:         PostgreSQL related
 Operating System: Linux 2.4
 PHP Version:      4.3.0
 New Comment:

>From ext/pgsql/pgsql.c:

    if (lo_lseek((PGconn *)pgsql->conn, pgsql->lofd, offset, whence ))
{
        RETURN_TRUE;
    } else {
        RETURN_FALSE;
    }

If lo_lseek() is anything like the POSIX lseek(), shouldn't the above
return false when the return value is -1, not zero?


Previous Comments:
------------------------------------------------------------------------

[2003-02-19 16:07:22] php at codewhore dot org

Seeking back to the beginning of a file on a PostgreSQL large object
handle returns false, even though the seek succeeds.

The following script:

<?php
  $database = pg_connect ('dbname=pile_dev user=postgres');
  pg_exec ($database, 'begin transaction');
  $oid = pg_lo_create($database);
  $handle = pg_lo_open($database, $oid,  "rw");
  echo 'write: ';
  var_dump(pg_lo_write($handle, 'foo'));
  echo 'tell: ';
  var_dump(pg_lo_tell($handle));
  echo 'seek to begin: ';
  var_dump(pg_lo_seek($handle, 0, PGSQL_SEEK_SET));
  echo 'tell: ';
  var_dump(pg_lo_tell($handle));
  pg_exec($database,  'commit');
  pg_close($database);
?>

outputs:

  write: int(3)
  tell: int(3)
  seek to begin: bool(false)
  tell: int(0)


I expected:

  write: int(3)
  tell: int(3)
  seek to begin: bool(true)
  tell: int(0)


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


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

Reply via email to