List:Commits« Previous MessageNext Message »
From:U-ROWVWADEjas Date:January 28 2008 10:02pm
Subject:bk commit into 6.0 tree (jas:1.2791)
View as plain text  
Below is the list of changes that have just been committed into a local
6.0 repository of . When  does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2008-01-28 16:02:04-05:00, jas@rowvwade. +6 -0
  Switch form Record::getPriorVersion to Record::getGCPriorVersion
  to respect "state == recEndChain" for garbage collection.

  storage/falcon/Index.cpp@stripped, 2008-01-28 16:01:54-05:00, jas@rowvwade. +1 -1
    Switch form Record::getPriorVersion to Record::getGCPriorVersion
    to respect "state == recEndChain" for garbage collection.

  storage/falcon/Record.cpp@stripped, 2008-01-28 16:01:54-05:00, jas@rowvwade. +5 -0
    Add Record::getGCPriorVersion

  storage/falcon/Record.h@stripped, 2008-01-28 16:01:55-05:00, jas@rowvwade. +1 -4
    Add Record::getGCPriorVersion

  storage/falcon/RecordVersion.cpp@stripped, 2008-01-28 16:01:55-05:00, jas@rowvwade. +5 -0
    Add Record::getGCPriorVersion

  storage/falcon/RecordVersion.h@stripped, 2008-01-28 16:01:55-05:00, jas@rowvwade. +2 -2
    Add Record::getGCPriorVersion

  storage/falcon/Table.cpp@stripped, 2008-01-28 16:01:56-05:00, jas@rowvwade. +3 -20
    Switch form Record::getPriorVersion to Record::getGCPriorVersion
    to respect "state == recEndChain" for garbage collection.

