NAME

Pg.pir - OO interface to libpq

SYNOPSIS

  .local pmc pg, con, res
  pg = get_class 'Pg'
  con = pg.'connectdb'('dbname = db')
  res = con.'exec'('SELECT * from tab')
  n = res.'ntuples'()
  m = res.'nfields'()
  ...
  val = res.'getvalue'(i, j)

ABSTRACT

The Pg library provides an OO interface to libpq functions - the C interface to PostgreSQL.

See "Chapter 28. libpq - C Library" for details or the tests in t/library/pg.t.

AUTHOR

Leopold "leo" Toetsch <lt(at)toetsch.at>

DESCRIPTION

Pg.pir is a thin wrapper around postgres.pir - the NCI functions of the libpq library. It's roughly divided into 3 parts, represented by 'Pg', 'Pg;Conn', and 'Pg;Result' classes.

Connection Construction

con = Pg::connectdb('var=val var=val ...')
A class method that returns a new connection object.

Connection Methods

__init(con)
Object initializer. Takes a PGconn structure.
c = res.'PGconn'()
Return the raw PGconn structure. You probably don't need this function except for calling PQ* code directly.
$I0 = con.'status'()
Return the connection status.
con.'finish'()
Finish the connection. The connection attribute is set to .undef thereafter and inaccessible then.
res = con.'exec'(str)
Execute the SQL command and return a Pg;Result object.
res = con.'execParams'(str, val, ...)
Execute the SQL command and return a Pg;Result object. All values are considered being text - there's no provision to use binary data.
res = con.'prepare'(name, query, nparams)
Prepare a query for execution with execPrepared
res = con.'execPrepared'(name, val, ...)
Execute a prepared query.
$P0 = con.'setNoticeReceiver'(cb, arg)
Install a notice receiver callback. The callback will be called as
  .sub 'notice'
    .param pmc arg
    .param pmc res

Result Methods

__finalize()
Object finalizer. Calls self.'clear'().
r = res.'PGresult'()
Return the raw PGresult structure. You probably don't need this function except for calling PQ* code directly.
$I0 = res.'resultStatus'()
Return the status of the result.
res.'clear'()
Clear the result structure. You don't have to explicitely call this method. If a result object is no longer alive, the GC will call __finalize(), which wil clear the object.
$I0 = res.'ntuples'()
Return the amount of tuples in the result.
$I0 = res.'nfields'()
Return the amount of fields in the result.
$S0 = res.'fname'(c)
Return the name of the c-th field in the result.
$I0 = res.'fnumber'(col_name)
Return the number of the field or -1.
v = res.'getvalue'(r, c)
Return result value from row r and column c.
$I0 = res.'getisnull'(r, c)
Return true if the result value at (r,c) is NULL.