@@ -15,23 +15,32 @@ $oid = pg_lo_create ($db);
15
15
if (!$ oid ) echo ("pg_lo_create() error \n" );
16
16
$ handle = pg_lo_open ($ db , $ oid , "w " );
17
17
if (!$ handle ) echo ("pg_lo_open() error \n" );
18
- pg_lo_write ($ handle , "large object data \n " );
18
+ pg_lo_write ($ handle , "large object data " );
19
19
pg_lo_close ($ handle );
20
20
pg_exec ($ db , "commit " );
21
21
22
22
echo "open/read/tell/seek/close LO \n" ;
23
23
pg_exec ($ db , "begin " );
24
24
$ handle = pg_lo_open ($ db , $ oid , "w " );
25
- pg_lo_read ($ handle , 100 );
26
- pg_lo_tell ($ handle );
27
- pg_lo_seek ($ handle , 2 );
25
+ var_dump (pg_lo_read ($ handle , 5 ));
26
+ var_dump (pg_lo_tell ($ handle ));
27
+ var_dump (pg_lo_seek ($ handle , 2 , /* PGSQL_SEEK_CUR */ )); // This is the default so move cursor from 5
28
+ var_dump (pg_lo_read ($ handle , 100 )); // Read to the end because chunk is larger then remaining content
29
+ var_dump (pg_lo_tell ($ handle ));
30
+ var_dump (pg_lo_seek ($ handle , 0 , PGSQL_SEEK_SET )); /* Reset cursor to beginning */
31
+ var_dump (pg_lo_read ($ handle ));
32
+ var_dump (pg_lo_seek ($ handle , -4 , PGSQL_SEEK_END )); /* Seek from the end */
33
+ var_dump (pg_lo_read ($ handle ));
28
34
pg_lo_close ($ handle );
29
35
pg_exec ($ db , "commit " );
30
36
31
37
echo "open/read_all/close LO \n" ;
32
38
pg_exec ($ db , "begin " );
33
39
$ handle = pg_lo_open ($ db , $ oid , "w " );
34
- pg_lo_read_all ($ handle );
40
+ /* Will write to stdout */
41
+ $ bytesWritten = pg_lo_read_all ($ handle );
42
+ echo "\n" ;
43
+ var_dump ($ bytesWritten );
35
44
if (pg_last_error ()) echo "pg_lo_read_all() error \n" .pg_last_error ();
36
45
pg_lo_close ($ handle );
37
46
pg_exec ($ db , "commit " );
@@ -95,8 +104,18 @@ echo "OK";
95
104
--EXPECT--
96
105
create/write/close LO
97
106
open/read/tell/seek/close LO
107
+ string(5) "large"
108
+ int(5)
109
+ bool(true)
110
+ string(10) "bject data"
111
+ int(17)
112
+ bool(true)
113
+ string(17) "large object data"
114
+ bool(true)
115
+ string(4) "data"
98
116
open/read_all/close LO
99
117
large object data
118
+ int(17)
100
119
unlink LO
101
120
Test without connection
102
121
Test with string oid value
0 commit comments