aboutsummaryrefslogtreecommitdiff
path: root/contrib/intarray/_int.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/intarray/_int.c')
-rw-r--r--contrib/intarray/_int.c310
1 files changed, 155 insertions, 155 deletions
diff --git a/contrib/intarray/_int.c b/contrib/intarray/_int.c
index 35ee7a659e2..ba91a0eba4a 100644
--- a/contrib/intarray/_int.c
+++ b/contrib/intarray/_int.c
@@ -33,8 +33,8 @@
/* dimension of array */
#define NDIM 1
-/*
- * flags for gist__int_ops, use ArrayType->flags
+/*
+ * flags for gist__int_ops, use ArrayType->flags
* which is unused (see array.h)
*/
#define LEAFKEY (1<<31)
@@ -112,7 +112,7 @@ printarr(ArrayType *a, int num)
sprintf(cur, "%d ", d[l]);
cur = strchr(cur, '\0');
}
- elog(NOTICE, "\t\t%s", bbb);
+ elog(DEBUG3, "\t\t%s", bbb);
}
static void
printbitvec(BITVEC bv)
@@ -123,7 +123,7 @@ printbitvec(BITVEC bv)
str[SIGLENBIT] = '\0';
LOOPBIT(str[i] = (GETBIT(bv, i)) ? '1' : '0');
- elog(NOTICE, "BV: %s", str);
+ elog(DEBUG3, "BV: %s", str);
}
#endif
@@ -234,7 +234,7 @@ static void rt__intbig_size(ArrayType *a, float *sz);
/*****************************************************************************
- * Boolean Search
+ * Boolean Search
*****************************************************************************/
#define BooleanSearchStrategy 20
@@ -261,17 +261,17 @@ typedef struct {
PG_FUNCTION_INFO_V1(bqarr_in);
PG_FUNCTION_INFO_V1(bqarr_out);
-Datum bqarr_in(PG_FUNCTION_ARGS);
+Datum bqarr_in(PG_FUNCTION_ARGS);
Datum bqarr_out(PG_FUNCTION_ARGS);
-
+
PG_FUNCTION_INFO_V1(boolop);
-Datum boolop(PG_FUNCTION_ARGS);
+Datum boolop(PG_FUNCTION_ARGS);
PG_FUNCTION_INFO_V1(rboolop);
-Datum rboolop(PG_FUNCTION_ARGS);
+Datum rboolop(PG_FUNCTION_ARGS);
PG_FUNCTION_INFO_V1(querytree);
-Datum querytree(PG_FUNCTION_ARGS);
+Datum querytree(PG_FUNCTION_ARGS);
static bool signconsistent( QUERYTYPE *query, BITVEC sign, bool leaf );
static bool execconsistent( QUERYTYPE *query, ArrayType *array, bool leaf );
@@ -294,10 +294,10 @@ g_int_consistent(PG_FUNCTION_ARGS) {
bool retval;
if ( strategy == BooleanSearchStrategy )
- PG_RETURN_BOOL(execconsistent( (QUERYTYPE*)query,
+ PG_RETURN_BOOL(execconsistent( (QUERYTYPE*)query,
(ArrayType *) DatumGetPointer(entry->key),
ISLEAFKEY( (ArrayType *) DatumGetPointer(entry->key) ) ) );
-
+
/* XXX are we sure it's safe to scribble on the query object here? */
/* XXX what about toasted input? */
/* sort query for fast search, key is already sorted */
@@ -317,10 +317,10 @@ g_int_consistent(PG_FUNCTION_ARGS) {
query);
break;
case RTContainedByStrategyNumber:
- if ( GIST_LEAF(entry) )
+ if ( GIST_LEAF(entry) )
retval = inner_int_contains(query,
(ArrayType *) DatumGetPointer(entry->key) );
- else
+ else
retval = inner_int_overlap((ArrayType *) DatumGetPointer(entry->key),
query);
break;
@@ -334,9 +334,9 @@ Datum
g_int_union(PG_FUNCTION_ARGS)
{
PG_RETURN_POINTER( _int_common_union(
- (bytea *) PG_GETARG_POINTER(0),
- (int *) PG_GETARG_POINTER(1),
- inner_int_union
+ (bytea *) PG_GETARG_POINTER(0),
+ (int *) PG_GETARG_POINTER(1),
+ inner_int_union
) );
}
@@ -371,10 +371,10 @@ g_int_compress(PG_FUNCTION_ARGS)
if ( r != (ArrayType*)DatumGetPointer(entry->key) )
pfree(r);
PG_RETURN_POINTER(entry);
- }
+ }
if ( (len=ARRNELEMS(r)) >= 2 * MAXNUMRANGE) { /* compress */
- if ( r == (ArrayType*)DatumGetPointer( entry->key) )
+ if ( r == (ArrayType*)DatumGetPointer( entry->key) )
r = (ArrayType *) PG_DETOAST_DATUM_COPY(entry->key);
r = resize_intArrayType(r, 2 * (len));
@@ -434,11 +434,11 @@ g_int_decompress(PG_FUNCTION_ARGS)
if (lenin < 2 * MAXNUMRANGE || ISLEAFKEY( in ) ) { /* not comressed value */
if ( in != (ArrayType *) DatumGetPointer(entry->key)) {
retval = palloc(sizeof(GISTENTRY));
- gistentryinit(*retval, PointerGetDatum(in),
+ gistentryinit(*retval, PointerGetDatum(in),
entry->rel, entry->page, entry->offset, VARSIZE(in), FALSE);
PG_RETURN_POINTER(retval);
- }
+ }
PG_RETURN_POINTER(entry);
}
@@ -456,7 +456,7 @@ g_int_decompress(PG_FUNCTION_ARGS)
if (in != (ArrayType *) DatumGetPointer(entry->key))
pfree(in);
retval = palloc(sizeof(GISTENTRY));
- gistentryinit(*retval, PointerGetDatum(r),
+ gistentryinit(*retval, PointerGetDatum(r),
entry->rel, entry->page, entry->offset, VARSIZE(r), FALSE);
PG_RETURN_POINTER(retval);
@@ -468,10 +468,10 @@ g_int_decompress(PG_FUNCTION_ARGS)
Datum
g_int_penalty(PG_FUNCTION_ARGS)
{
- PG_RETURN_POINTER( _int_common_penalty(
- (GISTENTRY *)PG_GETARG_POINTER(0),
- (GISTENTRY *)PG_GETARG_POINTER(1),
- (float *) PG_GETARG_POINTER(2),
+ PG_RETURN_POINTER( _int_common_penalty(
+ (GISTENTRY *)PG_GETARG_POINTER(0),
+ (GISTENTRY *)PG_GETARG_POINTER(1),
+ (float *) PG_GETARG_POINTER(2),
inner_int_union, rt__int_size
) );
}
@@ -481,12 +481,12 @@ Datum
g_int_picksplit(PG_FUNCTION_ARGS)
{
PG_RETURN_POINTER( _int_common_picksplit(
- (bytea *)PG_GETARG_POINTER(0),
+ (bytea *)PG_GETARG_POINTER(0),
(GIST_SPLITVEC *)PG_GETARG_POINTER(1),
inner_int_union,
inner_int_inter,
rt__int_size,
- 0.01
+ 0.01
) );
}
@@ -520,14 +520,14 @@ g_int_same(PG_FUNCTION_ARGS)
PG_RETURN_POINTER(result);
}
-Datum
+Datum
_int_contained(PG_FUNCTION_ARGS)
{
- PG_RETURN_BOOL( DatumGetBool(
- DirectFunctionCall2(
- _int_contains,
- PointerGetDatum(PG_GETARG_POINTER(1)),
- PointerGetDatum(PG_GETARG_POINTER(0))
+ PG_RETURN_BOOL( DatumGetBool(
+ DirectFunctionCall2(
+ _int_contains,
+ PointerGetDatum(PG_GETARG_POINTER(1)),
+ PointerGetDatum(PG_GETARG_POINTER(0))
)
));
}
@@ -570,7 +570,7 @@ inner_int_contains(ArrayType *a, ArrayType *b)
db = ARRPTR(b);
#ifdef GIST_DEBUG
- elog(NOTICE, "contains %d %d", na, nb);
+ elog(DEBUG3, "contains %d %d", na, nb);
#endif
i = j = n = 0;
@@ -593,14 +593,14 @@ inner_int_contains(ArrayType *a, ArrayType *b)
* Operator class for R-tree indexing
*****************************************************************************/
-Datum
+Datum
_int_different(PG_FUNCTION_ARGS)
{
- PG_RETURN_BOOL( ! DatumGetBool(
- DirectFunctionCall2(
- _int_same,
- PointerGetDatum(PG_GETARG_POINTER(0)),
- PointerGetDatum(PG_GETARG_POINTER(1))
+ PG_RETURN_BOOL( ! DatumGetBool(
+ DirectFunctionCall2(
+ _int_same,
+ PointerGetDatum(PG_GETARG_POINTER(0)),
+ PointerGetDatum(PG_GETARG_POINTER(1))
)
));
}
@@ -690,7 +690,7 @@ inner_int_overlap(ArrayType *a, ArrayType *b)
db = ARRPTR(b);
#ifdef GIST_DEBUG
- elog(NOTICE, "g_int_overlap");
+ elog(DEBUG3, "g_int_overlap");
#endif
i = j = 0;
@@ -1030,7 +1030,7 @@ rt__intbig_size(ArrayType *a, float *sz)
GETBITBYTE(bv,7) ;
bv = (BITVECP) ( ((char*)bv) + 1 );
);
-
+
*sz = (float) len;
return;
}
@@ -1116,19 +1116,19 @@ g_intbig_compress(PG_FUNCTION_ARGS)
in = NULL;
if (!entry->leafkey) {
- LOOPBYTE(
+ LOOPBYTE(
if ( ( ((char*)ARRPTR(in))[i] & 0xff ) != 0xff ) {
maycompress = false;
break;
}
- );
+ );
if ( maycompress ) {
retval = palloc(sizeof(GISTENTRY));
r = new_intArrayType(1);
- gistentryinit(*retval, PointerGetDatum(r),
+ gistentryinit(*retval, PointerGetDatum(r),
entry->rel, entry->page, entry->offset, VARSIZE(r), FALSE);
PG_RETURN_POINTER( retval );
- }
+ }
PG_RETURN_POINTER( entry );
}
@@ -1148,17 +1148,17 @@ g_intbig_compress(PG_FUNCTION_ARGS)
ARRPTR(in),
ARRNELEMS(in));
- LOOPBYTE(
+ LOOPBYTE(
if( ( ((char*)ARRPTR(in))[i] & 0xff ) != 0xff ) {
maycompress = false;
break;
}
- );
+ );
if ( maycompress ) {
pfree(r);
r = new_intArrayType(1);
- }
+ }
gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, VARSIZE(r), FALSE);
@@ -1182,7 +1182,7 @@ g_intbig_decompress(PG_FUNCTION_ARGS)
retval = palloc(sizeof(GISTENTRY));
- gistentryinit(*retval, PointerGetDatum(key),
+ gistentryinit(*retval, PointerGetDatum(key),
entry->rel, entry->page, entry->offset, (key) ? VARSIZE(key) : 0, FALSE);
PG_RETURN_POINTER( retval );
}
@@ -1192,9 +1192,9 @@ g_intbig_decompress(PG_FUNCTION_ARGS)
retval = palloc(sizeof(GISTENTRY));
newkey = new_intArrayType(SIGLENINT);
- MemSet( (void*)ARRPTR(newkey), 0xff, SIGLEN );
+ MemSet( (void*)ARRPTR(newkey), 0xff, SIGLEN );
- gistentryinit(*retval, PointerGetDatum(newkey),
+ gistentryinit(*retval, PointerGetDatum(newkey),
entry->rel, entry->page, entry->offset, VARSIZE(newkey), FALSE);
PG_RETURN_POINTER( retval );
}
@@ -1205,7 +1205,7 @@ Datum
g_intbig_picksplit(PG_FUNCTION_ARGS)
{
PG_RETURN_POINTER( _int_common_picksplit(
- (bytea *)PG_GETARG_POINTER(0),
+ (bytea *)PG_GETARG_POINTER(0),
(GIST_SPLITVEC *)PG_GETARG_POINTER(1),
_intbig_union,
_intbig_inter,
@@ -1217,37 +1217,37 @@ g_intbig_picksplit(PG_FUNCTION_ARGS)
Datum
g_intbig_union(PG_FUNCTION_ARGS)
{
- PG_RETURN_POINTER( _int_common_union(
- (bytea *) PG_GETARG_POINTER(0),
- (int *) PG_GETARG_POINTER(1),
- _intbig_union
- ) );
+ PG_RETURN_POINTER( _int_common_union(
+ (bytea *) PG_GETARG_POINTER(0),
+ (int *) PG_GETARG_POINTER(1),
+ _intbig_union
+ ) );
}
Datum
g_intbig_penalty(PG_FUNCTION_ARGS)
{
- PG_RETURN_POINTER( _int_common_penalty(
- (GISTENTRY *)PG_GETARG_POINTER(0),
- (GISTENTRY *)PG_GETARG_POINTER(1),
- (float *) PG_GETARG_POINTER(2),
+ PG_RETURN_POINTER( _int_common_penalty(
+ (GISTENTRY *)PG_GETARG_POINTER(0),
+ (GISTENTRY *)PG_GETARG_POINTER(1),
+ (float *) PG_GETARG_POINTER(2),
_intbig_union, rt__intbig_size
) );
}
Datum
g_intbig_consistent(PG_FUNCTION_ARGS) {
- GISTENTRY *entry = (GISTENTRY *)PG_GETARG_POINTER(0);
- ArrayType *query = ( ArrayType * )PG_GETARG_POINTER(1);
- StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
+ GISTENTRY *entry = (GISTENTRY *)PG_GETARG_POINTER(0);
+ ArrayType *query = ( ArrayType * )PG_GETARG_POINTER(1);
+ StrategyNumber strategy = (StrategyNumber) PG_GETARG_UINT16(2);
bool retval;
ArrayType *q;
if ( strategy == BooleanSearchStrategy )
- PG_RETURN_BOOL(signconsistent( (QUERYTYPE*)query,
+ PG_RETURN_BOOL(signconsistent( (QUERYTYPE*)query,
SIGPTR((ArrayType *) DatumGetPointer(entry->key)),
false ) );
-
+
/* XXX what about toasted input? */
if (ARRISVOID(query))
return FALSE;
@@ -1293,7 +1293,7 @@ _int_common_union(bytea *entryvec, int *sizep, formarray unionf)
ArrayType *tmp;
#ifdef GIST_DEBUG
- elog(NOTICE, "_int_common_union in");
+ elog(DEBUG3, "_int_common_union in");
#endif
numranges = (VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY);
@@ -1314,12 +1314,12 @@ _int_common_union(bytea *entryvec, int *sizep, formarray unionf)
{
pfree(out);
#ifdef GIST_DEBUG
- elog(NOTICE, "_int_common_union out1");
+ elog(DEBUG3, "_int_common_union out1");
#endif
return NULL;
}
#ifdef GIST_DEBUG
- elog(NOTICE, "_int_common_union out");
+ elog(DEBUG3, "_int_common_union out");
#endif
return (out);
@@ -1339,7 +1339,7 @@ _int_common_penalty(GISTENTRY *origentry, GISTENTRY *newentry, float *result,
tmp2;
#ifdef GIST_DEBUG
- elog(NOTICE, "penalty");
+ elog(DEBUG3, "penalty");
#endif
ud = (*unionf) ((ArrayType *) DatumGetPointer(origentry->key),
(ArrayType *) DatumGetPointer(newentry->key));
@@ -1349,7 +1349,7 @@ _int_common_penalty(GISTENTRY *origentry, GISTENTRY *newentry, float *result,
pfree(ud);
#ifdef GIST_DEBUG
- elog(NOTICE, "--penalty\t%g", *result);
+ elog(DEBUG3, "--penalty\t%g", *result);
#endif
return (result);
@@ -1360,7 +1360,7 @@ typedef struct {
float cost;
} SPLITCOST;
-static int
+static int
comparecost( const void *a, const void *b ) {
if ( ((SPLITCOST*)a)->cost == ((SPLITCOST*)b)->cost )
return 0;
@@ -1408,7 +1408,7 @@ _int_common_picksplit(bytea *entryvec,
SPLITCOST *costvector;
#ifdef GIST_DEBUG
- elog(NOTICE, "--------picksplit %d", (VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY));
+ elog(DEBUG3, "--------picksplit %d", (VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY));
#endif
maxoff = ((VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY)) - 2;
@@ -1471,7 +1471,7 @@ _int_common_picksplit(bytea *entryvec,
maxoff = OffsetNumberNext(maxoff);
/*
- * sort entries
+ * sort entries
*/
costvector=(SPLITCOST*)palloc( sizeof(SPLITCOST)*maxoff );
for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) {
@@ -1486,7 +1486,7 @@ _int_common_picksplit(bytea *entryvec,
costvector[i-1].cost = abs( (size_alpha - size_l) - (size_beta - size_r) );
}
qsort( (void*)costvector, maxoff, sizeof(SPLITCOST), comparecost );
-
+
/*
* Now split up the regions between the two seeds. An important
* property of this split algorithm is that the split vector v has the
@@ -1499,7 +1499,7 @@ _int_common_picksplit(bytea *entryvec,
* tuples and i == maxoff + 1.
*/
-
+
for (j = 0; j < maxoff; j++) {
i = costvector[j].pos;
@@ -1562,13 +1562,13 @@ _int_common_picksplit(bytea *entryvec,
v->spl_rdatum = PointerGetDatum(datum_r);
#ifdef GIST_DEBUG
- elog(NOTICE, "--------ENDpicksplit %d %d", v->spl_nleft, v->spl_nright);
+ elog(DEBUG3, "--------ENDpicksplit %d %d", v->spl_nleft, v->spl_nright);
#endif
return v;
}
/*****************************************************************************
- * BoolSearch
+ * BoolSearch
*****************************************************************************/
@@ -1607,7 +1607,7 @@ typedef struct {
/*
* get token from query string
*/
-static int4
+static int4
gettoken( WORKSTATE* state, int4* val ) {
char nnn[16], *curnnn;
@@ -1616,7 +1616,7 @@ gettoken( WORKSTATE* state, int4* val ) {
switch(state->state) {
case WAITOPERAND:
curnnn=nnn;
- if ( (*(state->buf)>='0' && *(state->buf)<='9') ||
+ if ( (*(state->buf)>='0' && *(state->buf)<='9') ||
*(state->buf)=='-' ) {
state->state = WAITENDOPERAND;
*curnnn = *(state->buf);
@@ -1629,7 +1629,7 @@ gettoken( WORKSTATE* state, int4* val ) {
state->count++;
(state->buf)++;
return OPEN;
- } else if ( *(state->buf) != ' ' )
+ } else if ( *(state->buf) != ' ' )
return ERR;
break;
case WAITENDOPERAND:
@@ -1640,7 +1640,7 @@ gettoken( WORKSTATE* state, int4* val ) {
*curnnn = '\0';
*val=(int4)atoi( nnn );
state->state = WAITOPERATOR;
- return ( state->count && *(state->buf) == '\0' )
+ return ( state->count && *(state->buf) == '\0' )
? ERR : VAL;
}
break;
@@ -1648,7 +1648,7 @@ gettoken( WORKSTATE* state, int4* val ) {
if ( *(state->buf) == '&' || *(state->buf) == '|' ) {
state->state = WAITOPERAND;
*val = (int4) *(state->buf);
- (state->buf)++;
+ (state->buf)++;
return OPR;
} else if ( *(state->buf) == ')' ) {
(state->buf)++;
@@ -1659,11 +1659,11 @@ gettoken( WORKSTATE* state, int4* val ) {
} else if ( *(state->buf) != ' ' )
return ERR;
break;
- default:
+ default:
return ERR;
break;
- }
- (state->buf)++;
+ }
+ (state->buf)++;
}
return END;
}
@@ -1686,7 +1686,7 @@ pushquery( WORKSTATE *state, int4 type, int4 val ) {
/*
* make polish notaion of query
*/
-static int4
+static int4
makepol(WORKSTATE *state) {
int4 val,type;
int4 stack[STACKDEPTH];
@@ -1696,7 +1696,7 @@ makepol(WORKSTATE *state) {
switch(type) {
case VAL:
pushquery(state, type, val);
- while ( lenstack && (stack[ lenstack-1 ] == (int4)'&' ||
+ while ( lenstack && (stack[ lenstack-1 ] == (int4)'&' ||
stack[ lenstack-1 ] == (int4)'!') ) {
lenstack--;
pushquery(state, OPR, stack[ lenstack ]);
@@ -1705,7 +1705,7 @@ makepol(WORKSTATE *state) {
case OPR:
if ( lenstack && val == (int4) '|' ) {
pushquery(state, OPR, val);
- } else {
+ } else {
if ( lenstack == STACKDEPTH )
elog(ERROR,"Stack too short");
stack[ lenstack ] = val;
@@ -1714,7 +1714,7 @@ makepol(WORKSTATE *state) {
break;
case OPEN:
if ( makepol( state ) == ERR ) return ERR;
- if ( lenstack && (stack[ lenstack-1 ] == (int4)'&' ||
+ if ( lenstack && (stack[ lenstack-1 ] == (int4)'&' ||
stack[ lenstack-1 ] == (int4)'!') ) {
lenstack--;
pushquery(state, OPR, stack[ lenstack ]);
@@ -1731,7 +1731,7 @@ makepol(WORKSTATE *state) {
default:
elog(ERROR,"Syntax error");
return ERR;
-
+
}
}
@@ -1772,7 +1772,7 @@ checkcondition_arr( void *checkval, int4 val ) {
static bool
checkcondition_bit( void *checkval, int4 val ) {
- return GETBIT( checkval, HASHVAL( val ) );
+ return GETBIT( checkval, HASHVAL( val ) );
}
/*
@@ -1784,8 +1784,8 @@ execute( ITEM* curitem, void *checkval, bool calcnot, bool (*chkcond)(void *chec
if ( curitem->type == VAL ) {
return (*chkcond)( checkval, curitem->val );
} else if ( curitem->val == (int4)'!' ) {
- return ( calcnot ) ?
- ( ( execute(curitem - 1, checkval, calcnot, chkcond) ) ? false : true )
+ return ( calcnot ) ?
+ ( ( execute(curitem - 1, checkval, calcnot, chkcond) ) ? false : true )
: true;
} else if ( curitem->val == (int4)'&' ) {
if ( execute(curitem + curitem->left, checkval, calcnot, chkcond) )
@@ -1799,35 +1799,35 @@ execute( ITEM* curitem, void *checkval, bool calcnot, bool (*chkcond)(void *chec
return execute(curitem - 1, checkval, calcnot, chkcond);
}
return false;
-}
+}
/*
* signconsistent & execconsistent called by *_consistent
*/
-static bool
+static bool
signconsistent( QUERYTYPE *query, BITVEC sign, bool calcnot ) {
- return execute(
- GETQUERY(query) + query->size-1 ,
- (void*)sign, calcnot,
- checkcondition_bit
- );
+ return execute(
+ GETQUERY(query) + query->size-1 ,
+ (void*)sign, calcnot,
+ checkcondition_bit
+ );
}
-static bool
+static bool
execconsistent( QUERYTYPE *query, ArrayType *array, bool calcnot ) {
CHKVAL chkval;
chkval.arrb = ARRPTR(array);
chkval.arre = chkval.arrb + ARRNELEMS(array);
- return execute(
- GETQUERY(query) + query->size-1 ,
- (void*)&chkval, calcnot,
- checkcondition_arr
+ return execute(
+ GETQUERY(query) + query->size-1 ,
+ (void*)&chkval, calcnot,
+ checkcondition_arr
);
}
/*
- * boolean operations
+ * boolean operations
*/
Datum
rboolop(PG_FUNCTION_ARGS) {
@@ -1844,7 +1844,7 @@ boolop(PG_FUNCTION_ARGS) {
QUERYTYPE *query = ( QUERYTYPE * )PG_DETOAST_DATUM(PG_GETARG_POINTER(1));
CHKVAL chkval;
bool result;
-
+
if ( ARRISVOID( val ) ) {
pfree(val);
PG_FREE_IF_COPY(query,1);
@@ -1854,10 +1854,10 @@ boolop(PG_FUNCTION_ARGS) {
PREPAREARR(val);
chkval.arrb = ARRPTR(val);
chkval.arre = chkval.arrb + ARRNELEMS(val);
- result = execute(
- GETQUERY(query) + query->size-1 ,
- &chkval, true,
- checkcondition_arr
+ result = execute(
+ GETQUERY(query) + query->size-1 ,
+ &chkval, true,
+ checkcondition_arr
);
pfree(val);
@@ -1868,7 +1868,7 @@ boolop(PG_FUNCTION_ARGS) {
static void
findoprnd( ITEM *ptr, int4 *pos ) {
#ifdef BS_DEBUG
- elog(NOTICE, ( ptr[*pos].type == OPR ) ?
+ elog(DEBUG3, ( ptr[*pos].type == OPR ) ?
"%d %c" : "%d %d ", *pos, ptr[*pos].val );
#endif
if ( ptr[*pos].type == VAL ) {
@@ -1880,7 +1880,7 @@ findoprnd( ITEM *ptr, int4 *pos ) {
findoprnd( ptr, pos );
} else {
ITEM *curitem = &ptr[*pos];
- int4 tmp = *pos;
+ int4 tmp = *pos;
(*pos)--;
findoprnd(ptr,pos);
curitem->left = *pos - tmp;
@@ -1914,7 +1914,7 @@ bqarr_in(PG_FUNCTION_ARGS) {
/* make polish notation (postfix, but in reverse order) */
makepol( &state );
- if (!state.num)
+ if (!state.num)
elog( ERROR,"Empty query");
commonlen = COMPUTESIZE(state.num);
@@ -1924,26 +1924,26 @@ bqarr_in(PG_FUNCTION_ARGS) {
ptr = GETQUERY(query);
for(i=state.num-1; i>=0; i-- ) {
- ptr[i].type = state.str->type;
+ ptr[i].type = state.str->type;
ptr[i].val = state.str->val;
tmp = state.str->next;
pfree( state.str );
state.str = tmp;
}
-
+
pos = query->size-1;
findoprnd( ptr, &pos );
#ifdef BS_DEBUG
cur = pbuf;
*cur = '\0';
for( i=0;i<query->size;i++ ) {
- if ( ptr[i].type == OPR )
+ if ( ptr[i].type == OPR )
sprintf(cur, "%c(%d) ", ptr[i].val, ptr[i].left);
- else
+ else
sprintf(cur, "%d ", ptr[i].val );
- cur = strchr(cur,'\0');
+ cur = strchr(cur,'\0');
}
- elog(NOTICE,"POR: %s", pbuf);
+ elog(DEBUG3,"POR: %s", pbuf);
#endif
PG_RETURN_POINTER( query );
@@ -1986,17 +1986,17 @@ infix(INFIX *in, bool first) {
RESIZEBUF(in, 2);
sprintf(in->cur, "( ");
in->cur = strchr( in->cur, '\0' );
- }
+ }
infix( in, isopr );
if ( isopr ) {
RESIZEBUF(in, 2);
sprintf(in->cur, " )");
in->cur = strchr( in->cur, '\0' );
- }
+ }
} else {
int4 op = in->curpol->val;
INFIX nrm;
-
+
in->curpol--;
if ( op == (int4)'|' && ! first) {
RESIZEBUF(in, 2);
@@ -2007,10 +2007,10 @@ infix(INFIX *in, bool first) {
nrm.curpol = in->curpol;
nrm.buflen = 16;
nrm.cur = nrm.buf = (char*)palloc( sizeof(char) * nrm.buflen );
-
+
/* get right operand */
infix( &nrm, false );
-
+
/* get & print left operand */
in->curpol = nrm.curpol;
infix( in, false );
@@ -2036,13 +2036,13 @@ bqarr_out(PG_FUNCTION_ARGS) {
INFIX nrm;
if ( query->size == 0 )
- elog(ERROR,"Empty");
+ elog(ERROR,"Empty");
nrm.curpol = GETQUERY(query) + query->size - 1;
nrm.buflen = 32;
nrm.cur = nrm.buf = (char*)palloc( sizeof(char) * nrm.buflen );
*(nrm.cur) = '\0';
infix( &nrm, true );
-
+
PG_FREE_IF_COPY(query,0);
PG_RETURN_POINTER( nrm.buf );
}
@@ -2054,16 +2054,16 @@ countdroptree( ITEM *q, int4 pos ) {
} else if ( q[pos].val == (int4)'!' ) {
return 1+countdroptree(q, pos-1);
} else {
- return 1 + countdroptree(q, pos-1) + countdroptree(q, pos + q[pos].left);
- }
+ return 1 + countdroptree(q, pos-1) + countdroptree(q, pos + q[pos].left);
+ }
}
/*
* common algorithm:
- * result of all '!' will be = 'true', so
+ * result of all '!' will be = 'true', so
* we can modify query tree for clearing
*/
-static int4
+static int4
shorterquery( ITEM *q, int4 len ) {
int4 index,posnot,poscor;
bool notisleft = false;
@@ -2093,7 +2093,7 @@ shorterquery( ITEM *q, int4 len ) {
if ( poscor == posnot+1 ) {
notisleft = false;
break;
- } else if ( q[poscor].left + poscor == posnot ) {
+ } else if ( q[poscor].left + poscor == posnot ) {
notisleft = true;
break;
}
@@ -2104,9 +2104,9 @@ shorterquery( ITEM *q, int4 len ) {
q[poscor-1].type=VAL;
for(i=poscor+1;i<len;i++)
if ( q[i].type == OPR && q[i].left + i <= poscor )
- q[i].left += drop - 2;
- memcpy( (void*)&q[poscor-drop+1],
- (void*)&q[poscor-1],
+ q[i].left += drop - 2;
+ memcpy( (void*)&q[poscor-drop+1],
+ (void*)&q[poscor-1],
sizeof(ITEM) * ( len - (poscor-1) ));
len -= drop - 2;
} else if ( q[poscor].val == (int4)'|' ) {
@@ -2116,16 +2116,16 @@ shorterquery( ITEM *q, int4 len ) {
q[poscor].left=-1;
for(i=poscor+1;i<len;i++)
if ( q[i].type == OPR && q[i].left + i < poscor )
- q[i].left += drop - 2;
- memcpy( (void*)&q[poscor-drop+1],
- (void*)&q[poscor-1],
+ q[i].left += drop - 2;
+ memcpy( (void*)&q[poscor-drop+1],
+ (void*)&q[poscor-1],
sizeof(ITEM) * ( len - (poscor-1) ));
len -= drop - 2;
} else { /* &-operator */
- if (
- (notisleft && q[poscor-1].type == OPR &&
+ if (
+ (notisleft && q[poscor-1].type == OPR &&
q[poscor-1].val == (int4)'!' ) ||
- (!notisleft && q[poscor+q[poscor].left].type == OPR &&
+ (!notisleft && q[poscor+q[poscor].left].type == OPR &&
q[poscor+q[poscor].left].val == (int4)'!' )
) { /* drop subtree */
drop = countdroptree(q, poscor);
@@ -2134,26 +2134,26 @@ shorterquery( ITEM *q, int4 len ) {
q[poscor].left=-1;
for(i=poscor+1;i<len;i++)
if ( q[i].type == OPR && q[i].left + i < poscor )
- q[i].left += drop - 2;
- memcpy( (void*)&q[poscor-drop+1],
- (void*)&q[poscor-1],
+ q[i].left += drop - 2;
+ memcpy( (void*)&q[poscor-drop+1],
+ (void*)&q[poscor-1],
sizeof(ITEM) * ( len - (poscor-1) ));
len -= drop - 2;
} else { /* drop only operator */
- int4 subtreepos = ( notisleft ) ?
+ int4 subtreepos = ( notisleft ) ?
poscor-1 : poscor+q[poscor].left;
int4 subtreelen = countdroptree( q, subtreepos );
drop = countdroptree(q, poscor);
for(i=poscor+1;i<len;i++)
if ( q[i].type == OPR && q[i].left + i < poscor )
- q[i].left += drop - subtreelen;
- memcpy( (void*)&q[ subtreepos+1 ],
- (void*)&q[poscor+1],
- sizeof(ITEM)*( len - (poscor-1) ) );
- memcpy( (void*)&q[ poscor-drop+1 ],
- (void*)&q[subtreepos-subtreelen+1],
+ q[i].left += drop - subtreelen;
+ memcpy( (void*)&q[ subtreepos+1 ],
+ (void*)&q[poscor+1],
+ sizeof(ITEM)*( len - (poscor-1) ) );
+ memcpy( (void*)&q[ poscor-drop+1 ],
+ (void*)&q[subtreepos-subtreelen+1],
sizeof(ITEM)*( len - (drop-subtreelen) ) );
- len -= drop - subtreelen;
+ len -= drop - subtreelen;
}
}
} while( index );