MCPcopy Create free account
hub / github.com/apache/cloudberry / lo_truncate64

Function lo_truncate64

src/interfaces/libpq/fe-lobj.c:196–237  ·  view source on GitHub ↗

* lo_truncate64 * truncates an existing large object to the given size * * returns 0 upon success * returns -1 upon failure */

Source from the content-addressed store, hash-verified

194 * returns -1 upon failure
195 */
196int
197lo_truncate64(PGconn *conn, int fd, pg_int64 len)
198{
199 PQArgBlock argv[2];
200 PGresult *res;
201 int retval;
202 int result_len;
203
204 if (lo_initialize(conn) < 0)
205 return -1;
206
207 if (conn->lobjfuncs->fn_lo_truncate64 == 0)
208 {
209 appendPQExpBuffer(&conn->errorMessage,
210 libpq_gettext("cannot determine OID of function %s\n"),
211 "lo_truncate64");
212 return -1;
213 }
214
215 argv[0].isint = 1;
216 argv[0].len = 4;
217 argv[0].u.integer = fd;
218
219 len = lo_hton64(len);
220 argv[1].isint = 0;
221 argv[1].len = 8;
222 argv[1].u.ptr = (int *) &len;
223
224 res = PQfn(conn, conn->lobjfuncs->fn_lo_truncate64,
225 &retval, &result_len, 1, argv, 2);
226
227 if (PQresultStatus(res) == PGRES_COMMAND_OK)
228 {
229 PQclear(res);
230 return retval;
231 }
232 else
233 {
234 PQclear(res);
235 return -1;
236 }
237}
238
239/*
240 * lo_read

Callers 1

my_truncateFunction · 0.85

Calls 7

lo_initializeFunction · 0.85
appendPQExpBufferFunction · 0.85
libpq_gettextFunction · 0.85
lo_hton64Function · 0.85
PQfnFunction · 0.85
PQresultStatusFunction · 0.85
PQclearFunction · 0.85

Tested by 1

my_truncateFunction · 0.68