Susumu Yata
null+****@clear*****
Fri Mar 4 12:18:33 JST 2016
Susumu Yata 2016-03-04 12:18:33 +0900 (Fri, 04 Mar 2016) New Revision: 34b247319e578f9c015979f98e6e9a8a62e32e8b https://github.com/groonga/groonga/commit/34b247319e578f9c015979f98e6e9a8a62e32e8b Message: load: refine parse_load_columns Modified files: lib/db.c Modified: lib/db.c (+14 -8) =================================================================== --- lib/db.c 2016-03-04 12:12:56 +0900 (3a8e9f5) +++ lib/db.c 2016-03-04 12:18:33 +0900 (02056f5) @@ -13340,26 +13340,32 @@ json_read(grn_ctx *ctx, grn_loader *loader, const char *str, unsigned int str_le #undef JSON_READ_OPEN_BRACKET #undef JSON_READ_OPEN_BRACE +/* + * parse_load_columns parses a columns parameter of load. Columns are appended + * to res. + */ static grn_rc parse_load_columns(grn_ctx *ctx, grn_obj *table, const char *str, unsigned int str_size, grn_obj *res) { - const char *p = (char *)str, *q, *r, *pe = p + str_size, *tokbuf[256]; + const char *p = str, *pe = p + str_size, *rest; + const char *tokbuf[256], *tok; while (p < pe) { - int i, n = tokenize(p, pe - p, tokbuf, 256, &q); + int i, n = tokenize(p, pe - p, tokbuf, 256, &rest); for (i = 0; i < n; i++) { grn_obj *col; - r = tokbuf[i]; - while (p < r && (' ' == *p || ',' == *p)) { p++; } - col = grn_obj_column(ctx, table, p, r - p); + tok = tokbuf[i]; + while (p < tok && (' ' == *p || ',' == *p)) { p++; } + col = grn_obj_column(ctx, table, p, tok - p); if (!col) { - ERR(GRN_INVALID_ARGUMENT, "nonexistent column: <%.*s>", (int)(r - p), p); + ERR(GRN_INVALID_ARGUMENT, "nonexistent column: <%.*s>", + (int)(tok - p), p); goto exit; } GRN_PTR_PUT(ctx, res, col); - p = r; + p = tok; } - p = q; + p = rest; } exit: return ctx->rc; -------------- next part -------------- HTML����������������������������...Download