Commit 79caef5a authored by Jukka-Pekka Iivonen's avatar Jukka-Pekka Iivonen Committed by Jürg Billeter

Add postgres bindings

Fixes bug 583357.
parent d6dbfa26
......@@ -102,6 +102,7 @@ dist_vapi_DATA = \
libosso.vapi \
libpanelapplet-2.0.deps \
libpanelapplet-2.0.vapi \
libpq.vapi \
librsvg-2.0.vapi \
librsvg-2.0.deps \
libsexy.deps \
......
/* 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);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment