Add auto-size to screen to \d? commands. Use UNION to show all

\d? results in one query. Add \d? field search feature.  Rename MB
to MULTIBYTE.
This commit is contained in:
Bruce Momjian 1998-07-18 18:34:34 +00:00
parent 550f209797
commit 7b2b779a2a
26 changed files with 452 additions and 392 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.29 1998/06/16 07:29:18 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.30 1998/07/18 18:34:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -23,7 +23,7 @@
#include <libpq/libpq.h>
#include <utils/syscache.h>
#ifdef MB
#ifdef MULTIBYTE
#include <commands/variable.h>
#endif
@ -84,7 +84,7 @@ printtup(HeapTuple tuple, TupleDesc typeinfo)
Datum attr;
bool isnull;
Oid typoutput;
#ifdef MB
#ifdef MULTIBYTE
unsigned char *p;
#endif
@ -132,7 +132,7 @@ printtup(HeapTuple tuple, TupleDesc typeinfo)
outputstr = fmgr(typoutput, attr,
gettypelem(typeinfo->attrs[i]->atttypid),
typeinfo->attrs[i]->atttypmod);
#ifdef MB
#ifdef MULTIBYTE
p = pg_server_to_client(outputstr, strlen(outputstr));
pq_putint(strlen(p) + VARHDRSZ, VARHDRSZ);
pq_putnchar(p, strlen(p));
@ -281,7 +281,7 @@ printtup_internal(HeapTuple tuple, TupleDesc typeinfo)
/* variable length, assume a varlena structure */
len = VARSIZE(attr) - VARHDRSZ;
#ifdef MB
#ifdef MULTIBYTE
pq_putncharlen(VARDATA(attr), len);
#else
pq_putint(len, VARHDRSZ);

View File

@ -2,7 +2,7 @@
* conversion between client encoding and server internal encoding
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
* $Id: mbutils.c,v 1.1 1998/06/16 07:38:18 momjian Exp $
* $Id: mbutils.c,v 1.2 1998/07/18 18:34:01 momjian Exp $
*/
#include <stdio.h>
#include <string.h>
@ -12,7 +12,7 @@
#include "regex/pg_wchar.h"
#include "commands/variable.h"
static int client_encoding = MB; /* defalut client encoding is set to
static int client_encoding = MULTIBYTE; /* defalut client encoding is set to
same as the server encoding */
/*
* convert bogus chars that cannot be represented in the current encoding
@ -381,10 +381,10 @@ int pg_set_client_encoding(int encoding)
{
client_encoding = encoding;
if (client_encoding == MB) { /* server == client? */
if (client_encoding == MULTIBYTE) { /* server == client? */
client_to_mic = client_from_mic = 0;
server_to_mic = server_from_mic = 0;
} else if (MB == MULE_INTERNAL) { /* server == MULE_INETRNAL? */
} else if (MULTIBYTE == MULE_INTERNAL) { /* server == MULE_INETRNAL? */
client_to_mic = get_enc_ent(encoding)->to_mic;
client_from_mic = get_enc_ent(encoding)->from_mic;
server_to_mic = server_from_mic = 0;
@ -393,16 +393,16 @@ int pg_set_client_encoding(int encoding)
}
} else if (encoding == MULE_INTERNAL) { /* client == MULE_INETRNAL? */
client_to_mic = client_from_mic = 0;
server_to_mic = get_enc_ent(MB)->to_mic;
server_from_mic = get_enc_ent(MB)->from_mic;
server_to_mic = get_enc_ent(MULTIBYTE)->to_mic;
server_from_mic = get_enc_ent(MULTIBYTE)->from_mic;
if (server_to_mic == 0 || server_from_mic == 0) {
return(-1);
}
} else {
client_to_mic = get_enc_ent(encoding)->to_mic;
client_from_mic = get_enc_ent(encoding)->from_mic;
server_to_mic = get_enc_ent(MB)->to_mic;
server_from_mic = get_enc_ent(MB)->from_mic;
server_to_mic = get_enc_ent(MULTIBYTE)->to_mic;
server_from_mic = get_enc_ent(MULTIBYTE)->from_mic;
if (client_to_mic == 0 || client_from_mic == 0) {
return(-1);
}
@ -504,7 +504,7 @@ const char *pg_encoding_to_char(int encoding)
return(p->name);
}
#ifdef MBUTILSDEBUG
#ifdef MULTIBYTEUTILSDEBUG
#include <stdio.h>
main()

View File