diff -Nrup a/storage/falcon/Index.cpp b/storage/falcon/Index.cpp
--- a/storage/falcon/Index.cpp	2007-12-04 10:56:41 -05:00
+++ b/storage/falcon/Index.cpp	2008-01-28 16:01:54 -05:00
@@ -567,7 +567,7 @@ void Index::garbageCollect(Record * leav
 {
 	int n = 0;
 	
-	for (Record *record = leaving; record && record != staying; record =
record->getPriorVersion(), ++n)
+	for (Record *record = leaving; record && record != staying; record =
record->getGCPriorVersion(), ++n)
 		if (record->hasRecord() && record->recordNumber >= 0)
 			{
 			IndexKey key(this);
diff -Nrup a/storage/falcon/Record.cpp b/storage/falcon/Record.cpp
--- a/storage/falcon/Record.cpp	2007-11-27 13:08:19 -05:00
+++ b/storage/falcon/Record.cpp	2008-01-28 16:01:54 -05:00
@@ -957,3 +957,8 @@ char* Record::allocRecordData(int length
 	
 	return NULL;
 }
+
+Record* Record::getGCPriorVersion(void)
+{
+	return NULL;
+}
diff -Nrup a/storage/falcon/Record.h b/storage/falcon/Record.h
--- a/storage/falcon/Record.h	2008-01-28 15:40:23 -05:00
+++ b/storage/falcon/Record.h	2008-01-28 16:01:55 -05:00
@@ -80,11 +80,11 @@ public:
 	virtual Record* releaseNonRecursive(void);
 	virtual void	setPriorVersion(Record* record);
 	virtual Record* getPriorVersion();
+	virtual Record* getGCPriorVersion(void);
 	virtual	void	print(void);
 	virtual int		thaw();
 	virtual const char*	getEncodedRecord();
 	virtual int		setRecordData(const UCHAR *dataIn, int dataLength);
-	//virtual char*	getRecordData();
 	
 	const UCHAR*	getEncoding (int index);
 	int				setEncodedRecord(Stream *stream, bool interlocked);
@@ -105,9 +105,6 @@ public:
 	void			validateData(void);
 	char*			allocRecordData(int length);
 	
-	//void			setAgeGroup();
-	//void			unsetAgeGroup(void);
-
 	Record (Table *table, Format *recordFormat);
 	Record(Table *table, int32 recordNumber, Stream *stream);
 
diff -Nrup a/storage/falcon/RecordVersion.cpp b/storage/falcon/RecordVersion.cpp
--- a/storage/falcon/RecordVersion.cpp	2008-01-28 15:40:24 -05:00
+++ b/storage/falcon/RecordVersion.cpp	2008-01-28 16:01:55 -05:00
@@ -210,6 +210,11 @@ Record* RecordVersion::getPriorVersion()
 	return priorVersion;
 }
 
+Record* RecordVersion::getGCPriorVersion(void)
+{
+	return (state == recEndChain) ? NULL : priorVersion;
+}
+
 void RecordVersion::setSuperceded(bool flag)
 {
 	superceded = flag;
diff -Nrup a/storage/falcon/RecordVersion.h b/storage/falcon/RecordVersion.h
--- a/storage/falcon/RecordVersion.h	2007-12-13 17:52:23 -05:00
+++ b/storage/falcon/RecordVersion.h	2008-01-28 16:01:55 -05:00
@@ -39,6 +39,7 @@ public:
 	virtual int			getSavePointId();
 	virtual void		setSuperceded (bool flag);
 	virtual Record*		getPriorVersion();
+	virtual Record*		getGCPriorVersion(void);
 	virtual bool		scavenge(RecordScavenge *recordScavenge);
 	virtual void		scavenge(TransId targetTransactionId, int oldestActiveSavePoint);
 	virtual bool		isVersion();
@@ -49,7 +50,6 @@ public:
 	virtual void		setVirtualOffset(uint64 offset);
 	virtual uint64		getVirtualOffset();
 	virtual int			thaw();
-	//virtual char*		getRecordData();
 	virtual void		print(void);
 
 	void				commit();
@@ -58,7 +58,7 @@ protected:
 	virtual ~RecordVersion();
 
 public:
-	uint64			virtualOffset; // byte offset into serial log window
+	uint64			virtualOffset;		// byte offset into serial log window
 	Transaction		*transaction;
 	Record			*priorVersion;
 	RecordVersion	*nextInTrans;
diff -Nrup a/storage/falcon/Table.cpp b/storage/falcon/Table.cpp
--- a/storage/falcon/Table.cpp	2008-01-28 15:40:24 -05:00
+++ b/storage/falcon/Table.cpp	2008-01-28 16:01:56 -05:00
@@ -1937,29 +1937,12 @@ void Table::garbageCollect(Record * leav
 
 	FOR_FIELDS(field, this)
 		if (field->type == Asciiblob || field->type == Binaryblob)
-			/***
-			for (Record *next, *record = leaving; record && record != staying; record =
next)
-				{
-				next = record->getPriorVersion();
-				
-				if (record->hasRecord())
-					{
-					Value value;
-					record->getValue(field->id, &value);
-					
-					if ((value.getType() == BlobPtr || value.getType() == ClobPtr) &&
-						!duplicateBlob(&value, field->id, next) &&
-						!duplicateBlob(&value, field->id, staying))
-						expungeBlob(&value);
-					}
-				}
-			***/
 			{
 			Bitmap blobs;
 			Record *record;
 			Value value;
 			
-			for (record = leaving; record && record != staying; record =
record->getPriorVersion())
+			for (record = leaving; record && record != staying; record =
record->getGCPriorVersion())
 				if (record->hasRecord())
 					{
 					record->getRawValue(field->id, &value);
@@ -2155,7 +2138,7 @@ InversionFilter* Table::getFilters(Field
 {
 	InversionFilter *inversionFilter = NULL;
 
-	for (Record *record = records; record && record != limit; record =
record->getPriorVersion())
+	for (Record *record = records; record && record != limit; record =
record->getGCPriorVersion())
 		if (record->hasRecord())
 			{
 			Value value;
@@ -2163,7 +2146,7 @@ InversionFilter* Table::getFilters(Field
 			
 			if (!value.isNull())
 				{
-				Filter *filter = NEW Filter (tableId, field->id, record->recordNumber,
&value);
+				Filter *filter = NEW Filter(tableId, field->id, record->recordNumber,
&value);
 				
 				if (inversionFilter)
 					inversionFilter = NEW FilterTree(inversionFilter, filter);
Thread
bk commit into 6.0 tree (jas:1.2791)U-ROWVWADEjas28 Jan