@ -40,7 +40,7 @@
int bytea_output = BYTEA_OUTPUT_HEX ;
int bytea_output = BYTEA_OUTPUT_HEX ;
typedef struct varlena unknown ;
typedef struct varlena unknown ;
typedef struct varlena s tring;
typedef struct varlena VarS tring;
typedef struct
typedef struct
{
{
@ -75,7 +75,7 @@ typedef struct
# ifdef HAVE_LOCALE_T
# ifdef HAVE_LOCALE_T
pg_locale_t locale ;
pg_locale_t locale ;
# endif
# endif
} StringSortSupport ;
} Var StringSortSupport;
/*
/*
* This should be large enough that most strings will fit , but small enough
* This should be large enough that most strings will fit , but small enough
@ -89,8 +89,8 @@ typedef struct
# define PG_GETARG_UNKNOWN_P_COPY(n) DatumGetUnknownPCopy(PG_GETARG_DATUM(n))
# define PG_GETARG_UNKNOWN_P_COPY(n) DatumGetUnknownPCopy(PG_GETARG_DATUM(n))
# define PG_RETURN_UNKNOWN_P(x) PG_RETURN_POINTER(x)
# define PG_RETURN_UNKNOWN_P(x) PG_RETURN_POINTER(x)
# define DatumGetStringP(X) ((s tring *) PG_DETOAST_DATUM(X))
# define DatumGetVarStringP(X) ((VarS tring *) PG_DETOAST_DATUM(X))
# define DatumGetStringPP(X) ((s tring *) PG_DETOAST_DATUM_PACKED(X))
# define DatumGetVarStringPP(X) ((VarS tring *) PG_DETOAST_DATUM_PACKED(X))
static int varstrfastcmp_c ( Datum x , Datum y , SortSupport ssup ) ;
static int varstrfastcmp_c ( Datum x , Datum y , SortSupport ssup ) ;
static int bpcharfastcmp_c ( Datum x , Datum y , SortSupport ssup ) ;
static int bpcharfastcmp_c ( Datum x , Datum y , SortSupport ssup ) ;
@ -1766,7 +1766,7 @@ varstr_sortsupport(SortSupport ssup, Oid collid, bool bpchar)
{
{
bool abbreviate = ssup - > abbreviate ;
bool abbreviate = ssup - > abbreviate ;
bool collate_c = false ;
bool collate_c = false ;
StringSortSupport * sss ;
Var StringSortSupport * sss ;
# ifdef HAVE_LOCALE_T
# ifdef HAVE_LOCALE_T
pg_locale_t locale = 0 ;
pg_locale_t locale = 0 ;
@ -1853,7 +1853,7 @@ varstr_sortsupport(SortSupport ssup, Oid collid, bool bpchar)
*/
*/
if ( abbreviate | | ! collate_c )
if ( abbreviate | | ! collate_c )
{
{
sss = palloc ( sizeof ( StringSortSupport ) ) ;
sss = palloc ( sizeof ( Var StringSortSupport) ) ;
sss - > buf1 = palloc ( TEXTBUFLEN ) ;
sss - > buf1 = palloc ( TEXTBUFLEN ) ;
sss - > buflen1 = TEXTBUFLEN ;
sss - > buflen1 = TEXTBUFLEN ;
sss - > buf2 = palloc ( TEXTBUFLEN ) ;
sss - > buf2 = palloc ( TEXTBUFLEN ) ;
@ -1909,8 +1909,8 @@ varstr_sortsupport(SortSupport ssup, Oid collid, bool bpchar)
static int
static int
varstrfastcmp_c ( Datum x , Datum y , SortSupport ssup )
varstrfastcmp_c ( Datum x , Datum y , SortSupport ssup )
{
{
string * arg1 = DatumGetStringPP ( x ) ;
VarString * arg1 = DatumGetVar StringPP ( x ) ;
string * arg2 = DatumGetStringPP ( y ) ;
VarString * arg2 = DatumGetVar StringPP ( y ) ;
char * a1p ,
char * a1p ,
* a2p ;
* a2p ;
int len1 ,
int len1 ,
@ -1979,10 +1979,10 @@ bpcharfastcmp_c(Datum x, Datum y, SortSupport ssup)
static int
static int
varstrfastcmp_locale ( Datum x , Datum y , SortSupport ssup )
varstrfastcmp_locale ( Datum x , Datum y , SortSupport ssup )
{
{
s tring * arg1 = DatumGetStringPP ( x ) ;
VarS tring * arg1 = DatumGetVar StringPP ( x ) ;
s tring * arg2 = DatumGetStringPP ( y ) ;
VarS tring * arg2 = DatumGetVar StringPP ( y ) ;
bool arg1_match ;
bool arg1_match ;
StringSortSupport * sss = ( StringSortSupport * ) ssup - > ssup_extra ;
Var StringSortSupport * sss = ( Var StringSortSupport * ) ssup - > ssup_extra ;
/* working state */
/* working state */
char * a1p ,
char * a1p ,
@ -2134,9 +2134,9 @@ varstrcmp_abbrev(Datum x, Datum y, SortSupport ssup)
static Datum
static Datum
varstr_abbrev_convert ( Datum original , SortSupport ssup )
varstr_abbrev_convert ( Datum original , SortSupport ssup )
{
{
StringSortSupport * sss = ( StringSortSupport * ) ssup - > ssup_extra ;
Var StringSortSupport * sss = ( Var StringSortSupport * ) ssup - > ssup_extra ;
s tring * authoritative = DatumGetStringPP ( original ) ;
VarS tring * authoritative = DatumGetVar StringPP ( original ) ;
char * authoritative_data = VARDATA_ANY ( authoritative ) ;
char * authoritative_data = VARDATA_ANY ( authoritative ) ;
/* working state */
/* working state */
Datum res ;
Datum res ;
@ -2311,7 +2311,7 @@ done:
static bool
static bool
varstr_abbrev_abort ( int memtupcount , SortSupport ssup )
varstr_abbrev_abort ( int memtupcount , SortSupport ssup )
{
{
StringSortSupport * sss = ( StringSortSupport * ) ssup - > ssup_extra ;
Var StringSortSupport * sss = ( Var StringSortSupport * ) ssup - > ssup_extra ;
double abbrev_distinct ,
double abbrev_distinct ,
key_distinct ;
key_distinct ;