# HG changeset patch # User Olaf Wintermann # Date 1643907807 -3600 # Node ID eab579b8c80dbe035c65e238bb8377904bc7bda5 # Parent 25e5b771677dea57c9c532f5f614742814e695b9 add missing postgresql vfs io functions diff -r 25e5b771677d -r eab579b8c80d src/server/plugins/postgresql/vfs.c --- a/src/server/plugins/postgresql/vfs.c Thu Feb 03 17:26:08 2022 +0100 +++ b/src/server/plugins/postgresql/vfs.c Thu Feb 03 18:03:27 2022 +0100 @@ -396,26 +396,32 @@ ssize_t pg_vfs_io_write(SYS_FILE fd, const void *buf, size_t nbyte) { PgVFS *pgvfs = fd->ctx->vfs->instance; - - return 0; + PgFile *pg = fd->data; + return lo_write(pgvfs->connection, pg->fd, buf, nbyte); } ssize_t pg_vfs_io_pread(SYS_FILE fd, void *buf, size_t nbyte, off_t offset) { PgVFS *pgvfs = fd->ctx->vfs->instance; - - return 0; + PgFile *pg = fd->data; + if(lo_lseek64(pgvfs->connection, pg->fd, offset, SEEK_SET) == -1) { + return -1; + } + return lo_read(pgvfs->connection, pg->fd, buf, nbyte); } ssize_t pg_vfs_io_pwrite(SYS_FILE fd, const void *buf, size_t nbyte, off_t offset) { PgVFS *pgvfs = fd->ctx->vfs->instance; - - return 0; + PgFile *pg = fd->data; + if(lo_lseek64(pgvfs->connection, pg->fd, offset, SEEK_SET) == -1) { + return -1; + } + return lo_write(pgvfs->connection, pg->fd, buf, nbyte); } off_t pg_vfs_io_seek(SYS_FILE fd, off_t offset, int whence) { PgVFS *pgvfs = fd->ctx->vfs->instance; - - return 0; + PgFile *pg = fd->data; + return lo_lseek64(pgvfs->connection, pg->fd, offset, whence); } void pg_vfs_io_close(SYS_FILE fd) {