Fix WARN->NOTICE in docs. Change libpgeasy connection parameters to use

PQconnectdb() style connections.
This commit is contained in:
Bruce Momjian 2000-05-18 14:24:38 +00:00
parent ba26aeebc1
commit f63ba5cd6a
18 changed files with 43 additions and 111 deletions

View File

@ -22,11 +22,14 @@ main(int argc, char **argv)
char attname[256];
char typname[256];
int count;
char optstr[256];
if (argc != 2)
halt("Usage: %s database\n", argv[0]);
connectdb(NULL, NULL, NULL, NULL, argv[1]);
snprintf(optstr, 256, "dbname=%s", argv[1]);
connectdb(optstr);
on_error_continue();
on_error_stop();

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpgeasy.sgml,v 2.2 2000/04/27 18:45:43 momjian Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpgeasy.sgml,v 2.3 2000/05/18 14:24:31 momjian Exp $
-->
<chapter id="pgeasy-chapter">
@ -35,7 +35,7 @@ PGresult *doquery(char *query);
<listitem>
<para>
PGconn *connectdb();
PGconn *connectdb(char *options);
</para>
</listitem>
@ -108,7 +108,7 @@ void unset_result(PGresult *oldres);
</para>
<para>
For <literal>select</literal> queries, <function>fetch</function>
For <literal>SELECT</literal> queries, <function>fetch</function>
allows you to pass pointers as parameters, and on return the variables
are filled with data from the binary cursor you opened. These binary
cursors can not be used if you are running the

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.3 2000/03/31 06:17:21 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.4 2000/05/18 14:24:32 momjian Exp $
-->
<chapter>
@ -303,7 +303,7 @@ CREATE TRIGGER trig_mytab_modcount BEFORE INSERT OR UPDATE ON mytab
<term>elog <replaceable>level</replaceable> <replaceable>msg</replaceable></term>
<listitem>
<para>
Fire a log message. Possible levels are NOTICE, WARN, ERROR,
Fire a log message. Possible levels are NOTICE, ERROR,
FATAL, DEBUG and NOIND
like for the <function>elog</function> C function.
</para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.6 1999/07/22 15:09:10 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.7 2000/05/18 14:24:32 momjian Exp $
Postgres documentation
-->
@ -80,7 +80,7 @@ DROP
</varlistentry>
<varlistentry>
<term><computeroutput>
WARN RemoveAggregate: aggregate '<replaceable class="parameter">agg</replaceable>' for '<replaceable class="parameter">type</replaceable>' does not exist
NOTICE RemoveAggregate: aggregate '<replaceable class="parameter">agg</replaceable>' for '<replaceable class="parameter">type</replaceable>' does not exist
</computeroutput></term>
<listitem>
<para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.7 1999/07/22 15:09:10 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.8 2000/05/18 14:24:33 momjian Exp $
Postgres documentation
-->
@ -77,7 +77,7 @@ DROP
</varlistentry>
<varlistentry>
<term><computeroutput>
WARN RemoveFunction: Function "<replaceable class="parameter">name</replaceable>" ("<replaceable class="parameter">types</replaceable>") does not exist
NOTICE RemoveFunction: Function "<replaceable class="parameter">name</replaceable>" ("<replaceable class="parameter">types</replaceable>") does not exist
</computeroutput></term>
<listitem>
<para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_sequence.sgml,v 1.6 1999/07/22 15:09:10 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_sequence.sgml,v 1.7 2000/05/18 14:24:33 momjian Exp $
Postgres documentation
-->
@ -69,7 +69,7 @@ DROP
</varlistentry>
<varlistentry>
<term><computeroutput>
WARN: Relation "<replaceable class="parameter">name</replaceable>" does not exist.
NOTICE: Relation "<replaceable class="parameter">name</replaceable>" does not exist.
</computeroutput></term>
<listitem>
<para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.42 2000/04/18 15:23:34 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.43 2000/05/18 14:24:33 momjian Exp $
Postgres documentation
-->
@ -919,7 +919,7 @@ SET VARIABLE
<varlistentry>
<term><computeroutput>
WARN: Bad value for <replaceable class="parameter">variable</replaceable> (<replaceable class="parameter">value</replaceable>)
NOTICE: Bad value for <replaceable class="parameter">variable</replaceable> (<replaceable class="parameter">value</replaceable>)
</computeroutput></term>
<listitem>
<para>

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.11 2000/05/02 20:01:52 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/start.sgml,v 1.12 2000/05/18 14:24:32 momjian Exp $
-->
<chapter id="start">
@ -243,7 +243,7 @@ FATAL 1:Feb 17 23:19:55:process userid (2360) != database owner (268)
the following:
<programlisting>
% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
NOTICE:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
</programlisting>
</para>

