1 Commits

Author SHA1 Message Date
alexhudson 3e31ed5b3e Tag and release for 0.5 2009-06-14 15:01:06 +00:00
7 changed files with 46 additions and 6 deletions
+1 -1
View File
@@ -449,7 +449,7 @@ done
echo \#define BONGO_BUILD_BRANCH \"0.5\" > ./include/bongo-buildinfo.h
echo \#define BONGO_BUILD_VSTR \"v\" >> ./include/bongo-buildinfo.h
echo \#define BONGO_BUILD_VER \"1035\" >> ./include/bongo-buildinfo.h
echo \#define BONGO_BUILD_VER \"1073\" >> ./include/bongo-buildinfo.h
conf_flags="--enable-maintainer-mode"
+1 -1
View File
@@ -3,7 +3,7 @@ AC_PREREQ(2.52)
AC_INIT(src/libs/msgapi/msgapi.c)
AM_INIT_AUTOMAKE(bongo, 0.5.0rc1)
AM_INIT_AUTOMAKE(bongo, 0.5.0)
# this space is here to trick autogen.sh
AM_GNU_GETTEXT([external])
+1 -1
View File
@@ -73,7 +73,7 @@ typedef struct _MsgSQLHandle {
} stmts;
BongoMemStack *memstack;
XplSemaphore *transactionLock;
XplSemaphore transactionLock;
int transactionDepth;
int lockTimeoutMs;
BOOL isNew; // have we just created this?
+4
View File
@@ -757,10 +757,14 @@ StoreObjectIterQueryBuilder(StoreClient *client, QueryBuilder *builder, BOOL sho
}
MemFree(sql);
QueryBuilderFinish(builder);
return 1000;
abort:
if (sql) {
MemFree(sql);
}
MsgSQLAbortTransaction(client->storedb);
QueryBuilderFinish(builder);
+31 -2
View File
@@ -43,11 +43,33 @@ QueryBuilderStart(QueryBuilder *builder)
void
QueryBuilderFinish(QueryBuilder *builder)
{
unsigned int x;
StorePropInfo *newprop;
ExtraLink *link;
QueryBuilder_Param *param;
QueryParserFinish(&builder->internal_parser);
QueryParserFinish(&builder->external_parser);
/* free all the properties */
for(x=0;x<BongoArrayCount(builder->properties);x++) {
newprop = BongoArrayIndex(builder->properties, StorePropInfo *, x);
MemFree(newprop);
}
BongoArrayFree(builder->properties, TRUE);
/* free all the links */
for(x=0;x<BongoArrayCount(builder->links);x++) {
link = BongoArrayIndex(builder->links, ExtraLink *, x);
MemFree(link);
}
BongoArrayFree(builder->links, TRUE);
/* free all the parameters */
for(x=0;x<BongoArrayCount(builder->parameters);x++) {
param = BongoArrayIndex(builder->parameters, QueryBuilder_Param *, x);
MemFree(param);
}
BongoArrayFree(builder->parameters, TRUE);
}
@@ -307,6 +329,7 @@ QueryBuilderCreateSQL(QueryBuilder *builder, char **output)
{
BongoStringBuilder b;
unsigned int i;
int ccode;
if (BongoStringBuilderInit(&b)) {
// unable to start... ick
@@ -359,7 +382,8 @@ QueryBuilderCreateSQL(QueryBuilder *builder, char **output)
// add in any constraints specified on the various columns
if (builder->int_query) {
if (QueryExpressionToSQL(builder, builder->internal_parser.start, &b)) {
return -2;
ccode = -2;
goto abort;
}
}
if (builder->int_query && builder->ext_query) {
@@ -367,7 +391,8 @@ QueryBuilderCreateSQL(QueryBuilder *builder, char **output)
}
if (builder->ext_query) {
if (QueryExpressionToSQL(builder, builder->external_parser.start, &b)) {
return -3;
ccode = -3;
goto abort;
}
}
@@ -399,6 +424,10 @@ QueryBuilderCreateSQL(QueryBuilder *builder, char **output)
BongoStringBuilderDestroy(&b);
return 0;
abort:
BongoStringBuilderDestroy(&b);
return ccode;
}
static int
+7 -1
View File
@@ -15,6 +15,7 @@
* Parser of Store Protocol queries into structures, for later use in SQL queries
*/
#include "stored.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -151,7 +152,7 @@ QueryParserRun(struct parser_state *state)
char *token;
struct expression *current_expression = state->start;
while (pull_token(&(state->query), &token) != -1) {
while (pull_token(&(state->query_ptr), &token) != -1) {
if (current_expression < state->start) {
// ran off the top of our stack, but there were still tokens
DEBUG_MESSAGE("ERR: tokens remaining in data\n");
@@ -261,6 +262,8 @@ QueryParserStart(struct parser_state *state, const char *query, int max_expr) {
return -2;
}
state->query_ptr = state->query;
return 0;
}
@@ -274,6 +277,9 @@ QueryParserFinish(struct parser_state *state) {
if (state->start != NULL) {
MemFree(state->start);
}
if (state->query != NULL) {
MemFree(state->query);
}
state->start = state->last = NULL;
state->entries = 0;
}
+1
View File
@@ -21,6 +21,7 @@ struct parser_state {
struct expression *last;
int entries;
char *query;
char *query_ptr;
};
int QueryParserStart(struct parser_state *state, const char *query, int max_expr);