> > > This patches src/bin/psql/psql.c.

> > >
> > > This patch is in responce to the following TODO list item:
> > >  * have psql \d on a view show the query
> > > -Ryan
This commit is contained in:
Bruce Momjian 1999-03-15 02:18:37 +00:00
parent f621b85a2a
commit 265c283e1b
2 changed files with 36 additions and 12 deletions

View File

@ -23,7 +23,7 @@
#include "utils/builtins.h" /* where the function declarations go */
#include "mb/pg_wchar.h"
static int like(pg_wchar * text, pg_wchar * p);
static int like(pg_wchar *text, pg_wchar *p);
/*
* interface routines called by the function manager
@ -38,7 +38,7 @@ static int like(pg_wchar * text, pg_wchar * p);
charlen - the length of the string
*/
static bool
fixedlen_like(char *s, struct varlena * p, int charlen)
fixedlen_like(char *s, struct varlena *p, int charlen)
{
pg_wchar *sterm,
*pterm;
@ -83,7 +83,7 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
}
bool
namelike(NameData *n, struct varlena * p)
namelike(NameData *n, struct varlena *p)
{
if (!n)
return FALSE;
@ -91,13 +91,13 @@ namelike(NameData *n, struct varlena * p)
}
bool
namenlike(NameData *s, struct varlena * p)
namenlike(NameData *s, struct varlena *p)
{
return !namelike(s, p);
}
bool
textlike(struct varlena * s, struct varlena * p)
textlike(struct varlena *s, struct varlena *p)
{
if (!s)
return FALSE;
@ -105,13 +105,13 @@ textlike(struct varlena * s, struct varlena * p)
}
bool
textnlike(struct varlena * s, struct varlena * p)
textnlike(struct varlena *s, struct varlena *p)
{
return !textlike(s, p);
}
/* $Revision: 1.21 $
/* $Revision: 1.22 $
** "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.
@ -146,7 +146,7 @@ textnlike(struct varlena * s, struct varlena * p)
** Match text and p, return LIKE_TRUE, LIKE_FALSE, or LIKE_ABORT.
*/
static int
DoMatch(pg_wchar * text, pg_wchar * p)
DoMatch(pg_wchar *text, pg_wchar *p)
{
int matched;
@ -189,7 +189,7 @@ DoMatch(pg_wchar * text, pg_wchar * p)
** User-level routine. Returns TRUE or FALSE.
*/
static int
like(pg_wchar * text, pg_wchar * p)
like(pg_wchar *text, pg_wchar *p)
{
if (p[0] == '%' && p[1] == '\0')
return TRUE;

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.171 1999/02/21 03:49:39 scrappy Exp $
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.172 1999/03/15 02:18:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -761,10 +761,34 @@ tableDesc(PsqlSettings *pset, char *table, FILE *fout)
}
/*
* Display the information
* Extract the veiw name and veiw definition from pg_views.
* -Ryan 2/14/99
*/
fprintf(fout, "\nTable = %s\n", table);
descbuf[0] = '\0';
strcat(descbuf, "SELECT viewname, definition ");
strcat(descbuf, "FROM pg_views ");
strcat(descbuf, "WHERE viewname like '");
strcat(descbuf, table);
strcat(descbuf, "' ");
if(!(res2 = PSQLexec(pset, descbuf)))
return -1;
/*
* Display the information
*/
if(PQntuples(res2)) {
/*
* display the query.
* -Ryan 2/14/99
*/
fprintf(fout, "\nView = %s\n", table);
fprintf(fout, "Query = %s\n", PQgetvalue(res2, 0, 1));
} else {
fprintf(fout, "\nTable = %s\n", table);
}
PQclear(res2);
fprintf(fout, "+----------------------------------+----------------------------------+-------+\n");
fprintf(fout, "| Field | Type | Length|\n");
fprintf(fout, "+----------------------------------+----------------------------------+-------+\n");