# HG changeset patch # User Olaf Wintermann # Date 1651999616 -7200 # Node ID 52831b82b3fdf523a2501c03fc5f1431dfb17b95 # Parent 03c052d9a097496e5a1f3e4352b4a307f44ef5a2 add support for O_TRUNC in pg_vfs_open diff -r 03c052d9a097 -r 52831b82b3fd src/server/plugins/postgresql/vfs.c --- a/src/server/plugins/postgresql/vfs.c Sun May 08 10:41:27 2022 +0200 +++ b/src/server/plugins/postgresql/vfs.c Sun May 08 10:46:56 2022 +0200 @@ -584,6 +584,21 @@ lo_mode = INV_WRITE; } fd = lo_open(pg->connection, oid, lo_mode); + int err = 0; + if(fd < 0) { + err = 1; + } else if((oflags & O_TRUNC) == O_TRUNC) { + if(lo_truncate(pg->connection, fd, 0)) { + lo_close(pg->connection, fd); + err = 1; + } + } + + if(err) { + pool_free(ctx->pool, file); + pool_free(ctx->pool, pgfile); + return NULL; + } } pgfile->iscollection = iscollection;