diff options
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
| -rw-r--r-- | src/bin/pg_dump/pg_dump.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ae7233dbf8..b8f6932ded 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12,7 +12,7 @@ * by PostgreSQL * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.509 2008/12/19 16:25:18 petere Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.510 2008/12/31 02:25:05 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -6916,6 +6916,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) char *proallargtypes; char *proargmodes; char *proargnames; + char *proiswindow; char *provolatile; char *proisstrict; char *prosecdef; @@ -6956,7 +6957,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) "pg_catalog.pg_get_function_arguments(oid) as funcargs, " "pg_catalog.pg_get_function_identity_arguments(oid) as funciargs, " "pg_catalog.pg_get_function_result(oid) as funcresult, " - "provolatile, proisstrict, prosecdef, " + "proiswindow, provolatile, proisstrict, prosecdef, " "proconfig, procost, prorows, " "(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname " "FROM pg_catalog.pg_proc " @@ -6968,6 +6969,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) appendPQExpBuffer(query, "SELECT proretset, prosrc, probin, " "proallargtypes, proargmodes, proargnames, " + "false as proiswindow, " "provolatile, proisstrict, prosecdef, " "proconfig, procost, prorows, " "(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname " @@ -6980,6 +6982,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) appendPQExpBuffer(query, "SELECT proretset, prosrc, probin, " "proallargtypes, proargmodes, proargnames, " + "false as proiswindow, " "provolatile, proisstrict, prosecdef, " "null as proconfig, 0 as procost, 0 as prorows, " "(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname " @@ -6994,6 +6997,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) "null as proallargtypes, " "null as proargmodes, " "proargnames, " + "false as proiswindow, " "provolatile, proisstrict, prosecdef, " "null as proconfig, 0 as procost, 0 as prorows, " "(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname " @@ -7008,6 +7012,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) "null as proallargtypes, " "null as proargmodes, " "null as proargnames, " + "false as proiswindow, " "provolatile, proisstrict, prosecdef, " "null as proconfig, 0 as procost, 0 as prorows, " "(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname " @@ -7022,9 +7027,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo) "null as proallargtypes, " "null as proargmodes, " "null as proargnames, " + "false as proiswindow, " "case when proiscachable then 'i' else 'v' end as provolatile, " "proisstrict, " - "'f'::boolean as prosecdef, " + "false as prosecdef, " "null as proconfig, 0 as procost, 0 as prorows, " "(SELECT lanname FROM pg_language WHERE oid = prolang) as lanname " "FROM pg_proc " @@ -7038,9 +7044,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo) "null as proallargtypes, " "null as proargmodes, " "null as proargnames, " + "false as proiswindow, " "case when proiscachable then 'i' else 'v' end as provolatile, " - "'f'::boolean as proisstrict, " - "'f'::boolean as prosecdef, " + "false as proisstrict, " + "false as prosecdef, " "null as proconfig, 0 as procost, 0 as prorows, " "(SELECT lanname FROM pg_language WHERE oid = prolang) as lanname " "FROM pg_proc " @@ -7077,6 +7084,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) proargnames = PQgetvalue(res, 0, PQfnumber(res, "proargnames")); funcargs = funciargs = funcresult = NULL; } + proiswindow = PQgetvalue(res, 0, PQfnumber(res, "proiswindow")); provolatile = PQgetvalue(res, 0, PQfnumber(res, "provolatile")); proisstrict = PQgetvalue(res, 0, PQfnumber(res, "proisstrict")); prosecdef = PQgetvalue(res, 0, PQfnumber(res, "prosecdef")); @@ -7217,6 +7225,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo) } appendPQExpBuffer(q, "\n LANGUAGE %s", fmtId(lanname)); + + if (proiswindow[0] == 't') + appendPQExpBuffer(q, " WINDOW"); + if (provolatile[0] != PROVOLATILE_VOLATILE) { if (provolatile[0] == PROVOLATILE_IMMUTABLE) |
