Re: contrib/ltree patches - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: contrib/ltree patches |
Date | |
Msg-id | 200212050554.gB55scK27167@candle.pha.pa.us Whole thread Raw |
In response to | contrib/ltree patches (Dan Langille <dan@langille.org>) |
Responses |
Re: contrib/ltree patches
|
List | pgsql-hackers |
Dan, is this ready to be applied to CVS? --------------------------------------------------------------------------- Dan Langille wrote: > I have been looking at contrib/ltree in the PostgreSQL repository. I've > modified the code to allow / as a node delimiter instead of . which is the > default. > > Below are the patches to make this change. I have also moved the > delimiter to a DEFINE so that other customizations are easily done. This > is a work in progress. > > My thanks to DarbyD for assistance. > > cheers > > > --- ltree.h.orig Tue Nov 26 18:57:58 2002 > +++ ltree.h Tue Nov 26 20:16:40 2002 > @@ -6,6 +6,8 @@ > #include "utils/palloc.h" > #include "utils/builtins.h" > > +#define NODE_DELIMITER '/' > + > typedef struct > { > uint8 len; > @@ -88,7 +90,7 @@ > #ifndef abs > #define abs(a) ((a) < (0) ? -(a) : (a)) > #endif > -#define ISALNUM(x) ( isalnum((unsigned int)(x)) || (x) == '_' ) > +#define ISALNUM(x) ( isalnum((unsigned int)(x)) || (x) == '_' || (x) == NODE_DELIMITER ) > > /* full text query */ > > --- ltree_io.c Tue Nov 26 20:23:45 2002 > +++ ltree_io.c.orig Tue Nov 26 18:57:26 2002 > @@ -48,7 +48,7 @@ > ptr = buf; > while (*ptr) > { > - if (*ptr == NODE_DELIMITER) > + if (*ptr == '.') > num++; > ptr++; > } > @@ -69,7 +69,7 @@ > } > else if (state == LTPRS_WAITDELIM) > { > - if (*ptr == NODE_DELIMITER) > + if (*ptr == '.') > { > lptr->len = ptr - lptr->start; > if (lptr->len > 255) > @@ -131,7 +131,7 @@ > { > if (i != 0) > { > - *ptr = NODE_DELIMITER; > + *ptr = '.'; > ptr++; > } > memcpy(ptr, curlevel->name, curlevel->len); > @@ -181,7 +181,7 @@ > ptr = buf; > while (*ptr) > { > - if (*ptr == NODE_DELIMITER) > + if (*ptr == '.') > num++; > else if (*ptr == '|') > numOR++; > @@ -265,7 +265,7 @@ > lptr->len, (int) (lptr->start - buf)); > state = LQPRS_WAITVAR; > } > - else if (*ptr == NODE_DELIMITER) > + else if (*ptr == '.') > { > lptr->len = ptr - lptr->start - > ((lptr->flag & LVAR_SUBLEXEM) ? 1 : 0) - > @@ -289,7 +289,7 @@ > { > if (*ptr == '{') > state = LQPRS_WAITFNUM; > - else if (*ptr == NODE_DELIMITER) > + else if (*ptr == '.') > { > curqlevel->low = 0; > curqlevel->high = 0xffff; > @@ -347,7 +347,7 @@ > } > else if (state == LQPRS_WAITEND) > { > - if (*ptr == NODE_DELIMITER) > + if (*ptr == '.') > { > state = LQPRS_WAITLEVEL; > curqlevel = NEXTLEV(curqlevel); > @@ -471,7 +471,7 @@ > { > if (i != 0) > { > - *ptr = NODE_DELIMITER; > + *ptr = '.'; > ptr++; > } > if (curqlevel->numvar) > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
pgsql-hackers by date: