aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_dump.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
-rw-r--r--src/bin/pg_dump/pg_dump.c63
1 files changed, 21 insertions, 42 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index b6b218bdc7d..12eed924525 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -22,7 +22,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.147 2000/04/14 01:34:24 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.148 2000/05/28 20:34:52 tgl Exp $
*
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
*
@@ -2575,6 +2575,10 @@ dumpOneFunc(FILE *fout, FuncInfo *finfo, int i,
int j;
char *func_def;
char func_lang[NAMEDATALEN + 1];
+ PGresult *res;
+ int nlangs;
+ int i_lanname;
+ char query[256];
if (finfo[i].dumped)
return;
@@ -2583,54 +2587,29 @@ dumpOneFunc(FILE *fout, FuncInfo *finfo, int i,
becomeUser(fout, finfo[i].usename);
- if (finfo[i].lang == INTERNALlanguageId)
- {
- func_def = finfo[i].prosrc;
- strcpy(func_lang, "INTERNAL");
- }
- else if (finfo[i].lang == ClanguageId)
+ sprintf(query, "SELECT lanname FROM pg_language WHERE oid = %u",
+ finfo[i].lang);
+ res = PQexec(g_conn, query);
+ if (!res ||
+ PQresultStatus(res) != PGRES_TUPLES_OK)
{
- func_def = finfo[i].probin;
- strcpy(func_lang, "C");
+ fprintf(stderr, "dumpOneFunc(): SELECT for procedural language failed. Explanation from backend: '%s'.\n", PQerrorMessage(g_conn));
+ exit_nicely(g_conn);
}
- else if (finfo[i].lang == SQLlanguageId)
+ nlangs = PQntuples(res);
+
+ if (nlangs != 1)
{
- func_def = finfo[i].prosrc;
- strcpy(func_lang, "SQL");
+ fprintf(stderr, "dumpOneFunc(): procedural language for function %s not found\n", finfo[i].proname);
+ exit_nicely(g_conn);
}
- else
- {
- PGresult *res;
- int nlangs;
- int i_lanname;
- char query[256];
-
- sprintf(query, "SELECT lanname FROM pg_language "
- "WHERE oid = %u",
- finfo[i].lang);
- res = PQexec(g_conn, query);
- if (!res ||
- PQresultStatus(res) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "dumpOneFunc(): SELECT for procedural language failed. Explanation from backend: '%s'.\n", PQerrorMessage(g_conn));
- exit_nicely(g_conn);
- }
- nlangs = PQntuples(res);
- if (nlangs != 1)
- {
- fprintf(stderr, "dumpOneFunc(): procedural language for function %s not found\n", finfo[i].proname);
- exit_nicely(g_conn);
- }
-
- i_lanname = PQfnumber(res, "lanname");
-
- func_def = finfo[i].prosrc;
- strcpy(func_lang, PQgetvalue(res, 0, i_lanname));
+ i_lanname = PQfnumber(res, "lanname");
- PQclear(res);
+ func_def = finfo[i].prosrc;
+ strcpy(func_lang, PQgetvalue(res, 0, i_lanname));
- }
+ PQclear(res);
if (dropSchema)
{