summaryrefslogtreecommitdiff
path: root/vapi/libpq.vapi
diff options
context:
space:
mode:
authorJukka-Pekka Iivonen <jp0409@jippii.fi>2009-06-25 21:32:16 +0200
committerJürg Billeter <j@bitron.ch>2009-06-25 21:35:18 +0200
commit79caef5a1d418868935ed4b83730b17d40c08758 (patch)
treeb65a31b9fbc3b80c80204d596e3c17c978880250 /vapi/libpq.vapi
parentd6dbfa265da427618cac87365cdf0a39f01c3f0c (diff)
downloadvala-79caef5a1d418868935ed4b83730b17d40c08758.tar.gz
Add postgres bindings
Fixes bug 583357.
Diffstat (limited to 'vapi/libpq.vapi')
-rw-r--r--vapi/libpq.vapi500
1 files changed, 500 insertions, 0 deletions
diff --git a/vapi/libpq.vapi b/vapi/libpq.vapi
new file mode 100644
index 000000000..ec26ac40c
--- /dev/null
+++ b/vapi/libpq.vapi
@@ -0,0 +1,500 @@
+/* libpq.vapi
+ *
+ * Copyright (C) 2009 Jukka-Pekka Iivonen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * Jukka-Pekka Iivonen <jp0409@jippii.fi>
+ */
+
+using GLib;
+
+[CCode (cprefix = "PQ", cheader_filename = "postgresql/libpq-fe.h")]
+namespace Postgres {
+
+ [CCode (cname = "ConnStatusType", cprefix = "CONNECTION_")]
+ public enum ConnectionStatus {
+ OK,
+ BAD,
+ STARTED,
+ MADE,
+ AWAITING_RESPONSE,
+ AUTH_OK,
+ SETENV,
+ SSL_STARTUP,
+ NEEDED
+ }
+
+ [CCode (cname = "PostgresPollingStatusType", cprefix = "PGRES_POLLING_")]
+ public enum PollingStatus {
+ FAILED,
+ READING,
+ WRITING,
+ OK,
+ ACTIVE
+ }
+
+ [CCode (cname = "ExecStatusType", cprefix = "PGRES_")]
+ public enum ExecStatus {
+ EMPTY_QUERY,
+ COMMAND_OK,
+ TUPLES_OK,
+ COPY_OUT,
+ COPY_IN,
+ BAD_RESPONSE,
+ NONFATAL_ERROR,
+ FATAL_ERROR
+ }
+
+ [CCode (cname = "PGTransactionStatusType", cprefix = "PQTRANS_")]
+ public enum TransactionStatus {
+ IDLE,
+ ACTIVE,
+ INTRANS,
+ INERROR,
+ UNKNOWN
+ }
+
+ [CCode (cname = "PGVerbosity", cprefix = "PQERRORS_")]
+ public enum Verbosity {
+ TERSE,
+ DEFAULT,
+ VERBOSE
+ }
+
+ [CCode (cname = "int", cprefix = "PG_DIAG_", has_type_id = false)]
+ public enum FieldCode {
+ SEVERITY,
+ SQLSTATE,
+ MESSAGE_PRIMARY,
+ MESSAGE_DETAIL,
+ MESSAGE_HINT,
+ STATEMENT_POSITION,
+ INTERNAL_POSITION,
+ INTERNAL_QUERY,
+ CONTEXT,
+ SOURCE_FILE,
+ SOURCE_LINE,
+ SOURCE_FUNCTION
+ }
+
+ [CCode (cname = "PGnotify")]
+ public struct Notify {
+ public string relname;
+ public int be_pid;
+ public string extra;
+ }
+
+ [CCode (cname = "PQnoticeReceiver")]
+ public delegate void NoticeReceiverFunc (void* arg, Result res);
+
+ [CCode (cname = "PQnoticeProcessor")]
+ public delegate void NoticeProcessorFunc (void* arg, string message);
+
+ [CCode (cname = "PQprintOpt")]
+ public struct PrintOpt {
+ public bool header;
+ public bool align;
+ public bool standard;
+ public bool html3;
+ public bool expanded;
+ public bool pager;
+ public string fieldSep;
+ public string tableOpt;
+ public string caption;
+ public string[] fieldName;
+ }
+
+ [Compact]
+ [CCode (free_function = "PQconninfoFree", cname = "PQconninfoOption")]
+ public class ConnectionOptions {
+ public string keyword;
+ public string envvar;
+ public string compiled;
+ public string val;
+ public string label;
+ public string dispchar;
+ public int dispsize;
+ }
+
+ [CCode (cname = "PQArgBlock")]
+ public struct ArgBlock {
+ public int len;
+ public int isint;
+ }
+
+ [SimpleType]
+ [CCode (cname = "uint", default_value = "0U", type_signature = "u")]
+ public struct Oid {
+ }
+
+ [CCode (cname = "InvalidOid")]
+ public const uint InvalidOid;
+
+ [CCode (cname = "PQconnectStart")]
+ public Database connect_start (string conninfo);
+
+ [CCode (cname = "PQconnectdb")]
+ public Database connect_db (string conninfo);
+
+ [CCode (cname = "PQsetdbLogin")]
+ public Database set_db_login (string host, string port, string options, string gtty, string db_name, string login, string pwd);
+
+ [CCode (cname = "PQsetdb")]
+ public Database set_db (string host, string port, string options, string gtty, string db_name);
+
+ [CCode (cname = "PQconndefaults")]
+ public ConnectionOptions get_default_options ();
+
+ [CCode (cname = "PQinitSSL")]
+ public void init_ssl (int do_init);
+
+ [CCode (cname = "PQisthreadsafe")]
+ public int is_thread_safe ();
+
+ [CCode (cname = "PQresStatus")]
+ public unowned string result_status (ExecStatus status);
+
+ [Compact]
+ [CCode (free_function = "PQfreeCancel", cname = "PGcancel", cprefix = "PQ")]
+ public class Cancel {
+ [CCode (cname = "PQcancel")]
+ public bool cancel (char[] errbuf, int errbufsize);
+ }
+
+ /* Database Connection Handle */
+ [Compact]
+ [CCode (free_function = "PQfinish", cname = "PGconn", cprefix = "PQ")]
+ public class Database {
+ [CCode (cname = "PQconnectPoll")]
+ public PollingStatus connect_poll ();
+
+ [CCode (cname = "PQresetStart")]
+ public int reset_start ();
+
+ [CCode (cname = "PQresetPoll")]
+ public PollingStatus reset_poll ();
+
+ [CCode (cname = "PQreset")]
+ public void reset ();
+
+ [CCode (cname = "PQgetCancel")]
+ public Cancel get_cancel ();
+
+ [CCode (cname = "PQrequestCancel")]
+ public int request_cancel ();
+
+ [CCode (cname = "PQdb")]
+ public unowned string get_db ();
+
+ [CCode (cname = "PQuser")]
+ public unowned string get_user ();
+
+ [CCode (cname = "PQpass")]
+ public unowned string get_passwd ();
+
+ [CCode (cname = "PQhost")]
+ public unowned string get_host ();
+
+ [CCode (cname = "PQport")]
+ public unowned string get_port ();
+
+ [CCode (cname = "PQtty")]
+ public unowned string get_tty ();
+
+ [CCode (cname = "PQoptions")]
+ public unowned string get_options ();
+
+ [CCode (cname = "PQstatus")]
+ public ConnectionStatus get_status ();
+
+ [CCode (cname = "PQtransactionStatus")]
+ public TransactionStatus get_transaction_status ();
+
+ [CCode (cname = "PQparameterStatus")]
+ public unowned string get_parameter_status (string param_name);
+
+ [CCode (cname = "PQprotocolVersion")]
+ public int get_protocol_Version ();
+
+ [CCode (cname = "PQserverVersion")]
+ public int get_server_version ();
+
+ [CCode (cname = "PQerrorMessage")]
+ public unowned string get_error_message ();
+
+ [CCode (cname = "PQsocket")]
+ public int get_socket ();
+
+ [CCode (cname = "PQbackendPID")]
+ public int get_backend_pid ();
+
+ [CCode (cname = "PQconnectionNeedsPassword")]
+ public int connection_needs_password ();
+
+ [CCode (cname = "PQconnectionUsedPassword")]
+ public int connection_used_password ();
+
+ [CCode (cname = "PQclientEncoding")]
+ public int get_client_encoding ();
+
+ [CCode (cname = "PQsetClientEncoding")]
+ public int set_client_encoding (string encoding);
+
+ [CCode (cname = "PQgetssl")]
+ public void* get_ssl ();
+
+ [CCode (cname = "PQsetErrorVerbosity")]
+ public Verbosity set_error_verbosity (Verbosity verbosity);
+
+ [CCode (cname = "PQtrace")]
+ public void trace (GLib.FileStream debug_port);
+
+ [CCode (cname = "PQuntrace")]
+ public void untrace ();
+
+ [CCode (cname = "PQsetNoticeReceiver")]
+ public NoticeReceiverFunc set_notice_receiver (NoticeReceiverFunc proc_func, void* arg);
+
+ [CCode (cname = "PQsetNoticeProcessor")]
+ public NoticeProcessorFunc set_notice_processor (NoticeProcessorFunc proc_func, void* arg);
+
+ [CCode (cname = "PQexec")]
+ public Result exec (string query);
+
+ [CCode (cname = "PQexecParams", array_length = false, array_null_terminated = false)]
+ public Result exec_params (string command, int nParams, Oid[] paramTypes, string[] paramValues, int[] paramLengths,
+ int[] paramFormats, int resultFormat);
+
+ [CCode (cname = "PQprepare", array_length = false, array_null_terminated = false)]
+ public Result prepare (string stmtName, string query, int nParams, Oid[] paramTypes);
+
+ [CCode (cname = "PQexecPrepared", array_length = false, array_null_terminated = false)]
+ public Result exec_prepared (string stmtName, int nParams, string[] paramValues, int[] paramLengths,
+ int[] paramFormats, int resultFormat);
+
+ [CCode (cname = "PQsendQuery")]
+ public int send_query (string query);
+
+ [CCode (cname = "PQsendQueryParams", array_length = false, array_null_terminated = false)]
+ public int send_query_params (string command, int nParams, Oid[] paramTypes, string[] paramValues,
+ int[] paramLengths, int[] paramFormats, int resultFormat);
+
+ [CCode (cname = "PQsendPrepare", array_length = false, array_null_terminated = false)]
+ public int send_prepare (string stmtName, string query, int nParams, Oid[] paramTypes);
+
+ [CCode (cname = "PQsendQueryPrepared", array_length = false, array_null_terminated = false)]
+ public int send_query_prepared (string stmtName, int nParams, string[] paramValues, int[] paramLengths,
+ int[] paramFormats, int resultFormat);
+
+ [CCode (cname = "PQgetResult")]
+ public Result get_result ();
+
+ [CCode (cname = "PQisBusy")]
+ public int is_busy ();
+
+ [CCode (cname = "PQconsumeInput")]
+ public int consume_input ();
+
+ [CCode (cname = "PQnotifies")]
+ public Notify get_notifies ();
+
+ [CCode (cname = "PQputCopyData")]
+ public int put_copy_data (string buffer, int nbytes);
+
+ [CCode (cname = "PQputCopyEnd")]
+ public int put_copy_end (string error_msg);
+
+ [CCode (cname = "PQgetCopyData")]
+ public int get_copy_data (string[] buffer, int async);
+
+ [CCode (cname = "PQsetnonblocking")]
+ public int set_non_blocking (int arg);
+
+ [CCode (cname = "PQisnonblocking")]
+ public int is_non_blocking ();
+
+ [CCode (cname = "PQflush")]
+ public int flush ();
+
+ [CCode (cname = "PQfn")]
+ public Result fn (int fnid, int[] result_buf, out int result_len, int result_is_int, ArgBlock args, int nargs);
+
+ [CCode (cname = "PQdescribePrepared")]
+ public Result describe_prepared (string stmt);
+
+ [CCode (cname = "PQdescribePortal")]
+ public Result describe_portal (string portal);
+
+ [CCode (cname = "PQsendDescribePrepared")]
+ public int send_describe_prepared (string stmt);
+
+ [CCode (cname = "PQsendDescribePortal")]
+ public int send_describe_portal (string portal);
+
+ [CCode (cname = "PQmakeEmptyPGresult")]
+ public Result make_empty_result (ExecStatus status);
+
+ [CCode (cname = "PQescapeStringConn")]
+ public size_t escape_string_conn (string to, string from, size_t length, out int error);
+
+ [CCode (cname = "PQescapeByteaConn")]
+ public uchar[] escape_bytea_conn (string from, size_t from_length, out size_t to_length);
+
+ [CCode (cname = "lo_open")]
+ public int lo_open (int lobj_id, int mode);
+
+ [CCode (cname = "lo_close")]
+ public int lo_close (int fd);
+
+ [CCode (cname = "lo_read")]
+ public int lo_read (int fd, string buf, size_t len);
+
+ [CCode (cname = "lo_write")]
+ public int lo_write (int fd, string buf, size_t len);
+
+ [CCode (cname = "lo_lseek")]
+ public int lo_lseek (int fd, int offset, int whence);
+
+ [CCode (cname = "lo_creat")]
+ public int lo_creat (int mode);
+
+ [CCode (cname = "lo_create")]
+ public int lo_create (int lobj_id);
+
+ [CCode (cname = "lo_tell")]
+ public int lo_tell (int fd);
+
+ [CCode (cname = "lo_truncate")]
+ public int lo_truncate (int fd, size_t len);
+
+ [CCode (cname = "lo_unlink")]
+ public int lo_unlink (int lobj_id);
+
+ [CCode (cname = "lo_import")]
+ public int lo_import (string filename);
+
+ [CCode (cname = "lo_export")]
+ public int lo_export (int lobj_id, string filename);
+ }
+
+ [CCode (cname = "pgthreadlock_t")]
+ public delegate void ThreadLockFunc (int acquire);
+
+ [CCode (cname = "PQregisterThreadLock")]
+ public ThreadLockFunc register_thread_lock (ThreadLockFunc newhandler);
+
+ [CCode (cname = "PQunescapeBytea")]
+ public uchar[] unescape_bytea (uchar[] strtext, out size_t retbuflen);
+
+ [Compact]
+ [CCode (free_function = "PQclear", cname = "PGresult", cprefix = "PQ")]
+ public class Result {
+ [CCode (cname = "PQresultStatus")]
+ public ExecStatus get_status ();
+
+ [CCode (cname = "PQresultErrorMessage")]
+ public unowned string get_error_message ();
+
+ [CCode (cname = "PQresultErrorField")]
+ public unowned string get_error_field (FieldCode field_code);
+
+ [CCode (cname = "PQntuples")]
+ public int get_n_tuples ();
+
+ [CCode (cname = "PQnfields")]
+ public int get_n_fields ();
+
+ [CCode (cname = "PQbinaryTuples")]
+ public bool is_binary_tuples ();
+
+ [CCode (cname = "PQfname")]
+ public unowned string get_field_name (int field_num);
+
+ [CCode (cname = "PQfnumber")]
+ public int get_field_number (string field_name);
+
+ [CCode (cname = "PQftable")]
+ public Oid get_field_table (int field_num);
+
+ [CCode (cname = "PQftablecol")]
+ public int get_field_table_col (int field_num);
+
+ [CCode (cname = "PQfformat")]
+ public int get_field_format (int field_num);
+
+ [CCode (cname = "PQftype")]
+ public Oid get_field_type (int field_num);
+
+ [CCode (cname = "PQfsize")]
+ public int get_fsize (int field_num);
+
+ [CCode (cname = "PQfmod")]
+ public int get_field_mod (int field_num);
+
+ [CCode (cname = "PQcmdStatus")]
+ public unowned string get_cmd_status ();
+
+ [CCode (cname = "PQoidValue")]
+ public Oid get_oid_value ();
+
+ [CCode (cname = "PQcmdTuples")]
+ public unowned string get_cmd_tuples ();
+
+ [CCode (cname = "PQgetvalue")]
+ public unowned string get_value (int tup_num, int field_num);
+
+ [CCode (cname = "PQgetlength")]
+ public int get_length (int tup_num, int field_num);
+
+ [CCode (cname = "PQgetisnull")]
+ public bool is_null (int tup_num, int field_num);
+
+ [CCode (cname = "PQnparams")]
+ public int get_n_params ();
+
+ [CCode (cname = "PQparamtype")]
+ public int get_param_type (int param_num);
+ }
+
+ [CCode (cname = "PQfreemem")]
+ public void free_mem (void* ptr);
+
+ [CCode (cname = "PQprint")]
+ public void print (GLib.FileStream fout, Result res, PrintOpt ps);
+
+ [CCode (cname = "PQmblen")]
+ public int mb_len (string s, int encoding);
+
+ [CCode (cname = "PQdsplen")]
+ public int dsp_len (string s, int encoding);
+
+ [CCode (cname = "PQenv2encoding")]
+ public int env2encoding ();
+
+ [CCode (cname = "PQencryptPassword")]
+ public unowned string encrypt_password (string passwd, string user);
+
+ [CCode (cname = "pg_char_to_encoding")]
+ public int char_to_encoding (string name);
+
+ [CCode (cname = "pg_encoding_to_char")]
+ public unowned string encoding_to_char (int encoding);
+
+ [CCode (cname = "pg_valid_server_encoding_id")]
+ public int valid_server_encoding_id (int encoding);
+}
+