@@ -1555,7 +1555,7 @@ Datum vops_text_input(PG_FUNCTION_ARGS)
15551555elog (ERROR ,"Invalid vops_char width" );
15561556
15571557var = vops_alloc_text (width );
1558- result = ( vops_tile_hdr * ) VARDATA (var );
1558+ result = VOPS_TEXT_TILE (var );
15591559result -> null_mask = 0 ;
15601560result -> empty_mask = 0 ;
15611561dst = (char * )result + 1 ;
@@ -1617,7 +1617,7 @@ PG_FUNCTION_INFO_V1(vops_text_output);
16171617Datum vops_text_output (PG_FUNCTION_ARGS )
16181618{
16191619struct varlena * var = (struct varlena * )PG_GETARG_POINTER (0 );
1620- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (var );
1620+ vops_tile_hdr * tile = VOPS_TEXT_TILE (var );
16211621char * src = (char * )(tile + 1 );
16221622int width = VOPS_ELEM_SIZE (var );
16231623int i ;
@@ -1660,8 +1660,8 @@ Datum vops_text_##op(PG_FUNCTION_ARGS)\
16601660{\
16611661struct varlena* vl = PG_GETARG_VARLENA_PP(0);\
16621662struct varlena* vr = PG_GETARG_VARLENA_PP(1);\
1663- vops_tile_hdr* left =(vops_tile_hdr*)VARDATA( vl);\
1664- vops_tile_hdr* right =(vops_tile_hdr*)VARDATA( vl);\
1663+ vops_tile_hdr* left =VOPS_TEXT_TILE( vl); \
1664+ vops_tile_hdr* right =VOPS_TEXT_TILE( vl); \
16651665size_t left_elem_size = VOPS_ELEM_SIZE(vl);\
16661666size_t right_elem_size = VOPS_ELEM_SIZE(vr);\
16671667char* l = (char*)(left + 1);\
@@ -1694,7 +1694,7 @@ Datum vops_text_##op##_rconst(PG_FUNCTION_ARGS) \
16941694{\
16951695struct varlena* var = PG_GETARG_VARLENA_PP(0);\
16961696text* t = PG_GETARG_TEXT_P(1);\
1697- vops_tile_hdr* left =(vops_tile_hdr*)VARDATA( var);\
1697+ vops_tile_hdr* left =VOPS_TEXT_TILE( var); \
16981698size_t elem_size = VOPS_ELEM_SIZE(var);\
16991699char* const_data = (char*)VARDATA(t);\
17001700size_t const_size = VARSIZE(t) - VARHDRSZ;\
@@ -1729,7 +1729,7 @@ Datum vops_text_##op##_lconst(PG_FUNCTION_ARGS)\
17291729{\
17301730struct varlena* var = PG_GETARG_VARLENA_PP(1);\
17311731text* t = PG_GETARG_TEXT_P(0);\
1732- vops_tile_hdr* right =(vops_tile_hdr*)VARDATA( var);\
1732+ vops_tile_hdr* right =VOPS_TEXT_TILE( var); \
17331733size_t elem_size = VOPS_ELEM_SIZE(var);\
17341734char* const_data = (char*)VARDATA(t);\
17351735size_t const_size = VARSIZE(t) - VARHDRSZ;\
@@ -1775,7 +1775,7 @@ Datum vops_text_const(PG_FUNCTION_ARGS)
17751775size_t const_size = VARSIZE (t )- VARHDRSZ ;
17761776int width = PG_GETARG_INT32 (1 );
17771777struct varlena * var = vops_alloc_text (width );
1778- vops_tile_hdr * result = ( vops_tile_hdr * ) VARDATA (var );
1778+ vops_tile_hdr * result = VOPS_TEXT_TILE (var );
17791779char * dst = (char * )(result + 1 );
17801780int i ;
17811781for (i = 0 ;i < TILE_SIZE ;i ++ )
@@ -1801,14 +1801,14 @@ Datum vops_text_concat(PG_FUNCTION_ARGS)
18011801{
18021802struct varlena * vl = PG_GETARG_VARLENA_PP (0 );
18031803struct varlena * vr = PG_GETARG_VARLENA_PP (1 );
1804- vops_tile_hdr * left = ( vops_tile_hdr * ) VARDATA (vl );
1805- vops_tile_hdr * right = ( vops_tile_hdr * ) VARDATA (vl );
1804+ vops_tile_hdr * left = VOPS_TEXT_TILE (vl );
1805+ vops_tile_hdr * right = VOPS_TEXT_TILE (vl );
18061806size_t left_elem_size = VOPS_ELEM_SIZE (vl );
18071807size_t right_elem_size = VOPS_ELEM_SIZE (vr );
18081808char * l = (char * )(left + 1 );
18091809char * r = (char * )(right + 1 );
18101810struct varlena * var = vops_alloc_text (left_elem_size + right_elem_size );
1811- vops_tile_hdr * result = ( vops_tile_hdr * ) VARDATA (var );
1811+ vops_tile_hdr * result = VOPS_TEXT_TILE (var );
18121812char * dst = (char * )(result + 1 );
18131813int i ;
18141814for (i = 0 ;i < TILE_SIZE ;i ++ ) {
@@ -1831,7 +1831,7 @@ Datum vops_betwixt_text(PG_FUNCTION_ARGS)
18311831size_t from_size = VARSIZE (from )- VARHDRSZ ;
18321832char * till_data = (char * )VARDATA (till );
18331833size_t till_size = VARSIZE (till )- VARHDRSZ ;
1834- vops_tile_hdr * left = ( vops_tile_hdr * ) VARDATA (var );
1834+ vops_tile_hdr * left = VOPS_TEXT_TILE (var );
18351835char * l = (char * )(left + 1 );
18361836vops_bool * result = (vops_bool * )palloc (sizeof (vops_bool ));
18371837int i ;
@@ -1859,13 +1859,13 @@ PG_FUNCTION_INFO_V1(vops_ifnull_text);
18591859Datum vops_ifnull_text (PG_FUNCTION_ARGS )
18601860{
18611861struct varlena * var = PG_GETARG_VARLENA_PP (0 );
1862- vops_tile_hdr * opd = ( vops_tile_hdr * ) VARDATA (var );
1862+ vops_tile_hdr * opd = VOPS_TEXT_TILE (var );
18631863size_t elem_size = VOPS_ELEM_SIZE (var );
18641864text * subst = PG_GETARG_TEXT_P (1 );
18651865char * subst_data = (char * )VARDATA (subst );
18661866size_t subst_size = VARSIZE (subst )- VARHDRSZ ;
18671867struct varlena * result = vops_alloc_text (elem_size );
1868- vops_tile_hdr * res = ( vops_tile_hdr * ) VARDATA (result );
1868+ vops_tile_hdr * res = VOPS_TEXT_TILE (result );
18691869char * dst = (char * )(res + 1 );
18701870char * src = (char * )(opd + 1 );
18711871int i ;
@@ -1890,15 +1890,15 @@ PG_FUNCTION_INFO_V1(vops_coalesce_text);
18901890Datum vops_coalesce_text (PG_FUNCTION_ARGS )
18911891{
18921892struct varlena * left = PG_GETARG_VARLENA_PP (0 );
1893- vops_tile_hdr * opd = ( vops_tile_hdr * ) VARDATA (left );
1893+ vops_tile_hdr * opd = VOPS_TEXT_TILE (left );
18941894size_t elem_size = VOPS_ELEM_SIZE (left );
18951895
18961896struct varlena * right = PG_GETARG_VARLENA_PP (1 );
1897- vops_tile_hdr * subst = ( vops_tile_hdr * ) VARDATA (right );
1897+ vops_tile_hdr * subst = VOPS_TEXT_TILE (right );
18981898size_t subst_elem_size = VOPS_ELEM_SIZE (right );
18991899
19001900struct varlena * result = vops_alloc_text (elem_size );
1901- vops_tile_hdr * res = ( vops_tile_hdr * ) VARDATA (result );
1901+ vops_tile_hdr * res = VOPS_TEXT_TILE (result );
19021902char * dst = (char * )(res + 1 );
19031903char * src = (char * )(opd + 1 );
19041904int i ;
@@ -1921,7 +1921,7 @@ PG_FUNCTION_INFO_V1(vops_text_first);
19211921Datum vops_text_first (PG_FUNCTION_ARGS )
19221922{
19231923struct varlena * var = PG_GETARG_VARLENA_PP (0 );
1924- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (var );
1924+ vops_tile_hdr * tile = VOPS_TEXT_TILE (var );
19251925size_t elem_size = VOPS_ELEM_SIZE (var );
19261926
19271927uint64 mask = ~(tile -> empty_mask |tile -> null_mask );
@@ -1943,7 +1943,7 @@ PG_FUNCTION_INFO_V1(vops_text_last);
19431943Datum vops_text_last (PG_FUNCTION_ARGS )
19441944{
19451945struct varlena * var = PG_GETARG_VARLENA_PP (0 );
1946- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (var );
1946+ vops_tile_hdr * tile = VOPS_TEXT_TILE (var );
19471947size_t elem_size = VOPS_ELEM_SIZE (var );
19481948
19491949uint64 mask = ~(tile -> empty_mask |tile -> null_mask );
@@ -1965,7 +1965,7 @@ PG_FUNCTION_INFO_V1(vops_text_low);
19651965Datum vops_text_low (PG_FUNCTION_ARGS )
19661966{
19671967struct varlena * var = PG_GETARG_VARLENA_PP (0 );
1968- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (var );
1968+ vops_tile_hdr * tile = VOPS_TEXT_TILE (var );
19691969size_t elem_size = VOPS_ELEM_SIZE (var );
19701970
19711971uint64 mask = ~(tile -> empty_mask |tile -> null_mask );
@@ -1997,7 +1997,7 @@ PG_FUNCTION_INFO_V1(vops_text_high);
19971997Datum vops_text_high (PG_FUNCTION_ARGS )
19981998{
19991999struct varlena * var = PG_GETARG_VARLENA_PP (0 );
2000- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (var );
2000+ vops_tile_hdr * tile = VOPS_TEXT_TILE (var );
20012001size_t elem_size = VOPS_ELEM_SIZE (var );
20022002
20032003uint64 mask = ~(tile -> empty_mask |tile -> null_mask );
@@ -2049,7 +2049,7 @@ Datum vops_text_first_accumulate(PG_FUNCTION_ARGS)
20492049state -> ts = tss -> payload [i ];
20502050state -> ts_is_null = false;
20512051if (vars != NULL ) {
2052- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (vars );
2052+ vops_tile_hdr * tile = VOPS_TEXT_TILE (vars );
20532053if ((tile -> empty_mask |tile -> null_mask )& ((uint64 )1 <<i )) {
20542054state -> val_is_null = true;
20552055}else {
@@ -2102,7 +2102,7 @@ Datum vops_text_last_accumulate(PG_FUNCTION_ARGS)
21022102state -> ts = tss -> payload [i ];
21032103state -> ts_is_null = false;
21042104if (vars != NULL ) {
2105- vops_tile_hdr * tile = ( vops_tile_hdr * ) VARDATA (vars );
2105+ vops_tile_hdr * tile = VOPS_TEXT_TILE (vars );
21062106if ((tile -> empty_mask |tile -> null_mask )& ((uint64 )1 <<i )) {
21072107state -> val_is_null = true;
21082108}else {