View File

@ -423,7 +423,7 @@ trigf()
int ret, i;
if (!CurrentTriggerData)
elog(WARN, "trigf: triggers are not initialized");
elog(NOTICE, "trigf: triggers are not initialized");
/* tuple to return to Executor */
if (TRIGGER_FIRED_BY_UPDATE(CurrentTriggerData->tg_event))
@ -446,13 +446,13 @@ trigf()
/* Connect to SPI manager */
if ((ret = SPI_connect()) < 0)
elog(WARN, "trigf (fired %s): SPI_connect returned %d", when, ret);
elog(NOTICE, "trigf (fired %s): SPI_connect returned %d", when, ret);
/* Get number of tuples in relation */
ret = SPI_exec("select count(*) from ttest", 0);
if (ret < 0)
elog(WARN, "trigf (fired %s): SPI_exec returned %d", when, ret);
elog(NOTICE, "trigf (fired %s): SPI_exec returned %d", when, ret);
i = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &amp;isnull);

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.14 2000/05/02 20:01:53 thomas Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.15 2000/05/18 14:24:32 momjian Exp $
-->
<chapter id="xfunc">
@ -253,7 +253,7 @@ CREATE FUNCTION new_emp() RETURNS EMP
<programlisting>
<computeroutput>
WARN::function declared to return type EMP does not retrieve (EMP.*)
NOTICE::function declared to return type EMP does not retrieve (EMP.*)
</computeroutput>
</programlisting>
</para>
@ -286,7 +286,7 @@ SELECT name(new_emp()) AS nobody;
<programlisting>
SELECT new_emp().name AS nobody;
WARN:parser: syntax error at or near "."
NOTICE:parser: syntax error at or near "."
</programlisting>
</para>
</listitem>

View File

