22
22
*
23
23
*
24
24
* IDENTIFICATION
25
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.147 2000/04/14 01:34:24 tgl Exp $
25
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.147.2.1 2000/09/23 23:36:17 tgl Exp $
26
26
*
27
27
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
28
28
*
@@ -1456,13 +1456,15 @@ getFuncs(int *numFuncs)
1456
1456
int i_proretset ;
1457
1457
int i_prosrc ;
1458
1458
int i_probin ;
1459
+ int i_iscachable ;
1459
1460
int i_usename ;
1460
1461
1461
1462
/* find all user-defined funcs */
1462
1463
1463
1464
appendPQExpBuffer (query ,
1464
1465
"SELECT pg_proc.oid, proname, prolang, pronargs, prorettype, "
1465
- "proretset, proargtypes, prosrc, probin, usename "
1466
+ "proretset, proargtypes, prosrc, probin, usename, "
1467
+ "proiscachable "
1466
1468
"from pg_proc, pg_user "
1467
1469
"where pg_proc.oid > '%u'::oid and proowner = usesysid" ,
1468
1470
g_last_builtin_oid );
@@ -1492,6 +1494,7 @@ getFuncs(int *numFuncs)
1492
1494
i_proretset = PQfnumber (res ,"proretset" );
1493
1495
i_prosrc = PQfnumber (res ,"prosrc" );
1494
1496
i_probin = PQfnumber (res ,"probin" );
1497
+ i_iscachable = PQfnumber (res ,"proiscachable" );
1495
1498
i_usename = PQfnumber (res ,"usename" );
1496
1499
1497
1500
for (i = 0 ;i < ntups ;i ++ )
@@ -1507,6 +1510,7 @@ getFuncs(int *numFuncs)
1507
1510
finfo [i ].nargs = atoi (PQgetvalue (res ,i ,i_pronargs ));
1508
1511
finfo [i ].lang = atoi (PQgetvalue (res ,i ,i_prolang ));
1509
1512
finfo [i ].usename = strdup (PQgetvalue (res ,i ,i_usename ));
1513
+ finfo [i ].iscachable = (strcmp (PQgetvalue (res ,i ,i_iscachable ),"t" )== 0 );
1510
1514
if (finfo [i ].nargs < 0 || finfo [i ].nargs > FUNC_MAX_ARGS )
1511
1515
{
1512
1516
fprintf (stderr ,"failed sanity check: %s has %d args\n" ,
@@ -2663,11 +2667,18 @@ dumpOneFunc(FILE *fout, FuncInfo *finfo, int i,
2663
2667
(j > 0 ) ?"," :"" ,
2664
2668
fmtId (typname , false));
2665
2669
}
2666
- appendPQExpBuffer (q ," ) RETURNS %s%s AS '%s' LANGUAGE '%s';\n " ,
2670
+ appendPQExpBuffer (q ," ) RETURNS %s%s AS '%s' LANGUAGE '%s'" ,
2667
2671
(finfo [i ].retset ) ?" SETOF " :"" ,
2668
2672
fmtId (findTypeByOid (tinfo ,numTypes ,finfo [i ].prorettype ), false),
2669
2673
func_def ,func_lang );
2670
2674
2675
+ if (finfo [i ].iscachable )/* OR in new attrs here */
2676
+ {
2677
+ appendPQExpBuffer (q ," WITH (iscachable)" );
2678
+ }
2679
+
2680
+ appendPQExpBuffer (q ,";\n" );
2681
+
2671
2682
fputs (q -> data ,fout );
2672
2683
2673
2684
/*** Dump Function Comments ***/