mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-28 11:55:03 +03:00 
			
		
		
		
	Reducing the assumed alignment of struct varlena means that the compiler
is also licensed to put a local variable declared that way at an unaligned address. Which will not work if the variable is then manipulated with SET_VARSIZE or other macros that assume alignment. So the previous patch is not an unalloyed good, but on balance I think it's still a win, since we have very few places that do that sort of thing. Fix the one place in tuptoaster.c that does it. Per buildfarm results from gypsy_moth (I'm a bit surprised that only one machine showed a failure).
This commit is contained in:
		| @@ -8,7 +8,7 @@ | ||||
|  * | ||||
|  * | ||||
|  * IDENTIFICATION | ||||
|  *	  $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.82 2008/02/23 19:11:45 tgl Exp $ | ||||
|  *	  $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.83 2008/02/29 17:47:41 tgl Exp $ | ||||
|  * | ||||
|  * | ||||
|  * INTERFACE ROUTINES | ||||
| @@ -1093,7 +1093,8 @@ toast_save_datum(Relation rel, Datum value, | ||||
| 	struct | ||||
| 	{ | ||||
| 		struct varlena hdr; | ||||
| 		char		data[TOAST_MAX_CHUNK_SIZE]; | ||||
| 		char		data[TOAST_MAX_CHUNK_SIZE];	/* make struct big enough */ | ||||
| 		int32		align_it;	/* ensure struct is aligned well enough */ | ||||
| 	}			chunk_data; | ||||
| 	int32		chunk_size; | ||||
| 	int32		chunk_seq = 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user