upgrade base pgsql v8.3.8->v8.3.9

This commit is contained in:
KaiGai Kohei 2009-12-22 08:18:24 +00:00
commit 2ecceffd1d
6 changed files with 96 additions and 93 deletions

View file

@ -1,6 +1,6 @@
diff -rpNU3 base/configure sepgsql-new/configure
--- base/configure 2009-09-10 20:11:35.000000000 +0900
+++ sepgsql-new/configure 2009-09-10 20:24:37.000000000 +0900
--- base/configure 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/configure 2009-12-15 17:05:57.000000000 +0900
@@ -314,7 +314,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
@ -143,8 +143,8 @@ diff -rpNU3 base/configure sepgsql-new/configure
s,@ELF_SYS@,$ELF_SYS,;t t
s,@LDFLAGS_SL@,$LDFLAGS_SL,;t t
diff -rpNU3 base/configure.in sepgsql-new/configure.in
--- base/configure.in 2009-09-10 20:11:35.000000000 +0900
+++ sepgsql-new/configure.in 2009-09-10 20:24:37.000000000 +0900
--- base/configure.in 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/configure.in 2009-12-15 17:05:57.000000000 +0900
@@ -626,6 +626,19 @@ PGAC_ARG_BOOL(with, zlib, yes,
AC_SUBST(with_zlib)
@ -457,8 +457,8 @@ diff -rpNU3 base/src/backend/access/heap/tuptoaster.c sepgsql-new/src/backend/ac
/*
diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/access/transam/xact.c
--- base/src/backend/access/transam/xact.c 2009-03-15 17:47:25.000000000 +0900
+++ sepgsql-new/src/backend/access/transam/xact.c 2009-05-20 17:35:01.000000000 +0900
--- base/src/backend/access/transam/xact.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/access/transam/xact.c 2009-12-15 17:05:57.000000000 +0900
@@ -35,6 +35,7 @@
#include "miscadmin.h"
#include "pg_trace.h"
@ -469,7 +469,7 @@ diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/acces
#include "storage/procarray.h"
@@ -137,6 +138,7 @@ typedef struct TransactionStateData
Oid prevUser; /* previous CurrentUserId setting */
bool prevSecDefCxt; /* previous SecurityDefinerContext setting */
int prevSecContext; /* previous SecurityRestrictionContext */
bool prevXactReadOnly; /* entry-time xact r/o state */
+ int prevRowlv; /* previous Row-level control behavior */
struct TransactionStateData *parent; /* back link to parent */
@ -477,7 +477,7 @@ diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/acces
@@ -165,6 +167,7 @@ static TransactionStateData TopTransacti
InvalidOid, /* previous CurrentUserId setting */
false, /* previous SecurityDefinerContext setting */
0, /* previous SecurityRestrictionContext */
false, /* entry-time xact r/o state */
+ ROWLV_FILTER_MODE, /* previous Row-level control behavior */
NULL /* link to parent state block */
@ -486,13 +486,13 @@ diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/acces
@@ -1571,6 +1574,7 @@ StartTransaction(void)
s->nChildXids = 0;
s->maxChildXids = 0;
GetUserIdAndContext(&s->prevUser, &s->prevSecDefCxt);
GetUserIdAndSecContext(&s->prevUser, &s->prevSecContext);
+ s->prevRowlv = rowlvGetPerformingMode();
/* SecurityDefinerContext should never be set outside a transaction */
Assert(!s->prevSecDefCxt);
/* SecurityRestrictionContext should never be set outside a transaction */
Assert(s->prevSecContext == 0);
@@ -2071,6 +2075,11 @@ AbortTransaction(void)
SetUserIdAndContext(s->prevUser, s->prevSecDefCxt);
@@ -2072,6 +2076,11 @@ AbortTransaction(void)
SetUserIdAndSecContext(s->prevUser, s->prevSecContext);
/*
+ * Reset behavior of row-level access controls
@ -503,8 +503,8 @@ diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/acces
* do abort processing
*/
AfterTriggerEndXact(false);
@@ -3911,6 +3920,11 @@ AbortSubTransaction(void)
SetUserIdAndContext(s->prevUser, s->prevSecDefCxt);
@@ -3912,6 +3921,11 @@ AbortSubTransaction(void)
SetUserIdAndSecContext(s->prevUser, s->prevSecContext);
/*
+ * Reset behavior of row-level access controls
@ -515,9 +515,9 @@ diff -rpNU3 base/src/backend/access/transam/xact.c sepgsql-new/src/backend/acces
* We can skip all this stuff if the subxact failed before creating a
* ResourceOwner...
*/
@@ -4052,6 +4066,7 @@ PushTransaction(void)
@@ -4053,6 +4067,7 @@ PushTransaction(void)
s->blockState = TBLOCK_SUBBEGIN;
GetUserIdAndContext(&s->prevUser, &s->prevSecDefCxt);
GetUserIdAndSecContext(&s->prevUser, &s->prevSecContext);
s->prevXactReadOnly = XactReadOnly;
+ s->prevRowlv = rowlvGetPerformingMode();
@ -921,8 +921,8 @@ diff -rpNU3 base/src/backend/catalog/heap.c sepgsql-new/src/backend/catalog/heap
/*
* Make a dependency link to force the relation to be deleted if its
diff -rpNU3 base/src/backend/catalog/index.c sepgsql-new/src/backend/catalog/index.c
--- base/src/backend/catalog/index.c 2009-02-02 11:47:17.000000000 +0900
+++ sepgsql-new/src/backend/catalog/index.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/backend/catalog/index.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/catalog/index.c 2009-12-15 17:05:57.000000000 +0900
@@ -37,6 +37,7 @@
#include "catalog/pg_constraint.h"
#include "catalog/pg_operator.h"
@ -931,7 +931,7 @@ diff -rpNU3 base/src/backend/catalog/index.c sepgsql-new/src/backend/catalog/ind
#include "catalog/pg_tablespace.h"
#include "catalog/pg_type.h"
#include "commands/tablecmds.h"
@@ -315,6 +316,7 @@ AppendAttributeTuples(Relation indexRela
@@ -316,6 +317,7 @@ AppendAttributeTuples(Relation indexRela
new_tuple = heap_addheader(Natts_pg_attribute,
false,
@ -939,7 +939,7 @@ diff -rpNU3 base/src/backend/catalog/index.c sepgsql-new/src/backend/catalog/ind
ATTRIBUTE_TUPLE_SIZE,
(void *) indexTupDesc->attrs[i]);
@@ -602,6 +604,12 @@ index_create(Oid heapRelationId,
@@ -603,6 +605,12 @@ index_create(Oid heapRelationId,
Assert(indexRelationId == RelationGetRelid(indexRelation));
/*
@ -952,7 +952,7 @@ diff -rpNU3 base/src/backend/catalog/index.c sepgsql-new/src/backend/catalog/ind
* Obtain exclusive lock on it. Although no other backends can see it
* until we commit, this prevents deadlock-risk complaints from lock
* manager in cases such as CLUSTER.
@@ -624,7 +632,7 @@ index_create(Oid heapRelationId,
@@ -625,7 +633,7 @@ index_create(Oid heapRelationId,
*/
InsertPgClassTuple(pg_class, indexRelation,
RelationGetRelid(indexRelation),
@ -963,7 +963,7 @@ diff -rpNU3 base/src/backend/catalog/index.c sepgsql-new/src/backend/catalog/ind
heap_close(pg_class, RowExclusiveLock);
diff -rpNU3 base/src/backend/catalog/namespace.c sepgsql-new/src/backend/catalog/namespace.c
--- base/src/backend/catalog/namespace.c 2008-01-07 23:51:33.000000000 +0900
+++ sepgsql-new/src/backend/catalog/namespace.c 2009-09-10 20:24:37.000000000 +0900
+++ sepgsql-new/src/backend/catalog/namespace.c 2009-12-15 17:05:57.000000000 +0900
@@ -37,6 +37,7 @@
#include "commands/dbcommands.h"
#include "miscadmin.h"
@ -1092,8 +1092,8 @@ diff -rpNU3 base/src/backend/catalog/pg_namespace.c sepgsql-new/src/backend/cata
nspoid = simple_heap_insert(nspdesc, tup);
Assert(OidIsValid(nspoid));
diff -rpNU3 base/src/backend/catalog/pg_proc.c sepgsql-new/src/backend/catalog/pg_proc.c
--- base/src/backend/catalog/pg_proc.c 2008-01-07 23:51:33.000000000 +0900
+++ sepgsql-new/src/backend/catalog/pg_proc.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/backend/catalog/pg_proc.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/catalog/pg_proc.c 2009-12-15 17:05:57.000000000 +0900
@@ -27,6 +27,7 @@
#include "mb/pg_wchar.h"
#include "miscadmin.h"
@ -1112,7 +1112,7 @@ diff -rpNU3 base/src/backend/catalog/pg_proc.c sepgsql-new/src/backend/catalog/p
{
Oid retval;
int parameterCount;
@@ -339,6 +341,13 @@ ProcedureCreate(const char *procedureNam
@@ -343,6 +345,13 @@ ProcedureCreate(const char *procedureNam
/* Okay, do it... */
tup = heap_modifytuple(oldtup, tupDesc, values, nulls, replaces);
@ -1126,7 +1126,7 @@ diff -rpNU3 base/src/backend/catalog/pg_proc.c sepgsql-new/src/backend/catalog/p
simple_heap_update(rel, &tup->t_self, tup);
ReleaseSysCache(oldtup);
@@ -348,6 +357,13 @@ ProcedureCreate(const char *procedureNam
@@ -352,6 +361,13 @@ ProcedureCreate(const char *procedureNam
{
/* Creating a new procedure */
tup = heap_formtuple(tupDesc, values, nulls);
@ -2304,8 +2304,8 @@ diff -rpNU3 base/src/backend/commands/proclang.c sepgsql-new/src/backend/command
}
else
diff -rpNU3 base/src/backend/commands/schemacmds.c sepgsql-new/src/backend/commands/schemacmds.c
--- base/src/backend/commands/schemacmds.c 2008-01-07 23:51:33.000000000 +0900
+++ sepgsql-new/src/backend/commands/schemacmds.c 2009-06-19 15:02:12.000000000 +0900
--- base/src/backend/commands/schemacmds.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/commands/schemacmds.c 2009-12-15 17:05:57.000000000 +0900
@@ -25,6 +25,7 @@
#include "commands/schemacmds.h"
#include "miscadmin.h"
@ -2319,12 +2319,12 @@ diff -rpNU3 base/src/backend/commands/schemacmds.c sepgsql-new/src/backend/comma
Oid owner_uid;
Oid saved_uid;
+ Oid secid = InvalidOid;
bool saved_secdefcxt;
int save_sec_context;
AclResult aclresult;
@@ -93,8 +95,15 @@ CreateSchemaCommand(CreateSchemaStmt *st
if (saved_uid != owner_uid)
SetUserIdAndContext(owner_uid, true);
@@ -94,8 +96,15 @@ CreateSchemaCommand(CreateSchemaStmt *st
SetUserIdAndSecContext(owner_uid,
save_sec_context | SECURITY_LOCAL_USERID_CHANGE);
+ /* Explicitly given security label */
+ if (stmt->secLabel)
@ -2339,7 +2339,7 @@ diff -rpNU3 base/src/backend/commands/schemacmds.c sepgsql-new/src/backend/comma
/* Advance cmd counter to make the namespace visible */
CommandCounterIncrement();
@@ -412,3 +421,54 @@ AlterSchemaOwner_internal(HeapTuple tup,
@@ -413,3 +422,54 @@ AlterSchemaOwner_internal(HeapTuple tup,
}
}
@ -2454,8 +2454,8 @@ diff -rpNU3 base/src/backend/commands/sequence.c sepgsql-new/src/backend/command
seq = read_info(elm, seqrel, &buf);
diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/commands/tablecmds.c
--- base/src/backend/commands/tablecmds.c 2008-11-05 09:57:00.000000000 +0900
+++ sepgsql-new/src/backend/commands/tablecmds.c 2009-06-19 15:02:12.000000000 +0900
--- base/src/backend/commands/tablecmds.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/commands/tablecmds.c 2009-12-15 17:05:57.000000000 +0900
@@ -57,6 +57,7 @@
#include "parser/parser.h"
#include "rewrite/rewriteDefine.h"
@ -2472,7 +2472,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
bool localHasOids;
int parentOidCount;
List *rawDefaults;
@@ -365,6 +367,10 @@ DefineRelation(CreateStmt *stmt, char re
@@ -375,6 +377,10 @@ DefineRelation(CreateStmt *stmt, char re
schema = MergeAttributes(schema, stmt->inhRelations,
stmt->relation->istemp,
&inheritOids, &old_constraints, &parentOidCount);
@ -2483,7 +2483,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
/*
* Create a relation descriptor from the relation schema and create the
@@ -422,6 +428,11 @@ DefineRelation(CreateStmt *stmt, char re
@@ -432,6 +438,11 @@ DefineRelation(CreateStmt *stmt, char re
}
}
@ -2495,7 +2495,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
relationId = heap_create_with_catalog(relname,
namespaceId,
tablespaceId,
@@ -434,7 +445,8 @@ DefineRelation(CreateStmt *stmt, char re
@@ -444,7 +455,8 @@ DefineRelation(CreateStmt *stmt, char re
parentOidCount,
stmt->oncommit,
reloptions,
@ -2505,7 +2505,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
StoreCatalogInheritance(relationId, inheritOids);
@@ -660,6 +672,9 @@ truncate_check_rel(Relation rel)
@@ -670,6 +682,9 @@ truncate_check_rel(Relation rel)
errmsg("permission denied: \"%s\" is a system catalog",
RelationGetRelationName(rel))));
@ -2515,7 +2515,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
/*
* We can never allow truncation of shared or nailed-in-cache relations,
* because we can't support changing their relfilenode values.
@@ -2591,11 +2606,14 @@ ATRewriteTable(AlteredTableInfo *tab, Oi
@@ -2601,11 +2616,14 @@ ATRewriteTable(AlteredTableInfo *tab, Oi
if (newrel)
{
Oid tupOid = InvalidOid;
@ -2530,7 +2530,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
/* Set dropped attributes to null in new tuple */
foreach(lc, dropped_attrs)
@@ -2627,6 +2645,9 @@ ATRewriteTable(AlteredTableInfo *tab, Oi
@@ -2637,6 +2655,9 @@ ATRewriteTable(AlteredTableInfo *tab, Oi
/* Preserve OID, if any */
if (newTupDesc->tdhasoid)
HeapTupleSetOid(tuple, tupOid);
@ -2540,7 +2540,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
}
/* Now check any constraints on the possibly-changed tuple */
@@ -3113,6 +3134,7 @@ ATExecAddColumn(AlteredTableInfo *tab, R
@@ -3123,6 +3144,7 @@ ATExecAddColumn(AlteredTableInfo *tab, R
attributeTuple = heap_addheader(Natts_pg_attribute,
false,
@ -2548,7 +2548,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
ATTRIBUTE_TUPLE_SIZE,
(void *) &attributeD);
@@ -4058,6 +4080,10 @@ ATAddForeignKeyConstraint(AlteredTableIn
@@ -4068,6 +4090,10 @@ ATAddForeignKeyConstraint(AlteredTableIn
opclasses);
}
@ -2559,7 +2559,7 @@ diff -rpNU3 base/src/backend/commands/tablecmds.c sepgsql-new/src/backend/comman
/*
* Look up the equality operators to use in the constraint.
*
@@ -6776,6 +6802,128 @@ AlterSeqNamespaces(Relation classRel, Re
@@ -6786,6 +6812,128 @@ AlterSeqNamespaces(Relation classRel, Re
relation_close(depRel, AccessShareLock);
}
@ -2710,8 +2710,8 @@ diff -rpNU3 base/src/backend/executor/execJunk.c sepgsql-new/src/backend/executo
/*
* Use the given slot, or make a new slot if we weren't given one.
diff -rpNU3 base/src/backend/executor/execMain.c sepgsql-new/src/backend/executor/execMain.c
--- base/src/backend/executor/execMain.c 2008-09-25 15:09:40.000000000 +0900
+++ sepgsql-new/src/backend/executor/execMain.c 2009-06-10 21:37:54.000000000 +0900
--- base/src/backend/executor/execMain.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/executor/execMain.c 2009-12-15 17:05:57.000000000 +0900
@@ -38,6 +38,7 @@
#include "access/xact.h"
#include "catalog/heap.h"
@ -2972,7 +2972,7 @@ diff -rpNU3 base/src/backend/executor/execMain.c sepgsql-new/src/backend/executo
* replace the heap tuple
*
* Note: if es_crosscheck_snapshot isn't InvalidSnapshot, we check that
@@ -2733,7 +2857,8 @@ OpenIntoRel(QueryDesc *queryDesc)
@@ -2748,7 +2872,8 @@ OpenIntoRel(QueryDesc *queryDesc)
0,
into->onCommit,
reloptions,
@ -2982,7 +2982,7 @@ diff -rpNU3 base/src/backend/executor/execMain.c sepgsql-new/src/backend/executo
FreeTupleDesc(tupdesc);
@@ -2839,6 +2964,10 @@ intorel_receive(TupleTableSlot *slot, De
@@ -2854,6 +2979,10 @@ intorel_receive(TupleTableSlot *slot, De
tuple = ExecCopySlotTuple(slot);
@ -4537,8 +4537,8 @@ diff -rpNU3 base/src/backend/parser/parse_target.c sepgsql-new/src/backend/parse
}
}
diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/postmaster/postmaster.c
--- base/src/backend/postmaster/postmaster.c 2009-09-10 20:11:35.000000000 +0900
+++ sepgsql-new/src/backend/postmaster/postmaster.c 2009-09-10 20:24:37.000000000 +0900
--- base/src/backend/postmaster/postmaster.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/postmaster/postmaster.c 2009-12-15 17:05:57.000000000 +0900
@@ -107,6 +107,7 @@
#include "postmaster/pgarch.h"
#include "postmaster/postmaster.h"
@ -4568,7 +4568,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
/* If we need to signal the autovacuum launcher, do so now */
if (avlauncher_needs_signal)
{
@@ -1921,6 +1927,8 @@ SIGHUP_handler(SIGNAL_ARGS)
@@ -1923,6 +1929,8 @@ SIGHUP_handler(SIGNAL_ARGS)
signal_child(PgArchPID, SIGHUP);
if (SysLoggerPID != 0)
signal_child(SysLoggerPID, SIGHUP);
@ -4577,7 +4577,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
/* PgStatPID does not currently need SIGHUP */
/* Reload authentication config files too */
@@ -1978,6 +1986,9 @@ pmdie(SIGNAL_ARGS)
@@ -1980,6 +1988,9 @@ pmdie(SIGNAL_ARGS)
/* and the walwriter too */
if (WalWriterPID != 0)
signal_child(WalWriterPID, SIGTERM);
@ -4587,7 +4587,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
pmState = PM_WAIT_BACKENDS;
}
@@ -2017,6 +2028,9 @@ pmdie(SIGNAL_ARGS)
@@ -2019,6 +2030,9 @@ pmdie(SIGNAL_ARGS)
/* and the walwriter too */
if (WalWriterPID != 0)
signal_child(WalWriterPID, SIGTERM);
@ -4597,7 +4597,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
pmState = PM_WAIT_BACKENDS;
}
@@ -2050,6 +2064,8 @@ pmdie(SIGNAL_ARGS)
@@ -2052,6 +2066,8 @@ pmdie(SIGNAL_ARGS)
signal_child(PgArchPID, SIGQUIT);
if (PgStatPID != 0)
signal_child(PgStatPID, SIGQUIT);
@ -4606,7 +4606,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
ExitPostmaster(0);
break;
}
@@ -2298,6 +2314,16 @@ reaper(SIGNAL_ARGS)
@@ -2300,6 +2316,16 @@ reaper(SIGNAL_ARGS)
continue;
}
@ -4623,7 +4623,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
/*
* Else do standard backend child cleanup.
*/
@@ -2465,6 +2491,18 @@ HandleChildCrash(int pid, int exitstatus
@@ -2467,6 +2493,18 @@ HandleChildCrash(int pid, int exitstatus
signal_child(AutoVacPID, (SendStop ? SIGSTOP : SIGQUIT));
}
@ -4642,7 +4642,7 @@ diff -rpNU3 base/src/backend/postmaster/postmaster.c sepgsql-new/src/backend/pos
/*
* Force a power-cycle of the pgarch process too. (This isn't absolutely
* necessary, but it seems like a good idea for robustness, and it
@@ -2584,7 +2622,8 @@ PostmasterStateMachine(void)
@@ -2586,7 +2624,8 @@ PostmasterStateMachine(void)
StartupPID == 0 &&
(BgWriterPID == 0 || !FatalError) &&
WalWriterPID == 0 &&
@ -8872,9 +8872,9 @@ diff -rpNU3 base/src/backend/security/sepgsql/policy/sepostgresql-devel.te sepgs
+ allow sepgsql_database_type user_home_t : db_database { load_module };
+')
diff -rpNU3 base/src/backend/storage/file/fd.c sepgsql-new/src/backend/storage/file/fd.c
--- base/src/backend/storage/file/fd.c 2008-01-07 23:51:33.000000000 +0900
+++ sepgsql-new/src/backend/storage/file/fd.c 2009-03-13 18:14:33.000000000 +0900
@@ -1241,6 +1241,13 @@ FileTruncate(File file, long offset)
--- base/src/backend/storage/file/fd.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/storage/file/fd.c 2009-12-15 17:05:57.000000000 +0900
@@ -1251,6 +1251,13 @@ FileTruncate(File file, long offset)
return returnCode;
}
@ -9096,8 +9096,8 @@ diff -rpNU3 base/src/backend/tcop/pquery.c sepgsql-new/src/backend/tcop/pquery.c
/*
diff -rpNU3 base/src/backend/tcop/utility.c sepgsql-new/src/backend/tcop/utility.c
--- base/src/backend/tcop/utility.c 2008-11-05 09:57:00.000000000 +0900
+++ sepgsql-new/src/backend/tcop/utility.c 2009-06-19 15:02:12.000000000 +0900
--- base/src/backend/tcop/utility.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/tcop/utility.c 2009-12-15 17:05:57.000000000 +0900
@@ -49,6 +49,7 @@
#include "postmaster/bgwriter.h"
#include "rewrite/rewriteDefine.h"
@ -9114,7 +9114,7 @@ diff -rpNU3 base/src/backend/tcop/utility.c sepgsql-new/src/backend/tcop/utility
case T_AlterSeqStmt:
case T_AlterTableStmt:
case T_RenameStmt:
@@ -744,6 +746,10 @@ ProcessUtility(Node *parsetree,
@@ -766,6 +768,10 @@ ProcessUtility(Node *parsetree,
ExecAlterOwnerStmt((AlterOwnerStmt *) parsetree);
break;
@ -9125,7 +9125,7 @@ diff -rpNU3 base/src/backend/tcop/utility.c sepgsql-new/src/backend/tcop/utility
case T_AlterTableStmt:
{
List *stmts;
@@ -1022,6 +1028,10 @@ ProcessUtility(Node *parsetree,
@@ -1046,6 +1052,10 @@ ProcessUtility(Node *parsetree,
LoadStmt *stmt = (LoadStmt *) parsetree;
closeAllVfds(); /* probably not necessary... */
@ -9136,7 +9136,7 @@ diff -rpNU3 base/src/backend/tcop/utility.c sepgsql-new/src/backend/tcop/utility
/* Allowed names are restricted if you're not superuser */
load_file(stmt->filename, !superuser());
}
@@ -1709,6 +1719,28 @@ CreateCommandTag(Node *parsetree)
@@ -1735,6 +1745,28 @@ CreateCommandTag(Node *parsetree)
}
break;
@ -9165,7 +9165,7 @@ diff -rpNU3 base/src/backend/tcop/utility.c sepgsql-new/src/backend/tcop/utility
case T_AlterTableStmt:
{
AlterTableStmt *stmt = (AlterTableStmt *) parsetree;
@@ -2248,6 +2280,10 @@ GetCommandLogLevel(Node *parsetree)
@@ -2274,6 +2306,10 @@ GetCommandLogLevel(Node *parsetree)
lev = LOGSTMT_DDL;
break;
@ -9198,8 +9198,8 @@ diff -rpNU3 base/src/backend/utils/adt/genfile.c sepgsql-new/src/backend/utils/a
(seek_offset >= 0) ? SEEK_SET : SEEK_END) != 0)
ereport(ERROR,
diff -rpNU3 base/src/backend/utils/adt/ri_triggers.c sepgsql-new/src/backend/utils/adt/ri_triggers.c
--- base/src/backend/utils/adt/ri_triggers.c 2008-09-25 15:09:40.000000000 +0900
+++ sepgsql-new/src/backend/utils/adt/ri_triggers.c 2009-05-20 17:08:02.000000000 +0900
--- base/src/backend/utils/adt/ri_triggers.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/utils/adt/ri_triggers.c 2009-12-15 17:05:57.000000000 +0900
@@ -37,6 +37,7 @@
#include "parser/parse_coerce.h"
#include "parser/parse_relation.h"
@ -9238,17 +9238,17 @@ diff -rpNU3 base/src/backend/utils/adt/ri_triggers.c sepgsql-new/src/backend/uti
/* Check result */
if (spi_result != SPI_OK_SELECT)
elog(ERROR, "SPI_execute_snapshot returned %d", spi_result);
@@ -3256,6 +3266,7 @@ ri_PerformCheck(RI_QueryKey *qkey, SPIPl
@@ -3257,6 +3267,7 @@ ri_PerformCheck(RI_QueryKey *qkey, SPIPl
int spi_result;
Oid save_userid;
bool save_secdefcxt;
int save_sec_context;
+ int save_rowlv, temp_rowlv;
Datum vals[RI_MAX_NUMKEYS * 2];
char nulls[RI_MAX_NUMKEYS * 2];
@@ -3336,12 +3347,19 @@ ri_PerformCheck(RI_QueryKey *qkey, SPIPl
GetUserIdAndContext(&save_userid, &save_secdefcxt);
SetUserIdAndContext(RelationGetForm(query_rel)->relowner, true);
@@ -3338,12 +3349,19 @@ ri_PerformCheck(RI_QueryKey *qkey, SPIPl
SetUserIdAndSecContext(RelationGetForm(query_rel)->relowner,
save_sec_context | SECURITY_LOCAL_USERID_CHANGE);
+ /* Switch Row-level stuff behavior on FK checks, if necessary */
+ temp_rowlv = (detectNewRows ? ROWLV_ABORT_MODE : ROWLV_FILTER_MODE);
@ -9263,8 +9263,8 @@ diff -rpNU3 base/src/backend/utils/adt/ri_triggers.c sepgsql-new/src/backend/uti
+ /* Restore Row-level stuff behavior */
+ rowlvSetPerformingMode(save_rowlv);
+
/* Restore UID */
SetUserIdAndContext(save_userid, save_secdefcxt);
/* Restore UID and security context */
SetUserIdAndSecContext(save_userid, save_sec_context);
diff -rpNU3 base/src/backend/utils/adt/varlena.c sepgsql-new/src/backend/utils/adt/varlena.c
--- base/src/backend/utils/adt/varlena.c 2008-03-19 09:48:23.000000000 +0900
@ -9454,8 +9454,8 @@ diff -rpNU3 base/src/backend/utils/cache/plancache.c sepgsql-new/src/backend/uti
/* other cases shouldn't happen, but return NULL */
break;
diff -rpNU3 base/src/backend/utils/cache/relcache.c sepgsql-new/src/backend/utils/cache/relcache.c
--- base/src/backend/utils/cache/relcache.c 2009-02-02 11:47:17.000000000 +0900
+++ sepgsql-new/src/backend/utils/cache/relcache.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/backend/utils/cache/relcache.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/utils/cache/relcache.c 2009-12-15 17:05:57.000000000 +0900
@@ -46,6 +46,7 @@
#include "catalog/pg_opclass.h"
#include "catalog/pg_proc.h"
@ -9490,7 +9490,7 @@ diff -rpNU3 base/src/backend/utils/cache/relcache.c sepgsql-new/src/backend/util
/*
* initialize the relation lock manager information
*/
@@ -1462,6 +1473,12 @@ formrdesc(const char *relationName, Oid
@@ -1464,6 +1475,12 @@ formrdesc(const char *relationName, Oid
relation->rd_rel->relfilenode = RelationGetRelid(relation);
/*
@ -9503,7 +9503,7 @@ diff -rpNU3 base/src/backend/utils/cache/relcache.c sepgsql-new/src/backend/util
* initialize the relation lock manager information
*/
RelationInitLockInfo(relation); /* see lmgr.c */
@@ -2687,6 +2704,13 @@ BuildHardcodedDescriptor(int natts, Form
@@ -2737,6 +2754,13 @@ BuildHardcodedDescriptor(int natts, Form
oldcxt = MemoryContextSwitchTo(CacheMemoryContext);
@ -9517,7 +9517,7 @@ diff -rpNU3 base/src/backend/utils/cache/relcache.c sepgsql-new/src/backend/util
result = CreateTemplateTupleDesc(natts, hasoids);
result->tdtypeid = RECORDOID; /* not right, but we don't care */
result->tdtypmod = -1;
@@ -3446,6 +3470,12 @@ load_relcache_init_file(void)
@@ -3496,6 +3520,12 @@ load_relcache_init_file(void)
rel->rd_options = NULL;
}
@ -9643,8 +9643,8 @@ diff -rpNU3 base/src/backend/utils/fmgr/dfmgr.c sepgsql-new/src/backend/utils/fm
{
bool have_slash;
diff -rpNU3 base/src/backend/utils/fmgr/fmgr.c sepgsql-new/src/backend/utils/fmgr/fmgr.c
--- base/src/backend/utils/fmgr/fmgr.c 2009-02-02 11:47:17.000000000 +0900
+++ sepgsql-new/src/backend/utils/fmgr/fmgr.c 2009-03-13 18:14:33.000000000 +0900
--- base/src/backend/utils/fmgr/fmgr.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/utils/fmgr/fmgr.c 2009-12-15 17:05:57.000000000 +0900
@@ -23,6 +23,7 @@
#include "executor/spi.h"
#include "miscadmin.h"
@ -9711,8 +9711,8 @@ diff -rpNU3 base/src/backend/utils/init/postinit.c sepgsql-new/src/backend/utils
* Figure out our postgres user id, and see if we are a superuser.
*
diff -rpNU3 base/src/backend/utils/misc/guc.c sepgsql-new/src/backend/utils/misc/guc.c
--- base/src/backend/utils/misc/guc.c 2009-09-10 20:11:35.000000000 +0900
+++ sepgsql-new/src/backend/utils/misc/guc.c 2009-09-10 20:24:37.000000000 +0900
--- base/src/backend/utils/misc/guc.c 2009-12-15 16:55:43.000000000 +0900
+++ sepgsql-new/src/backend/utils/misc/guc.c 2009-12-15 17:05:57.000000000 +0900
@@ -54,6 +54,7 @@
#include "postmaster/postmaster.h"
#include "postmaster/syslogger.h"