@ -2,7 +2,7 @@
* Routines for handling of 'SET var TO',
* 'SHOW var' and 'RESET var' statements.
*
* $Id: variable.c,v 1.7 1998/06/16 07:29:21 momjian Exp $
* $Id: variable.c,v 1.8 1998/07/18 18:34:01 momjian Exp $
*
*/
@ -15,7 +15,7 @@
#include "commands/variable.h"
#include "utils/builtins.h"
#include "optimizer/internal.h"
#ifdef MB
#ifdef MULTIBYTE
#include "regex/pg_wchar.h"
#endif
@ -522,7 +522,7 @@ reset_timezone()
return TRUE;
} /* reset_timezone() */
#ifdef MB
#ifdef MULTIBYTE
/*-----------------------------------------------------------------------*/
bool
parse_client_encoding(const char *value)
@ -535,7 +535,7 @@ parse_client_encoding(const char *value)
} else {
if (pg_set_client_encoding(encoding)) {
elog(ERROR, "Conversion between %s and %s is not supported",
value, pg_encoding_to_char(MB));
value, pg_encoding_to_char(MULTIBYTE));
}
}
return TRUE;
@ -558,10 +558,10 @@ reset_client_encoding()
if (env) {
encoding = pg_char_to_encoding(env);
if (encoding < 0) {
encoding = MB;
encoding = MULTIBYTE;
}
} else {
encoding = MB;
encoding = MULTIBYTE;
}
pg_set_client_encoding(encoding);
return TRUE;
@ -598,7 +598,7 @@ struct VariableParsers
{
"r_plans", parse_r_plans, show_r_plans, reset_r_plans
},
#ifdef MB
#ifdef MULTIBYTE
{
"client_encoding", parse_client_encoding, show_client_encoding, reset_client_encoding
},

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.48 1998/07/09 03:28:46 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.49 1998/07/18 18:34:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -67,7 +67,7 @@
#include "libpq/auth.h"
#include "libpq/libpq.h" /* where the declarations go */
#include "storage/ipc.h"
#ifdef MB
#ifdef MULTIBYTE
#include "commands/variable.h"
#endif
@ -181,7 +181,7 @@ pq_getstr(char *s, int maxlen)
{
int c = '\0';
#ifdef MB
#ifdef MULTIBYTE
unsigned char *p, *ps;
int len;
@ -199,7 +199,7 @@ pq_getstr(char *s, int maxlen)
*s++ = c;
*s = '\0';
#ifdef MB
#ifdef MULTIBYTE
p = pg_client_to_server(ps, len);
if (ps != p) { /* actual conversion has been done? */
strcpy(ps, p);
@ -341,7 +341,7 @@ pq_getint(int b)
void
pq_putstr(char *s)
{
#ifdef MB
#ifdef MULTIBYTE
unsigned char *p;
p = pg_server_to_client(s, strlen(s));
@ -740,7 +740,7 @@ StreamOpen(char *hostName, short portName, Port *port)
return (STATUS_OK);
}
#ifdef MB
#ifdef MULTIBYTE
void
pq_putncharlen(char *s, int n)
{

View File

@ -117,14 +117,14 @@ extern "C"
#define EOW (BOL+5)
#define CODEMAX (BOL+5) /* highest code used */
#ifdef MB
# if MB == MULE_INTERNAL
#ifdef MULTIBYTE
# if MULTIBYTE == MULE_INTERNAL
# define NONCHAR(c) ((c) > 16777216) /* 16777216 == 2^24 == 3 bytes */
# define NNONCHAR (CODEMAX-16777216)
# elif MB == EUC_JP || MB == EUC_CN || MB == EUC_KR || MB == EUC_TW
# elif MULTIBYTE == EUC_JP || MULTIBYTE == EUC_CN || MULTIBYTE == EUC_KR || MULTIBYTE == EUC_TW
# define NONCHAR(c) ((c) > USHRT_MAX)
# define NNONCHAR (CODEMAX-USHRT_MAX)
# elif MB == UNICODE
# elif MULTIBYTE == UNICODE
# define NONCHAR(c) ((c) > USHRT_MAX)
# define NNONCHAR (CODEMAX-USHRT_MAX)
# else /* assume 1 byte code such as ISO8859-1 */
@ -200,7 +200,7 @@ int eflags;
else
{
start = string;
#ifdef MB
#ifdef MULTIBYTE
stop = start + pg_wchar_strlen(start);
#else
stop = start + strlen(start);
@ -214,7 +214,7 @@ int eflags;
{
for (dp = start; dp < stop; dp++)
if (*dp == g->must[0] && stop - dp >= g->mlen &&
#ifdef MB
#ifdef MULTIBYTE
memcmp(dp, g->must, (size_t) (g->mlen * sizeof(pg_wchar))) == 0)
#else
memcmp(dp, g->must, (size_t) g->mlen) == 0)
@ -1165,7 +1165,7 @@ sopno stopst;
static int pg_isprint(int c)
{
#ifdef MB
#ifdef MULTIBYTE
return(c >= 0 && c <= UCHAR_MAX && isprint(c));
#else
return(isprint(c));

View File

@ -194,7 +194,7 @@ int cflags;
struct parse *p = &pa;
int i;
size_t len;
#ifdef MB
#ifdef MULTIBYTE
pg_wchar *wcp;
#endif
@ -210,7 +210,7 @@ int cflags;
if (cflags & REG_PEND)
{
#ifdef MB
#ifdef MULTIBYTE
wcp = preg->patsave;
if (preg->re_endp < wcp)
return (REG_INVARG);
@ -222,7 +222,7 @@ int cflags;
#endif
}
else {
#ifdef MB
#ifdef MULTIBYTE
wcp = (pg_wchar *)malloc((strlen(pattern)+1) * sizeof(pg_wchar));
if (wcp == NULL) {
return (REG_ESPACE);
@ -253,7 +253,7 @@ int cflags;
/* set things up */
p->g = g;
#ifdef MB
#ifdef MULTIBYTE
p->next = wcp;
#else
p->next = (pg_wchar *)pattern; /* convenience; we do not modify it */
@ -607,7 +607,7 @@ int starordinary; /* is a leading * an ordinary character? */
if (c == '\\')
{
REQUIRE(MORE(), REG_EESCAPE);
#ifdef MB
#ifdef MULTIBYTE
c = BACKSL | (pg_wchar) GETNEXT();
#else
c = BACKSL | (unsigned char) GETNEXT();
@ -755,13 +755,13 @@ struct parse *p;
{
cset *cs = allocset(p);
int invert = 0;
#ifdef MB
#ifdef MULTIBYTE
pg_wchar sp1[] = {'[', ':', '<', ':', ']', ']'};
pg_wchar sp2[] = {'[', ':', '>', ':', ']', ']'};
#endif
/* Dept of Truly Sickening Special-Case Kludges */
#ifdef MB
#ifdef MULTIBYTE
if (p->next + 5 < p->end && pg_wchar_strncmp(p->next, sp1, 6) == 0)
#else
if (p->next + 5 < p->end && strncmp(p->next, "[:<:]]", 6) == 0)
@ -771,7 +771,7 @@ struct parse *p;
NEXTn(6);
return;
}
#ifdef MB
#ifdef MULTIBYTE
if (p->next + 5 < p->end && pg_wchar_strncmp(p->next, sp2, 6) == 0)
#else
if (p->next + 5 < p->end && strncmp(p->next, "[:>:]]", 6) == 0)
@ -903,7 +903,7 @@ cset *cs;
finish = start;
/* xxx what about signed chars here... */
REQUIRE(start <= finish, REG_ERANGE);
#ifdef MB
#ifdef MULTIBYTE
if (CHlc(start) != CHlc(finish)) {
SETERROR(REG_ERANGE);
}
@ -933,7 +933,7 @@ cset *cs;
NEXT();
len = p->next - sp;
for (cp = cclasses; cp->name != NULL; cp++)
#ifdef MB
#ifdef MULTIBYTE
if (pg_char_and_wchar_strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0')
#else
if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0')
@ -1012,7 +1012,7 @@ int endc; /* name ended by endc,']' */
}
len = p->next - sp;
for (cp = cnames; cp->name != NULL; cp++)
#ifdef MB
#ifdef MULTIBYTE
if (pg_char_and_wchar_strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0')
#else
if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0')
@ -1084,7 +1084,7 @@ int ch;
bothcases(p, ch);
else
{
#ifdef MB
#ifdef MULTIBYTE
EMIT(OCHAR, (pg_wchar) ch);
#else
EMIT(OCHAR, (unsigned char) ch);
@ -1788,7 +1788,7 @@ struct re_guts *g;
return;
/* turn it into a character string */
#ifdef MB
#ifdef MULTIBYTE
g->must = (pg_wchar *)malloc((size_t) (g->mlen + 1)*sizeof(pg_wchar));
#else
g->must = malloc((size_t) g->mlen + 1);
@ -1854,7 +1854,7 @@ struct re_guts *g;
*/
static int pg_isdigit(int c)
{
#ifdef MB
#ifdef MULTIBYTE
return(c >= 0 && c <= UCHAR_MAX && isdigit(c));
#else
return(isdigit(c));
@ -1863,7 +1863,7 @@ static int pg_isdigit(int c)
static int pg_isalpha(int c)
{
#ifdef MB
#ifdef MULTIBYTE
return(c >= 0 && c <= UCHAR_MAX && isalpha(c));
#else
return(isalpha(c));
@ -1872,7 +1872,7 @@ static int pg_isalpha(int c)
static int pg_isupper(int c)
{
#ifdef MB
#ifdef MULTIBYTE
return(c >= 0 && c <= UCHAR_MAX && isupper(c));
#else
return(isupper(c));
@ -1881,7 +1881,7 @@ static int pg_isupper(int c)
static int pg_islower(int c)
{
#ifdef MB
#ifdef MULTIBYTE
return(c >= 0 && c <= UCHAR_MAX && islower(c));
#else
return(islower(c));

View File

@ -215,7 +215,7 @@ char *localbuf;
struct rerr *r;
for (r = rerrs; r->code != 0; r++)
#ifdef MB
#ifdef MULTIBYTE
if (pg_char_and_wchar_strcmp(r->name, preg->re_endp) == 0)
#else
if (strcmp(r->name, preg->re_endp) == 0)

View File

@ -164,7 +164,7 @@ int eflags;
{
struct re_guts *g = preg->re_g;
#ifdef MB
#ifdef MULTIBYTE
pg_wchar *str;
int sts;
#endif
@ -182,7 +182,7 @@ int eflags;
return (REG_BADPAT);
eflags = GOODFLAGS(eflags);
#ifdef MB
#ifdef MULTIBYTE
str = (pg_wchar *)malloc((strlen(string)+1) * sizeof(pg_wchar));
if (!str) {
return(REG_ESPACE);

View File

@ -68,7 +68,7 @@ regex_t *preg;
return;
preg->re_magic = 0; /* mark it invalid */
g->magic = 0; /* mark it invalid */
#ifdef MB
#ifdef MULTIBYTE
if (preg->patsave != NULL) {
free((char *)preg->patsave);
}

View File

@ -1,7 +1,7 @@
/*
* misc conversion functions between pg_wchar and other encodings.
* Tatsuo Ishii
* $Id: utils.c,v 1.3 1998/06/16 07:29:29 momjian Exp $
* $Id: utils.c,v 1.4 1998/07/18 18:34:08 momjian Exp $
*/
#include <regex/pg_wchar.h>
@ -350,19 +350,19 @@ static pg_wchar_tbl pg_wchar_table[] = {
/* convert a multi-byte string to a wchar */
void pg_mb2wchar(const unsigned char *from, pg_wchar *to)
{
(*pg_wchar_table[MB].mb2wchar_with_len)(from,to,strlen(from));
(*pg_wchar_table[MULTIBYTE].mb2wchar_with_len)(from,to,strlen(from));
}
/* convert a multi-byte string to a wchar with a limited length */
void pg_mb2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
{
(*pg_wchar_table[MB].mb2wchar_with_len)(from,to,len);
(*pg_wchar_table[MULTIBYTE].mb2wchar_with_len)(from,to,len);
}
/* returns the byte length of a multi-byte word */
int pg_mblen(const unsigned char *mbstr)
{
return((*pg_wchar_table[MB].mblen)(mbstr));
return((*pg_wchar_table[MULTIBYTE].mblen)(mbstr));
}
/* returns the byte length of a multi-byte word for an encoding */

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.79 1998/07/09 03:28:48 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.80 1998/07/18 18:34:09 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@ -83,7 +83,7 @@
#include "nodes/memnodes.h"
#endif
#ifdef MB
#ifdef MULTIBYTE
#include "commands/variable.h"
#endif
@ -1270,7 +1270,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
InitPostgres(DBName);
#ifdef MB
#ifdef MULTIBYTE
/* set default client encoding */
if (!Quiet)
{
@ -1339,7 +1339,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
if (!IsUnderPostmaster)
{
puts("\nPOSTGRES backend interactive interface");
puts("$Revision: 1.79 $ $Date: 1998/07/09 03:28:48 $");
puts("$Revision: 1.80 $ $Date: 1998/07/18 18:34:09 $");
}
/* ----------------

View File

@ -49,7 +49,7 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
return FALSE;
/* be sure sterm is null-terminated */
#ifdef MB
#ifdef MULTIBYTE
sterm = (pg_wchar *) palloc((charlen + 1)*sizeof(pg_wchar));
(void)pg_mb2wchar_with_len((unsigned char *)s,sterm,charlen);
#else
@ -64,7 +64,7 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
/* palloc the length of the text + the null character */
len = VARSIZE(p) - VARHDRSZ;
#ifdef MB
#ifdef MULTIBYTE
pterm = (pg_wchar *) palloc((len + 1)*sizeof(pg_wchar));
(void)pg_mb2wchar_with_len((unsigned char *)VARDATA(p),pterm,len);
#else
@ -111,7 +111,7 @@ textnlike(struct varlena * s, struct varlena * p)
}
/* $Revision: 1.16 $
/* $Revision: 1.17 $
** "like.c" A first attempt at a LIKE operator for Postgres95.
**
** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.35 1998/07/12 21:29:23 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.36 1998/07/18 18:34:12 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -398,13 +398,13 @@ bcTruelen(char *arg)
int32
bpcharlen(char *arg)
{
#ifdef MB
#ifdef MULTIBYTE
unsigned char *s;
int len, l, wl;
#endif
if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) char() external representation", NULL);
#ifdef MB
#ifdef MULTIBYTE
l = bcTruelen(arg);
len = 0;
s = VARDATA(arg);
@ -563,14 +563,14 @@ bpcharcmp(char *arg1, char *arg2)
int32
varcharlen(char *arg)
{
#ifdef MB
#ifdef MULTIBYTE
unsigned char *s;
int len, l, wl;
#endif
if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) varchar() external representation", NULL);
#ifdef MB
#ifdef MULTIBYTE
len = 0;
s = VARDATA(arg);
l = VARSIZE(arg) - VARHDRSZ;

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.37 1998/06/16 06:41:51 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.38 1998/07/18 18:34:13 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -206,7 +206,7 @@ textout(text *vlena)
int32
textlen(text *t)
{
#ifdef MB
#ifdef MULTIBYTE
unsigned char *s;
int len, l, wl;
#endif
@ -214,7 +214,7 @@ textlen(text *t)
if (!PointerIsValid(t))
elog(ERROR, "Null input to textlen");
#ifdef MB
#ifdef MULTIBYTE
len = 0;
s = VARDATA(t);
l = VARSIZE(t) - VARHDRSZ;
@ -322,7 +322,7 @@ text_substr(text *string, int32 m, int32 n)
{
text *ret;
int len;
#ifdef MB
#ifdef MULTIBYTE
int i;
char *p;
#endif
@ -331,7 +331,7 @@ text_substr(text *string, int32 m, int32 n)
return string;
len = VARSIZE(string) - VARHDRSZ;
#ifdef MB
#ifdef MULTIBYTE
len = pg_mbstrlen_with_len(VARDATA(string),len);
#endif
@ -348,7 +348,7 @@ text_substr(text *string, int32 m, int32 n)
n = (len - m);
}
#ifdef MB
#ifdef MULTIBYTE
p = VARDATA(string);
for (i=0;i<m;i++) {
p += pg_mblen(p);
@ -387,7 +387,7 @@ textpos(text *t1, text *t2)
len2;
pg_wchar *p1,
*p2;
#ifdef MB
#ifdef MULTIBYTE
pg_wchar *ps1, *ps2;
#endif
@ -399,7 +399,7 @@ textpos(text *t1, text *t2)
len1 = (VARSIZE(t1) - VARHDRSZ);
len2 = (VARSIZE(t2) - VARHDRSZ);
#ifdef MB
#ifdef MULTIBYTE
ps1 = p1 = (pg_wchar *) palloc((len1 + 1)*sizeof(pg_wchar));
(void)pg_mb2wchar_with_len((unsigned char *)VARDATA(t1),p1,len1);
len1 = pg_wchar_strlen(p1);
@ -414,7 +414,7 @@ textpos(text *t1, text *t2)
px = (len1 - len2);
for (p = 0; p <= px; p++)
{
#ifdef MB
#ifdef MULTIBYTE
if ((*p2 == *p1) && (pg_wchar_strncmp(p1, p2, len2) == 0))
#else
if ((*p2 == *p1) && (strncmp(p1, p2, len2) == 0))
@ -425,7 +425,7 @@ textpos(text *t1, text *t2)
};
p1++;
};
#ifdef MB
#ifdef MULTIBYTE
pfree(ps1);
pfree(ps2);
#endif

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.147 1998/07/09 03:28:53 scrappy Exp $
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.148 1998/07/18 18:34:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -129,7 +129,7 @@ static int
tableList(PsqlSettings *pset, bool deep_tablelist,
char info_type, bool system_tables);
static int tableDesc(PsqlSettings *pset, char *table, FILE *fout);
static int objectDescription(PsqlSettings *pset, char *object, FILE *fout);
static int objectDescription(PsqlSettings *pset, char *object);
static int rightsList(PsqlSettings *pset);
static void prompt_for_password(char *username, char *password);
static char *
@ -144,9 +144,7 @@ static void
SendQuery(bool *success_p, PsqlSettings *pset, const char *query,
const bool copy_in, const bool copy_out, FILE *copystream);
static int
HandleSlashCmds(PsqlSettings *pset,
char *line,
char *query);
HandleSlashCmds(PsqlSettings *pset, char *line, char *query);
static int MainLoop(PsqlSettings *pset, char *query, FILE *source);
static FILE *setFout(PsqlSettings *pset, char *fname);
@ -626,8 +624,7 @@ tableDesc(PsqlSettings *pset, char *table, FILE *fout)
char *pagerenv;
#ifdef TIOCGWINSZ
if (fout == NULL &&
pset->notty == 0 &&
if (pset->notty == 0 &&
(ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) == -1 ||
screen_size.ws_col == 0 ||
screen_size.ws_row == 0))
@ -653,7 +650,7 @@ tableDesc(PsqlSettings *pset, char *table, FILE *fout)
}
else
{
#ifdef MB
#ifdef MULTIBYTE
for (i = 0; table[i]; i += PQmblen(table+i))
#else
for (i = 0; table[i]; i++)
@ -790,29 +787,13 @@ tableDesc(PsqlSettings *pset, char *table, FILE *fout)
*
*/
int
objectDescription(PsqlSettings *pset, char *object, FILE *fout)
objectDescription(PsqlSettings *pset, char *object)
{
char descbuf[512];
int nDescriptions;
int i;
PGresult *res;
int usePipe = 0;
char *pagerenv;
#ifdef TIOCGWINSZ
if (fout == NULL &&
pset->notty == 0 &&
(ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) == -1 ||
screen_size.ws_col == 0 ||
screen_size.ws_row == 0))
{
#endif
screen_size.ws_row = 24;
screen_size.ws_col = 80;
#ifdef TIOCGWINSZ
}
#endif
int i;
bool success;
/* Build the query */
while (isspace(*object))
@ -830,7 +811,7 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
}
else
{
#ifdef MB
#ifdef MULTIBYTE
for (i = 0; object[i]; i += PQmblen(object+i))
#else
for (i = 0; object[i]; i++)
@ -866,7 +847,7 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
{
strcat(descbuf, "SELECT DISTINCT description ");
strcat(descbuf, "FROM pg_class, pg_description ");
strcat(descbuf, "WHERE pg_class.relname = '");
strcat(descbuf, "WHERE pg_class.relname ~ '^");
strcat(descbuf, object);
strcat(descbuf, "'");
strcat(descbuf, " and pg_class.oid = pg_description.objoid ");
@ -878,7 +859,7 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
descbuf[0] = '\0';
strcat(descbuf, "SELECT DISTINCT description ");
strcat(descbuf, "FROM pg_type, pg_description ");
strcat(descbuf, "WHERE pg_type.typname = '");
strcat(descbuf, "WHERE pg_type.typname ~ '^");
strcat(descbuf, object);
strcat(descbuf, "' and ");
strcat(descbuf, " pg_type.oid = pg_description.objoid ");
@ -890,7 +871,7 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
descbuf[0] = '\0';
strcat(descbuf, "SELECT DISTINCT description ");
strcat(descbuf, "FROM pg_proc, pg_description ");
strcat(descbuf, "WHERE pg_proc.proname = '");
strcat(descbuf, "WHERE pg_proc.proname ~ '^");
strcat(descbuf, object);
strcat(descbuf, "'");
strcat(descbuf, " and pg_proc.oid = pg_description.objoid ");
@ -902,7 +883,7 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
descbuf[0] = '\0';
strcat(descbuf, "SELECT DISTINCT description ");
strcat(descbuf, "FROM pg_operator, pg_description ");
strcat(descbuf, "WHERE pg_operator.oprname = '");
strcat(descbuf, "WHERE pg_operator.oprname ~ '^");
strcat(descbuf, object);
strcat(descbuf, "'");
/* operator descriptions are attached to the proc */
@ -915,59 +896,31 @@ objectDescription(PsqlSettings *pset, char *object, FILE *fout)
descbuf[0] = '\0';
strcat(descbuf, "SELECT DISTINCT description ");
strcat(descbuf, "FROM pg_aggregate, pg_description ");
strcat(descbuf, "WHERE pg_aggregate.aggname = '");
strcat(descbuf, "WHERE pg_aggregate.aggname ~ '^");
strcat(descbuf, object);
strcat(descbuf, "'");
strcat(descbuf, " and pg_aggregate.oid = pg_description.objoid ");
if (!(res = PSQLexec(pset, descbuf)))
return -1;
else if (PQntuples(res) <= 0)
{
PQclear(res);
descbuf[0] = '\0';
strcat(descbuf, "SELECT 'no description' as description ");
if (!(res = PSQLexec(pset, descbuf)))
return -1;
}
}
}
}
}
}
nDescriptions = PQntuples(res);
if (nDescriptions > 0)
{
if (fout == NULL)
{
if (pset->notty == 0 &&
(pagerenv = getenv("PAGER")) &&
pagerenv[0] != '\0' &&
screen_size.ws_row <= nDescriptions + 1 &&
(fout = popen(pagerenv, "w")))
{
usePipe = 1;
pqsignal(SIGPIPE, SIG_IGN);
}
else
fout = stdout;
}
/*
* * Display the information
*/
PQclear(res);
fprintf(fout, "\nObject = %s\n", object);
SendQuery(&success, pset, descbuf, false, false, NULL);
/* next, print out the instances */
for (i = 0; i < PQntuples(res); i++)
fprintf(fout, "%s\n", PQgetvalue(res, i, 0));
PQclear(res);
if (usePipe)
{
pclose(fout);
pqsignal(SIGPIPE, SIG_DFL);
}
return 0;
}
else
{
fprintf(stderr, "Couldn't find comments for object %s!\n", object);
return -1;
}
return 0;
}
typedef char *(*READ_ROUTINE) (char *prompt, FILE *source);
@ -1752,6 +1705,7 @@ HandleSlashCmds(PsqlSettings *pset,
case 'a': /* toggles to align fields on output */
toggle(pset, &pset->opt.align, "field alignment");
break;
case 'C': /* define new caption */
if (pset->opt.caption)
{
@ -1764,6 +1718,7 @@ HandleSlashCmds(PsqlSettings *pset,
exit(CMD_TERMINATE);
}
break;
case 'c':
{
if (strncmp(cmd, "copy ", strlen("copy ")) == 0 ||
@ -1815,32 +1770,83 @@ HandleSlashCmds(PsqlSettings *pset,
}
}
break;
case 'd': /* \d describe database information */
/*
* if the optarg2 name is surrounded by double-quotes, then don't
* convert case
*/
if (optarg2)
{
if (*optarg2 == '"')
{
optarg2++;
if (*(optarg2 + strlen(optarg2) - 1) == '"')
*(optarg2 + strlen(optarg2) - 1) = '\0';
}
else
{
int i;
#ifdef MULTIBYTE
for (i = 0; optarg2[i]; i += PQmblen(optarg2+i))
#else
for (i = 0; optarg2[i]; i++)
#endif
if (isupper(optarg2[i]))
optarg2[i] = tolower(optarg2[i]);
}
}
#ifdef TIOCGWINSZ
if (pset->notty == 0 &&
(ioctl(fileno(stdout), TIOCGWINSZ, &screen_size) == -1 ||
screen_size.ws_col == 0 ||
screen_size.ws_row == 0))
{
#endif
screen_size.ws_row = 24;
screen_size.ws_col = 80;
#ifdef TIOCGWINSZ
}
#endif
if (strncmp(cmd, "da", 2) == 0)
{
char descbuf[4096];
/* aggregates */
SendQuery(&success, pset, "\
SELECT a.aggname AS aggname, \
t.typname AS typname, \
obj_description(a.oid) as description \
FROM pg_aggregate a, pg_type t \
WHERE a.aggbasetype = t.oid \
ORDER BY aggname, typname;",
false, false, 0);
SendQuery(&success, pset, "\
SELECT a.aggname AS aggname, \
'all types' as all_types, \
obj_description(a.oid) as description \
FROM pg_aggregate a \
WHERE a.aggbasetype = 0 \
ORDER BY aggname;",
false, false, 0);
descbuf[0] = '\0';
strcat(descbuf, "SELECT a.aggname AS aggname, ");
strcat(descbuf, " t.typname AS type, ");
strcat(descbuf, " obj_description(a.oid) as description ");
strcat(descbuf, "FROM pg_aggregate a, pg_type t ");
strcat(descbuf, "WHERE a.aggbasetype = t.oid ");
if (optarg2)
{
strcat(descbuf, "AND a.aggname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "UNION ");
strcat(descbuf, "SELECT a.aggname AS aggname, ");
strcat(descbuf, " 'all types' as type, ");
strcat(descbuf, " obj_description(a.oid) as description ");
strcat(descbuf, "FROM pg_aggregate a ");
strcat(descbuf, "WHERE a.aggbasetype = 0 ");
if (optarg2)
{
strcat(descbuf, "AND a.aggname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "ORDER BY aggname, type;");
SendQuery(&success, pset, descbuf, false, false, NULL);
}
else if (strncmp(cmd, "dd", 2) == 0)
/* descriptions */
objectDescription(pset, optarg + 1, NULL);
objectDescription(pset, optarg + 1);
else if (strncmp(cmd, "df", 2) == 0)
{
char descbuf[4096];
/* functions/procedures */
/*
@ -1848,75 +1854,101 @@ HandleSlashCmds(PsqlSettings *pset,
* some arguments, but have no types defined for those
* arguments
*/
SendQuery(&success, pset, "\
SELECT t.typname as return_type, \
p.proname as function, \
substr(oid8types(p.proargtypes),1,20) as arguments, \
substr(obj_description(p.oid),1,28) as description \
FROM pg_proc p, pg_type t \
WHERE p.prorettype = t.oid and \
(pronargs = 0 or oid8types(p.proargtypes) != '') and \
t.typname != 'bool' \
ORDER BY return_type, function;",
false, false, 0);
SendQuery(&success, pset, "\
SELECT t.typname as rtns, \
p.proname as function, \
oid8types(p.proargtypes) as arguments, \
substr(obj_description(p.oid),1,34) as description \
FROM pg_proc p, pg_type t \
WHERE p.prorettype = t.oid and \
(pronargs = 0 or oid8types(p.proargtypes) != '') and \
t.typname = 'bool' \
ORDER BY rtns, function;",
false, false, 0);
descbuf[0] = '\0';
strcat(descbuf, "SELECT t.typname as result, ");
strcat(descbuf, " p.proname as function, ");
if (screen_size.ws_col <= 80)
strcat(descbuf, " substr(oid8types(p.proargtypes),1,14) as arguments, ");
else
strcat(descbuf, " oid8types(p.proargtypes) as arguments, ");
if (screen_size.ws_col <= 80)
strcat(descbuf, " substr(obj_description(p.oid),1,34) as description ");
else
strcat(descbuf, " obj_description(p.oid) as description ");
strcat(descbuf, "FROM pg_proc p, pg_type t ");
strcat(descbuf, "WHERE p.prorettype = t.oid and ");
strcat(descbuf, "(pronargs = 0 or oid8types(p.proargtypes) != '') ");
if (optarg2)
{
strcat(descbuf, "AND p.proname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "ORDER BY result, function, arguments;");
SendQuery(&success, pset, descbuf, false, false, NULL);
}
else if (strncmp(cmd, "di", 2) == 0)
/* only indices */
tableList(pset, false, 'i', false);
else if (strncmp(cmd, "do", 2) == 0)
{
char descbuf[4096];
/* operators */
SendQuery(&success, pset, "\
SELECT o.oprname AS op, \
t0.typname AS result, \
t1.typname AS left_type, \
t2.typname AS right_type, \
substr(obj_description(p.oid),1,42) as description \
FROM pg_proc p, pg_type t0, \
pg_type t1, pg_type t2, \
pg_operator o \
WHERE p.prorettype = t0.oid AND \
RegprocToOid(o.oprcode) = p.oid AND \
p.pronargs = 2 AND \
o.oprleft = t1.oid AND \
o.oprright = t2.oid \
ORDER BY op, result, left_type, right_type;",
false, false, 0);
SendQuery(&success, pset, "\
SELECT o.oprname AS left_unary, \
t0.typname AS return_type, \
t1.typname AS operand, \
obj_description(p.oid) as description \
FROM pg_operator o, pg_proc p, pg_type t0, pg_type t1 \
WHERE RegprocToOid(o.oprcode) = p.oid AND \
o.oprresult = t0.oid AND \
o.oprkind = 'l' AND \
o.oprright = t1.oid \
ORDER BY left_unary, return_type, operand;",
false, false, 0);
SendQuery(&success, pset, "\
SELECT o.oprname AS right_unary, \
t0.typname AS return_type, \
t1.typname AS operand, \
obj_description(p.oid) as description \
FROM pg_operator o, pg_proc p, pg_type t0, pg_type t1 \
WHERE RegprocToOid(o.oprcode) = p.oid AND \
o.oprresult = t0.oid AND \
o.oprkind = 'r' AND \
o.oprleft = t1.oid \
ORDER BY right_unary, return_type, operand;",
false, false, 0);
descbuf[0] = '\0';
strcat(descbuf, "SELECT o.oprname AS op, ");
strcat(descbuf, " t1.typname AS left_arg, ");
strcat(descbuf, " t2.typname AS right_arg, ");
strcat(descbuf, " t0.typname AS result, ");
if (screen_size.ws_col <= 80)
strcat(descbuf, " substr(obj_description(p.oid),1,41) as description ");
else
strcat(descbuf, " obj_description(p.oid) as description ");
strcat(descbuf, "FROM pg_proc p, pg_type t0, ");
strcat(descbuf, " pg_type t1, pg_type t2, ");
strcat(descbuf, " pg_operator o ");
strcat(descbuf, "WHERE p.prorettype = t0.oid AND ");
strcat(descbuf, " RegprocToOid(o.oprcode) = p.oid AND ");
strcat(descbuf, " p.pronargs = 2 AND ");
strcat(descbuf, " o.oprleft = t1.oid AND ");
strcat(descbuf, " o.oprright = t2.oid ");
if (optarg2)
{
strcat(descbuf, "AND o.oprname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "UNION ");
strcat(descbuf, "SELECT o.oprname as op, ");
strcat(descbuf, " ''::name AS left_arg, ");
strcat(descbuf, " t1.typname AS right_arg, ");
strcat(descbuf, " t0.typname AS result, ");
if (screen_size.ws_col <= 80)
strcat(descbuf, " substr(obj_description(p.oid),1,41) as description ");
else
strcat(descbuf, " obj_description(p.oid) as description ");
strcat(descbuf, "FROM pg_operator o, pg_proc p, pg_type t0, pg_type t1 ");
strcat(descbuf, "WHERE RegprocToOid(o.oprcode) = p.oid AND ");
strcat(descbuf, " o.oprresult = t0.oid AND ");
strcat(descbuf, " o.oprkind = 'l' AND ");
strcat(descbuf, " o.oprright = t1.oid ");
if (optarg2)
{
strcat(descbuf, "AND o.oprname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "UNION ");
strcat(descbuf, "SELECT o.oprname as op, ");
strcat(descbuf, " t1.typname AS left_arg, ");
strcat(descbuf, " ''::name AS right_arg, ");
strcat(descbuf, " t0.typname AS result, ");
if (screen_size.ws_col <= 80)
strcat(descbuf, " substr(obj_description(p.oid),1,41) as description ");
else
strcat(descbuf, " obj_description(p.oid) as description ");
strcat(descbuf, "FROM pg_operator o, pg_proc p, pg_type t0, pg_type t1 ");
strcat(descbuf, "WHERE RegprocToOid(o.oprcode) = p.oid AND ");
strcat(descbuf, " o.oprresult = t0.oid AND ");
strcat(descbuf, " o.oprkind = 'r' AND ");
strcat(descbuf, " o.oprleft = t1.oid ");
if (optarg2)
{
strcat(descbuf, "AND o.oprname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
strcat(descbuf, "ORDER BY op, left_arg, right_arg, result;");
SendQuery(&success, pset, descbuf, false, false, NULL);
}
else if (strncmp(cmd, "ds", 2) == 0)
/* only sequences */
@ -1928,15 +1960,25 @@ HandleSlashCmds(PsqlSettings *pset,
/* only tables */
tableList(pset, false, 't', false);
else if (strncmp(cmd, "dT", 2) == 0)
/* types */
SendQuery(&success, pset, "\
SELECT typname AS type, \
obj_description(oid) as description \
FROM pg_type \
WHERE typrelid = 0 AND \
typname !~ '^_.*' \
ORDER BY type;",
false, false, 0);
{
char descbuf[4096];
/* types */
descbuf[0] = '\0';
strcat(descbuf, "SELECT typname AS type, ");
strcat(descbuf, " obj_description(oid) as description ");
strcat(descbuf, "FROM pg_type ");
strcat(descbuf, "WHERE typrelid = 0 AND ");
strcat(descbuf, " typname !~ '^_.*' ");
strcat(descbuf, "ORDER BY type;");
if (optarg2)
{
strcat(descbuf, "AND typname ~ '^");
strcat(descbuf, optarg2);
strcat(descbuf, "' ");
}
SendQuery(&success, pset, descbuf, false, false, NULL);
}
else if (!optarg)
/* show tables, sequences and indices */
tableList(pset, false, 'b', false);
@ -1950,13 +1992,14 @@ HandleSlashCmds(PsqlSettings *pset,
tableDesc(pset, optarg, NULL);
else
slashUsage(pset);
break;
case 'e': /* edit */
{
do_edit(optarg, query, &status);
break;
}
case 'E':
{
FILE *fd;
@ -1999,6 +2042,7 @@ HandleSlashCmds(PsqlSettings *pset,
fclose(fd);
break;
}
case 'f':
{
char *fs = DEFAULT_FIELD_SEP;
@ -2036,11 +2080,13 @@ HandleSlashCmds(PsqlSettings *pset,
}
status = CMD_SEND;
break;
case 'h': /* help */
{
do_help(pset, optarg);
break;
}
case 'i': /* \i is include file */
{
FILE *fd;
@ -2059,16 +2105,20 @@ HandleSlashCmds(PsqlSettings *pset,
fclose(fd);
break;
}
case 'l': /* \l is list database */
listAllDbs(pset);
break;
case 'H':
if (toggle(pset, &pset->opt.html3, "HTML3.0 tabular output"))
pset->opt.standard = 0;
break;
case 'o':
setFout(pset, optarg);
break;
case 'p':
if (query)
{
@ -2076,14 +2126,17 @@ HandleSlashCmds(PsqlSettings *pset,
fputc('\n', stdout);
}
break;
case 'q': /* \q is quit */
status = CMD_TERMINATE;
break;
case 'r': /* reset(clear) the buffer */
query[0] = '\0';
if (!pset->quiet)
printf("buffer reset(cleared)\n");
break;
case 's': /* \s is save history to a file */
if (!optarg)
optarg = "/dev/tty";
@ -2092,6 +2145,7 @@ HandleSlashCmds(PsqlSettings *pset,
fprintf(stderr, "cannot write history to %s\n", optarg);
#endif
break;
case 'm': /* monitor like type-setting */
if (toggle(pset, &pset->opt.standard, "standard SQL separaters and padding"))
{
@ -2112,12 +2166,15 @@ HandleSlashCmds(PsqlSettings *pset,
printf("field separator changed to '%s'\n", pset->opt.fieldSep);
}
break;
case 'z': /* list table rights (grant/revoke) */
rightsList(pset);
break;
case 't': /* toggle headers */
toggle(pset, &pset->opt.header, "output headings and row count");
break;
case 'T': /* define html <table ...> option */
if (pset->opt.tableOpt)
free(pset->opt.tableOpt);
@ -2129,20 +2186,23 @@ HandleSlashCmds(PsqlSettings *pset,
exit(CMD_TERMINATE);
}
break;
case 'x':
toggle(pset, &pset->opt.expanded, "expanded table representation");
break;
case '!':
do_shell(optarg);
break;
default:
case '?': /* \? is help */
slashUsage(pset);
break;
}
free(cmd);
return status;
} /* HandleSlashCmds() */
}
/* MainLoop()
* Main processing loop for reading lines of input
@ -2311,7 +2371,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
if (pset->singleLineMode)
{
SendQuery(&success, pset, line, false, false, 0);
SendQuery(&success, pset, line, false, false, NULL);
successResult &= success;
querySent = true;
}
@ -2319,12 +2379,12 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
{
int i;
#ifdef MB
#ifdef MULTIBYTE
int mblen = 1;
#endif
was_bslash = false;
#ifdef MB
#ifdef MULTIBYTE
for (i = 0; i < len; mblen=PQmblen(line+i), i+=mblen)
#else
for (i = 0; i < len; i++)
@ -2362,7 +2422,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
if (was_bslash)
was_bslash = false;
#ifdef MB
#ifdef MULTIBYTE
else if (i > 0 && line[i - mblen] == '\\')
#else
else if (i > 0 && line[i - 1] == '\\')
@ -2375,14 +2435,14 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
else if (xcomment != NULL) /* inside an extended
* comment? */
{
#ifdef MB
#ifdef MULTIBYTE
if (line[i] == '*' && line[i + mblen] == '/')
#else
if (line[i] == '*' && line[i + 1] == '/')
#endif
{
xcomment = NULL;
#ifdef MB
#ifdef MULTIBYTE
i += mblen;
#else
i++;
@ -2390,21 +2450,21 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
}
}
/* possible backslash command? */
#ifdef MB
#ifdef MULTIBYTE
else if (line[i] == '/' && line[i + mblen] == '*')
#else
else if (line[i] == '/' && line[i + 1] == '*')
#endif
{
xcomment = line + i;
#ifdef MB
#ifdef MULTIBYTE
i += mblen;
#else
i++;
#endif
}
/* single-line comment? truncate line */
#ifdef MB
#ifdef MULTIBYTE
else if ((line[i] == '-' && line[i + mblen] == '-') ||
(line[i] == '/' && line[i + mblen] == '/'))
#else
@ -2436,7 +2496,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
else
strcpy(query, query_start);
}
SendQuery(&success, pset, query, false, false, 0);
SendQuery(&success, pset, query, false, false, NULL);
successResult &= success;
line[i + 1] = hold_char;
query_start = line + i + 1;
@ -2509,7 +2569,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
/* had a backslash-g? force the query to be sent */
if (slashCmdStatus == CMD_SEND)
{
SendQuery(&success, pset, query, false, false, 0);
SendQuery(&success, pset, query, false, false, NULL);
successResult &= success;
xcomment = NULL;
in_quote = false;
@ -2745,7 +2805,7 @@ main(int argc, char **argv)
{
bool success;/* The query succeeded at the backend */
SendQuery(&success, &settings, singleQuery, false, false, 0);
SendQuery(&success, &settings, singleQuery, false, false, NULL);
successResult = success;
}
else

View File

@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: psqlHelp.h,v 1.45 1998/07/12 04:49:47 momjian Exp $
* $Id: psqlHelp.h,v 1.46 1998/07/18 18:34:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -263,7 +263,7 @@ static struct _helpStruct QL_HELP[] = {
"notify <class_name>"},
{"reset",
"set run-time environment back to default",
#ifdef MB
#ifdef MULTIBYTE
"reset {DateStyle | GEQO | R_PLANS | CLIENT_ENCODING}"},
#else
"reset {DateStyle | GEQO | R_PLANS}"},
@ -288,7 +288,7 @@ static struct _helpStruct QL_HELP[] = {
\t[union [all] select ...];"},
{"set",
"set run-time environment",
#ifdef MB
#ifdef MULTIBYTE
"set DateStyle to {'ISO' | 'SQL' | 'Postgres' | 'European' | 'US' | 'NonEuropean'}\n\
set GEQO to {'ON[=#]' | 'OFF'}\n\
set R_PLANS to {'ON' | 'OFF'}\n\
@ -300,7 +300,7 @@ set R_PLANS to {'ON' | 'OFF'}"},
#endif
{"show",
"show current run-time environment",
#ifdef MB
#ifdef MULTIBYTE
"show {DateStyle | GEQO | R_PLANS | CLIENT_ENCODING}"},
#else
"show {DateStyle | GEQO | R_PLANS}"},

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: pg_proc.h,v 1.61 1998/07/08 14:08:59 thomas Exp $
* $Id: pg_proc.h,v 1.62 1998/07/18 18:34:17 momjian Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@ -151,35 +151,35 @@ DESCR("less-than");
DATA(insert OID = 57 ( boolgt PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 60 ( booleq PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 61 ( chareq PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 62 ( nameeq PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 63 ( int2eq PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 64 ( int2lt PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 65 ( int4eq PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 66 ( int4lt PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 67 ( texteq PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 68 ( xideq PGUID 11 f t f 2 f 16 "28 28" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 69 ( cideq PGUID 11 f t f 2 f 16 "29 29" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 70 ( charne PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1246 ( charlt PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 72 ( charle PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 73 ( chargt PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 74 ( charge PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1248 ( charpl PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
DESCR("addition");
DATA(insert OID = 1250 ( charmi PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
@ -223,7 +223,7 @@ DESCR("btree");
DATA(insert OID = 1272 ( eqsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
DESCR("general selectivity");
DATA(insert OID = 102 ( neqsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
DESCR("not-equals selectivity");
DESCR("not-equal selectivity");
DATA(insert OID = 103 ( intltsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
DESCR("selectivity");
DATA(insert OID = 104 ( intgtsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
@ -268,15 +268,15 @@ DESCR("(internal)");
DATA(insert OID = 125 ( box_overlap PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("overlaps");
DATA(insert OID = 126 ( box_ge PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 127 ( box_gt PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 128 ( box_eq PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 129 ( box_lt PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 130 ( box_le PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 131 ( point_above PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
DESCR("is above");
DATA(insert OID = 132 ( point_left PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
@ -312,13 +312,13 @@ DESCR("greater-than");
DATA(insert OID = 147 ( int4gt PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 148 ( int2le PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 149 ( int4le PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 150 ( int4ge PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 151 ( int2ge PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 152 ( int2mul PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
DESCR("multiply");
DATA(insert OID = 153 ( int2div PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
@ -332,9 +332,9 @@ DESCR("modulus");
DATA(insert OID = 157 ( textne PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("not equal");
DATA(insert OID = 158 ( int24eq PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 159 ( int42eq PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 160 ( int24lt PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 161 ( int42lt PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
@ -348,13 +348,13 @@ DESCR("not equal");
DATA(insert OID = 165 ( int42ne PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 166 ( int24le PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 167 ( int42le PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 168 ( int24ge PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 169 ( int42ge PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 170 ( int24mul PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
DESCR("multiply");
DATA(insert OID = 171 ( int42mul PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
@ -384,7 +384,7 @@ DESCR("subtract");
DATA(insert OID = 183 ( int42mi PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
DESCR("subtract");
DATA(insert OID = 184 ( oideq PGUID 11 f t f 2 f 16 "26 26" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 185 ( oidne PGUID 11 f t f 2 f 16 "26 26" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 186 ( box_same PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
@ -525,7 +525,7 @@ DESCR("");
DATA(insert OID = 250 ( timenow PGUID 11 f t f 0 f 702 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 251 ( abstimeeq PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 252 ( abstimene PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 253 ( abstimelt PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
@ -533,11 +533,11 @@ DESCR("less-than");
DATA(insert OID = 254 ( abstimegt PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 255 ( abstimele PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 256 ( abstimege PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 257 ( reltimeeq PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 258 ( reltimene PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 259 ( reltimelt PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
@ -545,9 +545,9 @@ DESCR("less-than");
DATA(insert OID = 260 ( reltimegt PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 261 ( reltimele PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 262 ( reltimege PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 263 ( intervalsame PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("same as");
DATA(insert OID = 264 ( intervalct PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
@ -555,7 +555,7 @@ DESCR("less-than");
DATA(insert OID = 265 ( intervalov PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("overlaps");
DATA(insert OID = 266 ( intervalleneq PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
DESCR("length equals");
DESCR("length equal");
DATA(insert OID = 267 ( intervallenne PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
DESCR("length not equal to");
DATA(insert OID = 268 ( intervallenlt PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
@ -563,9 +563,9 @@ DESCR("length less-than");
DATA(insert OID = 269 ( intervallengt PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
DESCR("length greater-than");
DATA(insert OID = 270 ( intervallenle PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
DESCR("length less-than-or-equals");
DESCR("length less-than-or-equal");
DATA(insert OID = 271 ( intervallenge PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
DESCR("length greater-than-or-equals");
DESCR("length greater-than-or-equal");
DATA(insert OID = 272 ( intervalstart PGUID 11 f t f 1 f 702 "704" 100 0 0 100 foo bar ));
DESCR("start of interval");
DATA(insert OID = 273 ( intervalend PGUID 11 f t f 1 f 702 "704" 100 0 0 100 foo bar ));
@ -601,33 +601,33 @@ DATA(insert OID = 286 ( float84mi PGUID 11 f t f 2 f 701 "701 700" 100 0 0
DESCR("subtract");
DATA(insert OID = 287 ( float4eq PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 288 ( float4ne PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 289 ( float4lt PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 290 ( float4le PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 291 ( float4gt PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 292 ( float4ge PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 293 ( float8eq PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 294 ( float8ne PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 295 ( float8lt PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 296 ( float8le PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 297 ( float8gt PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 298 ( float8ge PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 299 ( float48eq PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
/* OIDS 300 - 399 */
@ -636,23 +636,23 @@ DESCR("not equal");
DATA(insert OID = 301 ( float48lt PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 302 ( float48le PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 303 ( float48gt PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 304 ( float48ge PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 305 ( float84eq PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 306 ( float84ne PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 307 ( float84lt PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 308 ( float84le PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 309 ( float84gt PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 310 ( float84ge PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 311 ( ftod PGUID 11 f t f 1 f 701 "700" 100 0 0 100 foo bar ));
DESCR("convert");
@ -855,9 +855,9 @@ DESCR("less-than");
DATA(insert OID = 470 ( int8gt PGUID 11 f t f 2 f 16 "20 20" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 471 ( int8le PGUID 11 f t f 2 f 16 "20 20" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 472 ( int8ge PGUID 11 f t f 2 f 16 "20 20" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 474 ( int84eq PGUID 11 f t f 2 f 16 "20 23" 100 0 0 100 foo bar ));
DESCR("equal");
@ -868,9 +868,9 @@ DESCR("less-than");
DATA(insert OID = 477 ( int84gt PGUID 11 f t f 2 f 16 "20 23" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 478 ( int84le PGUID 11 f t f 2 f 16 "20 23" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 479 ( int84ge PGUID 11 f t f 2 f 16 "20 23" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 480 ( int84 PGUID 11 f t f 1 f 23 "20" 100 0 0 100 foo bar ));
DESCR("convert int8 to int4");
@ -896,11 +896,11 @@ DESCR("(internal)");
DATA(insert OID = 655 ( namelt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 656 ( namele PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 657 ( namegt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 658 ( namege PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 659 ( namene PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
DESCR("not equal");
@ -910,7 +910,7 @@ DATA(insert OID = 669 ( varchar PGUID 11 f t f 2 f 1043 "1043 23" 100 0 0 1
DATA(insert OID = 682 ( mktinterval PGUID 11 f t f 2 f 704 "702 702" 100 0 0 100 foo bar ));
DESCR("convert to interval");
DATA(insert OID = 683 ( oid8eq PGUID 11 f t f 2 f 16 "30 30" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
/* OIDS 700 - 799 */
DATA(insert OID = 710 ( getpgusername PGUID 11 f t f 0 f 19 "0" 100 0 0 100 foo bar ));
@ -922,9 +922,9 @@ DESCR("random");
DATA(insert OID = 715 ( oidsrand PGUID 11 f t f 1 f 16 "23" 100 0 0 100 foo bar ));
DESCR("seed random number generator");
DATA(insert OID = 716 ( oideqint4 PGUID 11 f t f 2 f 16 "26 23" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 717 ( int4eqoid PGUID 11 f t f 2 f 16 "23 26" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 720 ( byteaGetSize PGUID 11 f t f 1 f 23 "17" 100 0 0 100 foo bar ));
DESCR("");
@ -954,14 +954,14 @@ DESCR("");
DATA(insert OID = 740 ( text_lt PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("less-than");
DATA(insert OID = 741 ( text_le PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 742 ( text_gt PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("greater-than");
DATA(insert OID = 743 ( text_ge PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 744 ( array_eq PGUID 11 f t f 2 f 16 "0 0" 100 0 0 100 foo bar));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 745 ( array_assgn PGUID 11 f t f 8 f 23 "0 23 0 0 0 23 23 0" 100 0 0 100 foo bar));
DESCR("array");
DATA(insert OID = 746 ( array_clip PGUID 11 f t f 7 f 23 "0 23 0 0 23 23 0" 100 0 0 100 foo bar));
@ -1032,7 +1032,7 @@ DATA(insert OID = 782 ( gistbuild PGUID 11 f t f 9 f 23 "0" 100 0 0 100 fo
DESCR("gist(internal)");
DATA(insert OID = 784 ( intervaleq PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 785 ( intervalne PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 786 ( intervallt PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
@ -1040,9 +1040,9 @@ DESCR("less-than");
DATA(insert OID = 787 ( intervalgt PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 788 ( intervalle PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 789 ( intervalge PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
/* OIDS 800 - 899 */
@ -1060,11 +1060,11 @@ DESCR("(internal)");
DATA(insert OID = 822 ( oidint2lt PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
DESCR("less-than");
DATA(insert OID = 823 ( oidint2le PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 824 ( oidint2eq PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 825 ( oidint2ge PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 826 ( oidint2gt PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
DESCR("greater-than");
DATA(insert OID = 827 ( oidint2ne PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
@ -1101,9 +1101,9 @@ DESCR("less-than");
DATA(insert OID = 855 ( int48gt PGUID 11 f t f 2 f 16 "21 20" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 856 ( int48le PGUID 11 f t f 2 f 16 "21 20" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 857 ( int48ge PGUID 11 f t f 2 f 16 "21 20" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 860 ( char_bpchar PGUID 11 f t f 1 f 1042 "18" 100 0 0 100 foo bar ));
DESCR("convert to bpchar");
@ -1130,17 +1130,17 @@ DESCR("(internal)");
DATA(insert OID = 1273 ( cash_words_out PGUID 11 f t f 1 f 25 "790" 100 0 0 100 foo bar ));
DESCR("output amount as words");
DATA(insert OID = 888 ( cash_eq PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 889 ( cash_ne PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 890 ( cash_lt PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 891 ( cash_le PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 892 ( cash_gt PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 893 ( cash_ge PGUID 11 f t f 2 f 16 "790 790" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 894 ( cash_pl PGUID 11 f t f 2 f 790 "790 790" 100 0 0 100 foo bar ));
DESCR("addition");
DATA(insert OID = 895 ( cash_mi PGUID 11 f t f 2 f 790 "790 790" 100 0 0 100 foo bar ));
@ -1166,11 +1166,11 @@ DESCR("(internal)");
DATA(insert OID = 922 ( oidint4lt PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
DESCR("less-than");
DATA(insert OID = 923 ( oidint4le PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 924 ( oidint4eq PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 925 ( oidint4ge PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 926 ( oidint4gt PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
DESCR("greater-than");
DATA(insert OID = 927 ( oidint4ne PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
@ -1197,11 +1197,11 @@ DESCR("(internal)");
DATA(insert OID = 942 ( oidnamelt PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
DESCR("less-than");
DATA(insert OID = 943 ( oidnamele PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 944 ( oidnameeq PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 945 ( oidnamege PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 946 ( oidnamegt PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
DESCR("greater-than");
DATA(insert OID = 947 ( oidnamene PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
@ -1266,11 +1266,11 @@ DESCR("less-than");
DATA(insert OID = 983 ( path_n_gt PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 984 ( path_n_eq PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 985 ( path_n_le PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 986 ( path_n_ge PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 987 ( path_length PGUID 11 f t f 1 f 701 "602" 100 0 1 0 foo bar ));
DESCR("sum of path segments");
DATA(insert OID = 988 ( point_ne PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
@ -1296,7 +1296,7 @@ DESCR("is vertical");
DATA(insert OID = 998 ( lseg_horizontal PGUID 11 f t f 1 f 16 "601" 100 0 0 100 foo bar ));
DESCR("is horizontal");
DATA(insert OID = 999 ( lseg_eq PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
/* OIDS 1000 - 1999 */
@ -1325,27 +1325,27 @@ DESCR("(internal)");
DATA(insert OID = 1047 ( varcharout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 1048 ( bpchareq PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1049 ( bpcharlt PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1050 ( bpcharle PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1051 ( bpchargt PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1052 ( bpcharge PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1053 ( bpcharne PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1070 ( varchareq PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1071 ( varcharlt PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1072 ( varcharle PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1073 ( varchargt PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1074 ( varcharge PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1075 ( varcharne PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1078 ( bpcharcmp PGUID 11 f t f 2 f 23 "1042 1042" 100 0 0 100 foo bar ));
@ -1362,15 +1362,15 @@ DESCR("(internal)");
DATA(insert OID = 1085 ( date_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 1086 ( date_eq PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1087 ( date_lt PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1088 ( date_le PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1089 ( date_gt PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1090 ( date_ge PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1091 ( date_ne PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1092 ( date_cmp PGUID 11 f t f 2 f 23 "1082 1082" 100 0 0 100 foo bar ));
@ -1381,11 +1381,11 @@ DESCR("less-equal-greater");
DATA(insert OID = 1102 ( time_lt PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1103 ( time_le PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1104 ( time_gt PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1105 ( time_ge PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1106 ( time_ne PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1107 ( time_cmp PGUID 11 f t f 2 f 23 "1083 1083" 100 0 0 100 foo bar ));
@ -1405,7 +1405,7 @@ DESCR("(internal)");
DATA(insert OID = 1144 ( time_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 1145 ( time_eq PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1146 ( circle_add_pt PGUID 11 f t f 2 f 718 "718 600" 100 0 0 100 foo bar ));
DESCR("addition");
@ -1421,15 +1421,15 @@ DESCR("(internal)");
DATA(insert OID = 1151 ( datetime_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 1152 ( datetime_eq PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1153 ( datetime_ne PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1154 ( datetime_lt PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1155 ( datetime_le PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1156 ( datetime_ge PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1157 ( datetime_gt PGUID 11 f t f 2 f 16 "1184 1184" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1158 ( datetime_finite PGUID 11 f t f 1 f 16 "1184" 100 0 0 100 foo bar ));
@ -1442,15 +1442,15 @@ DESCR("(internal)");
DATA(insert OID = 1161 ( timespan_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
DESCR("(internal)");
DATA(insert OID = 1162 ( timespan_eq PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1163 ( timespan_ne PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1164 ( timespan_lt PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1165 ( timespan_le PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1166 ( timespan_ge PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1167 ( timespan_gt PGUID 11 f t f 2 f 16 "1186 1186" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1168 ( timespan_um PGUID 11 f t f 1 f 1186 "1186" 100 0 0 100 foo bar ));
@ -1576,7 +1576,7 @@ DESCR("current transaction time");
/* OIDS 1300 - 1399 */
DATA(insert OID = 1306 ( timestampeq PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1307 ( timestampne PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
DESCR("not equal");
DATA(insert OID = 1308 ( timestamplt PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
@ -1584,9 +1584,9 @@ DESCR("less-than");
DATA(insert OID = 1309 ( timestampgt PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1310 ( timestample PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1311 ( timestampge PGUID 11 f t f 2 f 16 "1296 1296" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1314 ( datetime_cmp PGUID 11 f t f 2 f 23 "1184 1184" 100 0 0 100 foo bar ));
DESCR("less-equal-greater");
DATA(insert OID = 1315 ( timespan_cmp PGUID 11 f t f 2 f 23 "1186 1186" 100 0 0 100 foo bar ));
@ -1849,7 +1849,7 @@ DESCR("is below");
DATA(insert OID = 1461 ( circle_above PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("is above");
DATA(insert OID = 1462 ( circle_eq PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("equals");
DESCR("equal");
DATA(insert OID = 1463 ( circle_ne PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("not equal");
DATA(insert OID = 1464 ( circle_lt PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
@ -1857,9 +1857,9 @@ DESCR("less-than");
DATA(insert OID = 1465 ( circle_gt PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1466 ( circle_le PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1467 ( circle_ge PGUID 11 f t f 2 f 16 "718 718" 100 0 1 0 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1468 ( circle_area PGUID 11 f t f 1 f 701 "718" 100 0 1 0 foo bar ));
DESCR("area");
DATA(insert OID = 1469 ( circle_diameter PGUID 11 f t f 1 f 701 "718" 100 0 1 0 foo bar ));
@ -1895,11 +1895,11 @@ DESCR("not equal");
DATA(insert OID = 1483 ( lseg_lt PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
DESCR("less-than");
DATA(insert OID = 1484 ( lseg_le PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
DESCR("less-than-or-equals");
DESCR("less-than-or-equal");
DATA(insert OID = 1485 ( lseg_gt PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
DESCR("greater-than");
DATA(insert OID = 1486 ( lseg_ge PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
DESCR("greater-than-or-equals");
DESCR("greater-than-or-equal");
DATA(insert OID = 1487 ( lseg_length PGUID 11 f t f 1 f 701 "601" 100 0 1 0 foo bar ));
DESCR("distance between endpoints");
DATA(insert OID = 1488 ( close_ls PGUID 11 f t f 2 f 600 "628 601" 100 0 10 100 foo bar ));

View File

@ -2,7 +2,7 @@
* Headers for handling of 'SET var TO', 'SHOW var' and 'RESET var'
* statements
*
* $Id: variable.h,v 1.3 1998/06/16 07:29:40 momjian Exp $
* $Id: variable.h,v 1.4 1998/07/18 18:34:21 momjian Exp $
*
*/
#ifndef VARIABLE_H
@ -54,7 +54,7 @@ extern bool set_geqo(void);
extern bool show_geqo(void);
extern bool reset_geqo(void);
extern bool parse_geqo(const char *);
#ifdef MB
#ifdef MULTIBYTE
extern bool show_client_encoding(void);
extern bool reset_client_encoding(void);
extern bool parse_client_encoding(const char *);

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: libpq.h,v 1.18 1998/07/13 16:34:53 momjian Exp $
* $Id: libpq.h,v 1.19 1998/07/18 18:34:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -270,7 +270,7 @@ extern void pq_putint(int i, int b);
extern int pq_getinaddr(struct sockaddr_in * sin, char *host, int port);
extern int pq_getinserv(struct sockaddr_in * sin, char *host, char *serv);
#ifdef MB
#ifdef MULTIBYTE
extern void pq_putncharlen(char *s, int n);
#endif

View File

@ -1,4 +1,4 @@
/* $Id: pg_wchar.h,v 1.3 1998/06/16 07:29:43 momjian Exp $ */
/* $Id: pg_wchar.h,v 1.4 1998/07/18 18:34:24 momjian Exp $ */
#ifndef PG_WCHAR_H
#define PG_WCHAR_H
@ -19,8 +19,8 @@
/* followings are for client encoding only */
#define SJIS 16 /* Shift JIS */
#ifdef MB
# if LATIN1 <= MB && MB <= LATIN5
#ifdef MULTIBYTE
# if LATIN1 <= MULTIBYTE && MULTIBYTE <= LATIN5
typedef unsigned char pg_wchar;
# else
typedef unsigned int pg_wchar;
@ -65,7 +65,7 @@ typedef unsigned int pg_wchar;
#define LC_CNS11643_6 0xf9 /* CNS 11643-1992 Plane 6 */
#define LC_CNS11643_7 0xfa /* CNS 11643-1992 Plane 7 */
#ifdef MB
#ifdef MULTIBYTE
extern void pg_mb2wchar(const unsigned char *, pg_wchar *);
extern void pg_mb2wchar_with_len(const unsigned char *, pg_wchar *, int);
extern int pg_char_and_wchar_strcmp(const char *, const pg_wchar *);

View File

@ -52,7 +52,7 @@ typedef struct
size_t re_nsub; /* number of parenthesized subexpressions */
const pg_wchar *re_endp; /* end pointer for REG_PEND */
struct re_guts *re_g; /* none of your business :-) */
#ifdef MB
#ifdef MULTIBYTE
pg_wchar *patsave; /* mee too :-) */
#endif

View File

@ -127,7 +127,7 @@ typedef struct
{
uch *ptr; /* -> uch [csetsize] */
uch mask; /* bit within array */
#ifdef MB
#ifdef MULTIBYTE
pg_wchar hash; /* hash code */
unsigned int lc; /* leading character (character-set) */
#else
@ -138,7 +138,7 @@ typedef struct
} cset;
/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */
#ifdef MB
#ifdef MULTIBYTE
#define CHlc(c) (((unsigned)(c)&0xff0000)>>16)
#define CHadd(cs, c) ((cs)->ptr[(unsigned)(c)&0xffff] |= (cs)->mask, (cs)->hash += (unsigned)(c)&0xffff,\
(cs)->lc = CHlc(c))
@ -196,12 +196,12 @@ struct re_guts
};
/* misc utilities */
#ifdef MB
# if MB == MULE_INTERNAL
#ifdef MULTIBYTE
# if MULTIBYTE == MULE_INTERNAL
# define OUT (16777216+1) /* 16777216 == 2^24 == 3 bytes */
# elif MB == EUC_JP || MB == EUC_CN || MB == EUC_KR || MB == EUC_TW
# elif MULTIBYTE == EUC_JP || MULTIBYTE == EUC_CN || MULTIBYTE == EUC_KR || MULTIBYTE == EUC_TW
# define OUT (USHRT_MAX+1) /* 2 bytes */
# elif MB == UNICODE
# elif MULTIBYTE == UNICODE
# define OUT (USHRT_MAX+1) /* 2 bytes. assuming UCS-2 */
# else
# define OUT (UCHAR_MAX+1) /* other codes. assuming 1 byte */
@ -210,7 +210,7 @@ struct re_guts
# define OUT (CHAR_MAX+1) /* a non-character value */
#endif
#ifdef MB
#ifdef MULTIBYTE
#define ISWORD(c) ((c >= 0 && c <= UCHAR_MAX) && \
(isalnum(c) || (c) == '_'))
#else

View File

@ -43,7 +43,7 @@
#define DUPMAX 100000000 /* xxx is this right? */
#define INFINITY (DUPMAX + 1)
#ifdef MB
#ifdef MULTIBYTE
#define NC (SHRT_MAX - SHRT_MIN + 1)
#else
#define NC (CHAR_MAX - CHAR_MIN + 1)

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.74 1998/07/09 03:32:10 scrappy Exp $
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.75 1998/07/18 18:34:30 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -124,7 +124,7 @@ struct EnvironmentOptions
{
"PGTZ", "timezone"
},
#ifdef MB
#ifdef MULTIBYTE
{
"PGCLIENTENCODING", "client_encoding"
},

View File

@ -9,7 +9,7 @@
* didn't really belong there.
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.6 1998/07/03 04:24:15 momjian Exp $
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.7 1998/07/18 18:34:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -35,7 +35,7 @@
#endif
#endif /* WIN32 */
#ifdef MB
#ifdef MULTIBYTE
#include "regex/pg_wchar.h"
#include "commands/variable.h"
#endif
@ -494,7 +494,7 @@ PQprintTuples(PGresult *res,
}
}
#ifdef MB
#ifdef MULTIBYTE
/*
* returns the byte length of the word beginning s.
* Client side encoding is determined by the environment variable
@ -512,7 +512,7 @@ int PQmblen(unsigned char *s)
encoding = pg_char_to_encoding(str);
}
if (encoding < 0) {
encoding = MB;
encoding = MULTIBYTE;
}
return(pg_encoding_mblen(encoding, s));
}
@ -551,7 +551,7 @@ do_field(PQprintOpt *po, PGresult *res,
if (!skipit)
{
#ifdef MB
#ifdef MULTIBYTE
int len;
for (p = pval, o = buf; *p;

View File

@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: libpq-fe.h,v 1.35 1998/07/14 02:41:25 momjian Exp $
* $Id: libpq-fe.h,v 1.36 1998/07/18 18:34:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -368,7 +368,7 @@ extern "C"
* 0, use variable width */
);
#ifdef MB
#ifdef MULTIBYTE
extern int PQmblen(unsigned char *s);
#endif