Index: src/bin/psql/Makefile =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/psql/Makefile,v retrieving revision 1.38 diff -c -c -r1.38 Makefile *** src/bin/psql/Makefile 29 Nov 2003 19:52:06 -0000 1.38 --- src/bin/psql/Makefile 23 Dec 2003 14:55:38 -0000 *************** *** 15,33 **** REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref ! override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS) -DFRONTEND OBJS= command.o common.o help.o input.o stringutils.o mainloop.o copy.o \ startup.o prompt.o variables.o large_obj.o print.o describe.o \ ! tab-complete.o mbprint.o ! all: submake-libpq submake-libpgport psql psql: $(OBJS) $(libpq_builddir)/libpq.a ! $(CC) $(CFLAGS) $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@ help.o: $(srcdir)/sql_help.h ifdef PERL $(srcdir)/sql_help.h: create_help.pl $(wildcard $(REFDOCDIR)/*.sgml) $(PERL) $< $(REFDOCDIR) $@ --- 15,43 ---- REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref ! override CPPFLAGS := -I$(top_srcdir)/src/bin/pg_dump -I$(libpq_srcdir) $(CPPFLAGS) -DFRONTEND OBJS= command.o common.o help.o input.o stringutils.o mainloop.o copy.o \ startup.o prompt.o variables.o large_obj.o print.o describe.o \ ! tab-complete.o mbprint.o \ ! dumputils.o ! EXTRA_OBJS = $(top_builddir)/src/backend/parser/keywords.o ! ! all: submake-libpq submake-libpgport submake-backend psql psql: $(OBJS) $(libpq_builddir)/libpq.a ! $(CC) $(CFLAGS) $(OBJS) $(EXTRA_OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@ help.o: $(srcdir)/sql_help.h + dumputils.c: % : $(top_srcdir)/src/bin/pg_dump/% + rm -f $@ && $(LN_S) $< . + + .PHONY: submake-backend + submake-backend: + $(MAKE) -C $(top_builddir)/src/backend/parser keywords.o + ifdef PERL $(srcdir)/sql_help.h: create_help.pl $(wildcard $(REFDOCDIR)/*.sgml) $(PERL) $< $(REFDOCDIR) $@ *************** *** 35,40 **** --- 45,51 ---- $(srcdir)/sql_help.h: @echo "*** Perl is needed to build psql help." endif + distprep: $(srcdir)/sql_help.h Index: src/bin/psql/describe.c =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/psql/describe.c,v retrieving revision 1.90 diff -c -c -r1.90 describe.c *** src/bin/psql/describe.c 1 Dec 2003 22:21:54 -0000 1.90 --- src/bin/psql/describe.c 23 Dec 2003 14:55:39 -0000 *************** *** 16,21 **** --- 16,23 ---- #include "print.h" #include "variables.h" + #include "dumputils.h" + #include #ifdef WIN32 *************** *** 658,663 **** --- 660,667 ---- PQExpBufferData tmpbuf; int cols = 0; int numrows = 0; + char schema_rel_str[NAMEDATALEN * 2 + 6]; + struct { bool hasindex; *************** *** 812,851 **** #endif } /* Make title */ switch (tableinfo.relkind) { case 'r': ! printfPQExpBuffer(&title, _("Table \"%s.%s\""), ! schemaname, relationname); break; case 'v': ! printfPQExpBuffer(&title, _("View \"%s.%s\""), ! schemaname, relationname); break; case 'S': ! printfPQExpBuffer(&title, _("Sequence \"%s.%s\""), ! schemaname, relationname); break; case 'i': ! printfPQExpBuffer(&title, _("Index \"%s.%s\""), ! schemaname, relationname); break; case 's': ! printfPQExpBuffer(&title, _("Special relation \"%s.%s\""), ! schemaname, relationname); break; case 't': ! printfPQExpBuffer(&title, _("TOAST table \"%s.%s\""), ! schemaname, relationname); break; case 'c': ! printfPQExpBuffer(&title, _("Composite type \"%s.%s\""), ! schemaname, relationname); break; default: ! printfPQExpBuffer(&title, _("?%c? \"%s.%s\""), ! tableinfo.relkind, schemaname, relationname); break; } --- 816,852 ---- #endif } + + strcpy(schema_rel_str, fmtId(schemaname)); + strcat(schema_rel_str, "."); + strcat(schema_rel_str, fmtId(relationname)); + /* Make title */ switch (tableinfo.relkind) { case 'r': ! printfPQExpBuffer(&title, _("Table %s"), schema_rel_str); break; case 'v': ! printfPQExpBuffer(&title, _("View %s"), schema_rel_str); break; case 'S': ! printfPQExpBuffer(&title, _("Sequence %s"), schema_rel_str); break; case 'i': ! printfPQExpBuffer(&title, _("Index %s"), schema_rel_str); break; case 's': ! printfPQExpBuffer(&title, _("Special relation %s"), schema_rel_str); break; case 't': ! printfPQExpBuffer(&title, _("TOAST table %s"), schema_rel_str); break; case 'c': ! printfPQExpBuffer(&title, _("Composite type %s"), schema_rel_str); break; default: ! printfPQExpBuffer(&title, _("?%c? %s"), tableinfo.relkind, schema_rel_str); break; } *************** *** 887,895 **** resetPQExpBuffer(&tmpbuf); appendPQExpBuffer(&tmpbuf, "%s, ", indamname); /* we assume here that index and table are in same schema */ ! appendPQExpBuffer(&tmpbuf, _("for table \"%s.%s\""), ! schemaname, indtable); if (strlen(indpred)) appendPQExpBuffer(&tmpbuf, ", predicate (%s)", indpred); --- 888,899 ---- resetPQExpBuffer(&tmpbuf); appendPQExpBuffer(&tmpbuf, "%s, ", indamname); + strcpy(schema_rel_str, fmtId(schemaname)); + strcat(schema_rel_str, "."); + strcat(schema_rel_str, fmtId(indtable)); + /* we assume here that index and table are in same schema */ ! appendPQExpBuffer(&tmpbuf, _("for table %s"), schema_rel_str); if (strlen(indpred)) appendPQExpBuffer(&tmpbuf, ", predicate (%s)", indpred); *************** *** 1095,1102 **** const char *usingpos; /* Output index name */ ! printfPQExpBuffer(&buf, _(" \"%s\""), ! PQgetvalue(result1, i, 0)); /* Label as primary key or unique (but not both) */ appendPQExpBuffer(&buf, --- 1099,1106 ---- const char *usingpos; /* Output index name */ ! printfPQExpBuffer(&buf, _(" %s"), ! fmtId(PQgetvalue(result1, i, 0))); /* Label as primary key or unique (but not both) */ appendPQExpBuffer(&buf, *************** *** 1125,1132 **** footers[count_footers++] = xstrdup(buf.data); for (i = 0; i < check_count; i++) { ! printfPQExpBuffer(&buf, _(" \"%s\" %s"), ! PQgetvalue(result2, i, 1), PQgetvalue(result2, i, 0)); footers[count_footers++] = xstrdup(buf.data); --- 1129,1136 ---- footers[count_footers++] = xstrdup(buf.data); for (i = 0; i < check_count; i++) { ! printfPQExpBuffer(&buf, _(" %s %s"), ! fmtId(PQgetvalue(result2, i, 1)), PQgetvalue(result2, i, 0)); footers[count_footers++] = xstrdup(buf.data); *************** *** 1140,1147 **** footers[count_footers++] = xstrdup(buf.data); for (i = 0; i < foreignkey_count; i++) { ! printfPQExpBuffer(&buf, _(" \"%s\" %s"), ! PQgetvalue(result5, i, 0), PQgetvalue(result5, i, 1)); footers[count_footers++] = xstrdup(buf.data); --- 1144,1151 ---- footers[count_footers++] = xstrdup(buf.data); for (i = 0; i < foreignkey_count; i++) { ! printfPQExpBuffer(&buf, _(" %s %s"), ! fmtId(PQgetvalue(result5, i, 0)), PQgetvalue(result5, i, 1)); footers[count_footers++] = xstrdup(buf.data);