12
12
* by PostgreSQL
13
13
*
14
14
* IDENTIFICATION
15
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.509 2008/12/19 16 :25:18 petere Exp $
15
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.510 2008/12/31 02 :25:05 tgl Exp $
16
16
*
17
17
*-------------------------------------------------------------------------
18
18
*/
@@ -6916,6 +6916,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
6916
6916
char * proallargtypes ;
6917
6917
char * proargmodes ;
6918
6918
char * proargnames ;
6919
+ char * proiswindow ;
6919
6920
char * provolatile ;
6920
6921
char * proisstrict ;
6921
6922
char * prosecdef ;
@@ -6956,7 +6957,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
6956
6957
"pg_catalog.pg_get_function_arguments(oid) as funcargs, "
6957
6958
"pg_catalog.pg_get_function_identity_arguments(oid) as funciargs, "
6958
6959
"pg_catalog.pg_get_function_result(oid) as funcresult, "
6959
- "provolatile, proisstrict, prosecdef, "
6960
+ "proiswindow, provolatile, proisstrict, prosecdef, "
6960
6961
"proconfig, procost, prorows, "
6961
6962
"(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname "
6962
6963
"FROM pg_catalog.pg_proc "
@@ -6968,6 +6969,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
6968
6969
appendPQExpBuffer (query ,
6969
6970
"SELECT proretset, prosrc, probin, "
6970
6971
"proallargtypes, proargmodes, proargnames, "
6972
+ "false as proiswindow, "
6971
6973
"provolatile, proisstrict, prosecdef, "
6972
6974
"proconfig, procost, prorows, "
6973
6975
"(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname "
@@ -6980,6 +6982,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
6980
6982
appendPQExpBuffer (query ,
6981
6983
"SELECT proretset, prosrc, probin, "
6982
6984
"proallargtypes, proargmodes, proargnames, "
6985
+ "false as proiswindow, "
6983
6986
"provolatile, proisstrict, prosecdef, "
6984
6987
"null as proconfig, 0 as procost, 0 as prorows, "
6985
6988
"(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname "
@@ -6994,6 +6997,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
6994
6997
"null as proallargtypes, "
6995
6998
"null as proargmodes, "
6996
6999
"proargnames, "
7000
+ "false as proiswindow, "
6997
7001
"provolatile, proisstrict, prosecdef, "
6998
7002
"null as proconfig, 0 as procost, 0 as prorows, "
6999
7003
"(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname "
@@ -7008,6 +7012,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
7008
7012
"null as proallargtypes, "
7009
7013
"null as proargmodes, "
7010
7014
"null as proargnames, "
7015
+ "false as proiswindow, "
7011
7016
"provolatile, proisstrict, prosecdef, "
7012
7017
"null as proconfig, 0 as procost, 0 as prorows, "
7013
7018
"(SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname "
@@ -7022,9 +7027,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
7022
7027
"null as proallargtypes, "
7023
7028
"null as proargmodes, "
7024
7029
"null as proargnames, "
7030
+ "false as proiswindow, "
7025
7031
"case when proiscachable then 'i' else 'v' end as provolatile, "
7026
7032
"proisstrict, "
7027
- "'f'::boolean as prosecdef, "
7033
+ "false as prosecdef, "
7028
7034
"null as proconfig, 0 as procost, 0 as prorows, "
7029
7035
"(SELECT lanname FROM pg_language WHERE oid = prolang) as lanname "
7030
7036
"FROM pg_proc "
@@ -7038,9 +7044,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
7038
7044
"null as proallargtypes, "
7039
7045
"null as proargmodes, "
7040
7046
"null as proargnames, "
7047
+ "false as proiswindow, "
7041
7048
"case when proiscachable then 'i' else 'v' end as provolatile, "
7042
- "'f'::boolean as proisstrict, "
7043
- "'f'::boolean as prosecdef, "
7049
+ "false as proisstrict, "
7050
+ "false as prosecdef, "
7044
7051
"null as proconfig, 0 as procost, 0 as prorows, "
7045
7052
"(SELECT lanname FROM pg_language WHERE oid = prolang) as lanname "
7046
7053
"FROM pg_proc "
@@ -7077,6 +7084,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
7077
7084
proargnames = PQgetvalue (res , 0 , PQfnumber (res , "proargnames" ));
7078
7085
funcargs = funciargs = funcresult = NULL ;
7079
7086
}
7087
+ proiswindow = PQgetvalue (res , 0 , PQfnumber (res , "proiswindow" ));
7080
7088
provolatile = PQgetvalue (res , 0 , PQfnumber (res , "provolatile" ));
7081
7089
proisstrict = PQgetvalue (res , 0 , PQfnumber (res , "proisstrict" ));
7082
7090
prosecdef = PQgetvalue (res , 0 , PQfnumber (res , "prosecdef" ));
@@ -7217,6 +7225,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
7217
7225
}
7218
7226
7219
7227
appendPQExpBuffer (q , "\n LANGUAGE %s" , fmtId (lanname ));
7228
+
7229
+ if (proiswindow [0 ] == 't' )
7230
+ appendPQExpBuffer (q , " WINDOW" );
7231
+
7220
7232
if (provolatile [0 ] != PROVOLATILE_VOLATILE )
7221
7233
{
7222
7234
if (provolatile [0 ] == PROVOLATILE_IMMUTABLE )
0 commit comments