mirror of https://github.com/postgres/postgres
Fix WARN->NOTICE in docs. Change libpgeasy connection parameters to use
PQconnectdb() style connections.
This commit is contained in:
parent
ba26aeebc1
commit
f63ba5cd6a
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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, &isnull);
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -55,7 +55,7 @@ complex_in(char *str)
|
|||
double x, y;
|
||||
Complex *result;
|
||||
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2) {
|
||||
elog(WARN, "complex_in: error in parsing
|
||||
elog(NOTICE, "complex_in: error in parsing
|
||||
return NULL;
|
||||
}
|
||||
result = (Complex *)palloc(sizeof(Complex));
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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.
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,...);
|
||||
|
|
Loading…
Reference in New Issue