@ -55,7 +55,7 @@ complex_in(char *str)
double x, y;
Complex *result;
if (sscanf(str, " ( %lf , %lf )", &amp;x, &amp;y) != 2) {
elog(WARN, "complex_in: error in parsing
elog(NOTICE, "complex_in: error in parsing
return NULL;
}
result = (Complex *)palloc(sizeof(Complex));

View File

@ -4,12 +4,13 @@
# Makefile for pgeasy examples
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/interfaces/libpgeasy/examples/Attic/Makefile,v 1.1 1999/10/11 18:03:01 momjian Exp $
# $Header: /cvsroot/pgsql/src/interfaces/libpgeasy/examples/Attic/Makefile,v 1.2 2000/05/18 14:24:37 momjian Exp $
#
#-------------------------------------------------------------------------
CFLAGS=-I/usr/local/pgsql/include
TARGET = pginsert pgwordcount pgnulltest
LDFLAGS = -lpgeasy
LDFLAGS = -L/usr/local/pgsql/lib -lpgeasy
all : $(TARGET)

View File

@ -23,11 +23,13 @@ main(int argc, char **argv)
avarchar[51],
atext[51];
time_t aabstime;
char optstr[256];
if (argc != 2)
halt("Usage: %s database\n", argv[0]);
connectdb(NULL, NULL, NULL, NULL, argv[1]);
snprintf(optstr, 256, "dbname=%s", argv[1]);
connectdb(optstr);
on_error_continue();
doquery("DROP TABLE testfetch");

View File

@ -34,11 +34,13 @@ main(int argc, char **argv)
avarchar_null,
atext_null,
aabstime_null;
char optstr[256];
if (argc != 2)
halt("Usage: %s database\n", argv[0]);
connectdb(NULL, NULL, NULL, NULL, argv[1]);
snprintf(optstr, 256, "dbname=%s", argv[1]);
connectdb(optstr);
on_error_continue();
doquery("DROP TABLE testfetch");

View File

@ -15,11 +15,14 @@ main(int argc, char **argv)
int row = 0;
int count;
char line[4000];
char optstr[256];
if (argc != 2)
halt("Usage: %s database\n", argv[0]);
connectdb(NULL, NULL, NULL, NULL, argv[1]);
snprintf(optstr, 256, "dbname=%s", argv[1]);
connectdb(optstr);
on_error_continue();
doquery("DROP TABLE words");
on_error_stop();

View File

@ -1,71 +0,0 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
.\" $Header: /cvsroot/pgsql/src/interfaces/libpgeasy/Attic/libpgeasy.3,v 1.1 1999/10/12 14:06:49 momjian Exp $
.TH PGEASY INTRO 08/08/98 PostgreSQL PostgreSQL
.SH DESCRIPTION
Pgeasy allows you to cleanly interface to the libpq library,
more like a 4gl SQL interface.
.PP
It consists of set of simplified C functions that encapsulate the
functionality of libpq.
The functions are:
.nf
PGresult *doquery(char *query);
PGconn *connectdb();
void disconnectdb();
int fetch(void *param,...);
int fetchwithnulls(void *param,...);
void reset_fetch();
void on_error_continue();
void on_error_stop();
PGresult *get_result();
void set_result(PGresult *newres);
void unset_result(PGresult *oldres);
.fi
.PP
Many functions return a structure or value, so you can do more work
with the result if required.
.PP
You basically connect to the database with
.BR connectdb ,
issue your query with
.BR doquery ,
fetch the results with
.BR fetch ,
and finish with
.BR disconnectdb .
.PP
For
.IR select
queries,
.BR fetch
allows you to pass pointers as parameters, and on return the variables
are filled with data from the binary cursor you opened. These binary
cursors can not be used if you are running the
.BR pgeasy
client on a system with a different architecture than the database
server. If you pass a NULL pointer parameter, the column is skipped.
.BR fetchwithnulls
allows you to retieve the
.IR null
status of the field by passing an
.IR int*
after each result pointer, which returns true or false if the field is null.
You can always use libpq functions on the PGresult pointer returned by
.BR doquery .
.BR reset_fetch
starts the fetch back at the beginning.
.PP
.BR get_result ,
.BR set_result ,
and
.BR unset_result
allow you to handle multiple result sets at the same time.
.PP
There are a variety of demonstration programs in the
.BR pgeasy
source directory.

View File

@ -44,16 +44,12 @@ static int tuple;
**
*/
PGconn *
connectdb(char *pghost,
char *pgport,
char *pgoptions,
char *pgtty,
char *dbName)
connectdb(char *options)
{
/* make a connection to the database */
conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName);
conn = PQconnectdb(options);
if (PQstatus(conn) == CONNECTION_BAD)
halt("Connection to database '%s' failed.\n%s\n", dbName,
halt("Connection to database using '%s' failed.\n%s\n", options,
PQerrorMessage(conn));
return conn;
}

View File

@ -4,11 +4,7 @@
*/
PGresult *doquery(char *query);
PGconn *connectdb(char *pghost,
char *pgport,
char *pgoptions,
char *pgtty,
char *dbName);
PGconn *connectdb(char *options);
void disconnectdb(void);
int fetch(void *param,...);
int fetchwithnulls(void *param,...);