|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $Header: /cvsroot/pgsql/src/backend/access/heap/tuptoaster.c,v 1.20 2001/03/23 04:49:51 momjian Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/access/heap/tuptoaster.c,v 1.21 2001/03/25 00:45:20 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *
|
14 | 14 | * INTERFACE ROUTINES
|
@@ -745,7 +745,10 @@ toast_save_datum(Relation rel, Oid mainoid, int16 attno, Datum value)
|
745 | 745 | Datumt_values[3];
|
746 | 746 | chart_nulls[3];
|
747 | 747 | varattrib*result;
|
748 |
| -charchunk_data[VARHDRSZ+TOAST_MAX_CHUNK_SIZE]; |
| 748 | +struct { |
| 749 | +structvarlenahdr; |
| 750 | +chardata[TOAST_MAX_CHUNK_SIZE]; |
| 751 | +}chunk_data; |
749 | 752 | int32chunk_size;
|
750 | 753 | int32chunk_seq=0;
|
751 | 754 | char*data_p;
|
@@ -780,7 +783,7 @@ toast_save_datum(Relation rel, Oid mainoid, int16 attno, Datum value)
|
780 | 783 | * Initialize constant parts of the tuple data
|
781 | 784 | */
|
782 | 785 | t_values[0]=ObjectIdGetDatum(result->va_content.va_external.va_valueid);
|
783 |
| -t_values[2]=PointerGetDatum(chunk_data); |
| 786 | +t_values[2]=PointerGetDatum(&chunk_data); |
784 | 787 | t_nulls[0]=' ';
|
785 | 788 | t_nulls[1]=' ';
|
786 | 789 | t_nulls[2]=' ';
|
@@ -813,8 +816,8 @@ toast_save_datum(Relation rel, Oid mainoid, int16 attno, Datum value)
|
813 | 816 | * Build a tuple
|
814 | 817 | */
|
815 | 818 | t_values[1]=Int32GetDatum(chunk_seq++);
|
816 |
| -VARATT_SIZEP(chunk_data)=chunk_size+VARHDRSZ; |
817 |
| -memcpy(VARATT_DATA(chunk_data),data_p,chunk_size); |
| 819 | +VARATT_SIZEP(&chunk_data)=chunk_size+VARHDRSZ; |
| 820 | +memcpy(VARATT_DATA(&chunk_data),data_p,chunk_size); |
818 | 821 | toasttup=heap_formtuple(toasttupDesc,t_values,t_nulls);
|
819 | 822 | if (!HeapTupleIsValid(toasttup))
|
820 | 823 | elog(ERROR,"Failed to build TOAST tuple");
|
|