Changeset 612
- Timestamp:
- 05/06/08 17:30:57 (6 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
Makefile.am (modified) (1 diff)
-
storage/storage_pgsql.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Makefile.am
r608 r612 1 1 EXTRA_DIST = Doxyfile.in README.win32 README.protocol contrib UPGRADE 2 2 3 SUBDIRS = etc tools man mio sx util c2s router s2s sm storage 4 5 .PHONY: docs 6 3 SUBDIRS = etc man 7 4 if USE_LIBSUBST 8 5 SUBDIRS += subst 9 6 endif 7 SUBDIRS += tools mio sx util c2s router s2s sm storage 8 9 .PHONY: docs 10 10 11 11 docs: Doxyfile -
trunk/storage/storage_pgsql.c
r545 r612 35 35 char *prefix; 36 36 37 xht filters;38 39 37 int txn; 40 38 } *drvdata_t; … … 139 137 static char *_st_pgsql_convert_filter(st_driver_t drv, const char *owner, const char *filter) { 140 138 drvdata_t data = (drvdata_t) drv->private; 141 char *buf = NULL , *sbuf = NULL, *cfilter;142 int buflen = 0, nbuf = 0 , fbuf;139 char *buf = NULL; 140 int buflen = 0, nbuf = 0; 143 141 st_filter_t f; 144 142 … … 146 144 147 145 nbuf = sprintf(buf, "\"collection-owner\" = '%s'", owner); 148 149 sbuf = xhash_get(data->filters, filter);150 if(sbuf != NULL) {151 PGSQL_SAFE(buf, buflen + strlen(sbuf) + 7, buflen);152 nbuf += sprintf(&buf[nbuf], " AND %s", sbuf);153 return buf;154 }155 156 cfilter = pstrdup(xhash_pool(data->filters), filter);157 146 158 147 f = storage_filter(filter); … … 163 152 nbuf += sprintf(&buf[nbuf], " AND "); 164 153 165 fbuf = nbuf;166 167 154 _st_pgsql_convert_filter_recursive(drv, f, &buf, &buflen, &nbuf); 168 169 xhash_put(data->filters, cfilter, pstrdup(xhash_pool(data->filters), &buf[fbuf]));170 155 171 156 pool_free(f->p); … … 647 632 PQfinish(data->conn); 648 633 649 xhash_free(data->filters);650 651 634 free(data); 652 635 } … … 681 664 682 665 data->conn = conn; 683 684 data->filters = xhash_new(17);685 666 686 667 if(config_get_one(drv->st->sm->config, "storage.pgsql.transactions", 0) != NULL)
