| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- local pgsql_functions = [
- ["ConnStatusType", "PQstatus", "const PGconn *conn"],
- ["void", "PQfinish", "PGconn *conn"],
- ["PGresult *", "PQprepare", @"PGconn *conn,
- const char *stmtName,
- const char *query,
- int nParams,
- const Oid *paramTypes"],
- ["PGresult *", "PQdescribePrepared", "PGconn *conn, const char *stmtName"],
- ["int", "PQnparams", "const PGresult *res"],
- ["Oid", "PQparamtype", "const PGresult *res, int param_number"],
- ["PGresult *", "PQexecPrepared", @"PGconn *conn,
- const char *stmtName,
- int nParams,
- const char * const *paramValues,
- const int *paramLengths,
- const int *paramFormats,
- int resultFormat"],
- ["PGresult *", "PQexec", "PGconn *conn, const char *command"],
- ["const char*", "PQgetvalue", @"const PGresult *res,
- int row_number,
- int column_number"],
- ["int", "PQntuples", "const PGresult *res"],
- ["char *", "PQcmdTuples", "const PGresult *res"],
- ["int", "PQnfields", "const PGresult *res"],
- ["int", "PQgetisnull", @"const PGresult *res,
- int row_number,
- int column_number"],
- ["void", "PQclear", "const PGresult *res"],
- ["int", "PQfnumber", "const PGresult *res, const char *column_name"],
- ["char *", "PQfname", "const PGresult *res, int column_number"],
- ["ExecStatusType", "PQresultStatus", "const PGresult *res"],
- ["char *", "PQerrorMessage", "const PGconn *conn"],
- ["void", "PQreset", "PGconn *conn"],
- ["PGresult *", "PQgetResult", "PGconn *conn"],
- ["int", "PQsetnonblocking", "PGconn *conn, int arg"],
- ["Oid", "PQftype", "const PGresult *res, int column_number"],
- ["int", "PQserverVersion", "const PGconn *conn"],
- // Large-object access routines
- ["int", "lo_open", "PGconn *conn, Oid lobjId, int mode"],
- ["int", "lo_close", "PGconn *conn, int fd"],
- ["int", "lo_read", "PGconn *conn, int fd, char *buf, size_t len"],
- ["int", "lo_write", "PGconn *conn, int fd, const char *buf, size_t len"],
- ["int", "lo_lseek", "PGconn *conn, int fd, int offset, int whence"],
- ["Oid", "lo_creat", "PGconn *conn, int mode"],
- ["Oid", "lo_create", "PGconn *conn, Oid lobjId"],
- ["int", "lo_tell", "PGconn *conn, int fd"],
- ["int", "lo_truncate", "PGconn *conn, int fd, size_t len"],
- ["int", "lo_unlink", "PGconn *conn, Oid lobjId"],
- ["Oid", "lo_import", "PGconn *conn, const char *filename"],
- ["Oid", "lo_import_with_oid", "PGconn *conn, const char *filename, Oid lobjId"],
- ["int", "lo_export", "PGconn *conn, Oid lobjId, const char *filename"],
- //next entry should be the last one
- //to make valid the test made on load_libpq function
- ["PGconn *", "PQconnectdb", "const char *conninfo"],
- ];
- function write_pgsql_functions_declaration(){
- foreach(k,v in pgsql_functions) {
- putsnl("typedef " + v[1] + " (*" + v[2] + "_t)(" + v[3] + ");");
- putsnl("static " + v[2] + "_t dl" + v[2] + " = 0;");
- }
- }
- function write_pgsql_functions_load(){
- foreach(k,v in pgsql_functions){
- putsnl("dl" + v[2] + " = (" + v[2] + "_t) libpq.dlsym(\"" + v[2] + "\");");
- putsnl("if(!dl" + v[2] + ") return false;");
- }
- }
|