*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.36 1998/10/08 18:29:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.37 1998/10/12 00:53:30 momjian Exp $
*
*
* INTERFACE ROUTINES
static void doinsert(Relation relation, HeapTuple tup);
-static bool ImmediateInvalidation;
-
/* ----------------------------------------------------------------
* heap support routines
* ----------------------------------------------------------------
return;
}
-/*
- * HeapScanIsValid is now a macro in relscan.h -cim 4/27/91
- */
-
-#ifdef NOT_USED
-/* ----------------
- * SetHeapAccessMethodImmediateInvalidation
- * ----------------
- */
-void
-SetHeapAccessMethodImmediateInvalidation(bool on)
-{
- ImmediateInvalidation = on;
-}
-
-#endif
/* ----------------------------------------------------------------
* heap access method interface
* invalidate caches (only works for system relations)
* ----------------
*/
- SetRefreshWhenInvalidate(ImmediateInvalidation);
RelationInvalidateHeapTuple(relation, tup);
- SetRefreshWhenInvalidate((bool) !ImmediateInvalidation);
}
return tup->t_oid;
* invalidate caches
* ----------------
*/
- SetRefreshWhenInvalidate(ImmediateInvalidation);
RelationInvalidateHeapTuple(relation, tp);
- SetRefreshWhenInvalidate((bool) !ImmediateInvalidation);
WriteBuffer(buf);
if (IsSystemRelationName(RelationGetRelationName(relation)->data))
* invalidate caches
* ----------------
*/
- SetRefreshWhenInvalidate(ImmediateInvalidation);
RelationInvalidateHeapTuple(relation, old_tuple);
- SetRefreshWhenInvalidate((bool) !ImmediateInvalidation);
WriteBuffer(buffer);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.87 1998/10/09 21:31:34 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.88 1998/10/12 00:53:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
newtup = (HeapTuple) palloc(tuple_len);
memmove((char *) newtup, (char *) tuple, tuple_len);
+ RelationInvalidateHeapTuple(onerel, tuple);
+
/* store transaction information */
TransactionIdStore(myXID, &(newtup->t_xmin));
newtup->t_cmin = myCID;
/* XXX -- after write, should invalidate relcache in other backends */
WriteNoReleaseBuffer(ItemPointerGetBlockNumber(&rtup->t_ctid));
- /*
- * invalidating system relations confuses the function cache of
- * pg_operator and pg_opclass, bjm
- */
- if (!IsSystemRelationName(pgcform->relname.data))
- RelationInvalidateHeapTuple(rd, rtup);
+ RelationInvalidateHeapTuple(rd, rtup);
ReleaseBuffer(buffer);
heap_close(rd);
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.34 1998/09/01 04:32:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.35 1998/10/12 00:53:33 momjian Exp $
*
* Notes:
* XXX This needs to use exception.h to handle recovery when
*/
Assert(RelationIsValid(relation));
Assert(HeapTupleIsValid(tuple));
+ Assert(PointerIsValid(function));
CACHE1_elog(DEBUG, "RelationInvalidateCatalogCacheTuple: called");
/* ----------------
if (relationId != ccp->relationId)
continue;
+#ifdef NOT_USED
/* OPT inline simplification of CatalogCacheIdInvalidate */
if (!PointerIsValid(function))
function = CatalogCacheIdInvalidate;
+#endif
(*function) (ccp->id,
CatalogCacheComputeTupleHashIndex(ccp, relation, tuple),
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/inval.c,v 1.16 1998/09/01 04:33:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/inval.c,v 1.17 1998/10/12 00:53:34 momjian Exp $
*
* Note - this code is real crufty...
*
* ----------------
*/
static LocalInvalid Invalid = EmptyLocalInvalid; /* XXX global */
-static bool RefreshWhenInvalidate = false;
Oid MyRelationRelationId = InvalidOid;
Oid MyAttributeRelationId = InvalidOid;
Invalid = EmptyLocalInvalid;
}
-/*
- * SetRefreshWhenInvalidate --
- * Causes the local caches to be immediately refreshed iff true.
- */
-void
-SetRefreshWhenInvalidate(bool on)
-{
-#ifdef INVALIDDEBUG
- elog(DEBUG, "RefreshWhenInvalidate(%d) called", on);
-#endif /* defined(INVALIDDEBUG) */
-
- RefreshWhenInvalidate = on;
-}
-
/*
* RelationIdInvalidateHeapTuple --
* Causes the given tuple in a relation to be invalidated.
tuple,
RelationIdRegisterLocalInvalid);
+#ifdef NOT_USED
if (RefreshWhenInvalidate)
/* what does this do? bjm 1998/08/20 */
RelationInvalidateCatalogCacheTuple(relation,
tuple,
(void (*) ()) NULL);
+#endif
}
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: inval.h,v 1.9 1998/09/01 04:39:15 momjian Exp $
+ * $Id: inval.h,v 1.10 1998/10/12 00:53:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern void RegisterInvalid(bool send);
-extern void SetRefreshWhenInvalidate(bool on);
-
extern void RelationInvalidateHeapTuple(Relation relation, HeapTuple tuple);
/*
# for bsdi 4.0 ELF
# if we defined .so in template/bsdi_4.0
+
+ifeq ($(DLSUFFIX), .so)
+LDFLAGS+= -export-dynamic
+endif
+
%.so: %.o
$(LD) -shared -o $@ $<
-LDFLAGS+= -export-dynamic #-Wl,-rpath -Wl,$(LIBDIR)
+LDFLAGS+= -export-dynamic
MK_NO_LORDER= true
%.so: %.o
CFLAGS += -dy
LDFLAGS += -W l,-Bexport
-%.so: %.o
- $(LD) -G -Bdynamic -o $@ $<
+
%.so: %.o
$(LD) -G -Bdynamic -o $@ $<