Beispiel #1
0
void
test_path(gconstpointer data)
{
  const gchar *expected;
  const gchar *name;

  expected = gcut_data_get_string(data, "expected");
  name = gcut_data_get_string(data, "name");
  proc = grn_ctx_get(context, name, -1);
  cut_assert_equal_string(expected, grn_obj_path(context, proc));
}
Beispiel #2
0
void
test_temporary_table_no_path(gpointer data)
{
  grn_obj *table;
  grn_obj_flags flags = GPOINTER_TO_INT(data);

  table = grn_table_create(context, NULL, 0, NULL,
                           flags,
                           NULL, NULL);
  cut_assert_equal_string(NULL, grn_obj_path(context, table));
}
Beispiel #3
0
static int
print_tableinfo(grn_ctx *ctx, grn_obj *table, grn_obj *buf, grn_content_type otype)
{
    grn_id id;
    char name[GRN_TABLE_MAX_KEY_SIZE];
    const char *path;
    int name_len;

    switch (table->header.type) {
    case GRN_TABLE_HASH_KEY:
    case GRN_TABLE_PAT_KEY:
    case GRN_TABLE_NO_KEY:
    case GRN_TABLE_VIEW:
        break;
    default:
        return 0;
    }

    id = grn_obj_id(ctx, table);
    name_len = grn_obj_name(ctx, table, name, GRN_TABLE_MAX_KEY_SIZE);
    path = grn_obj_path(ctx, table);

    switch (otype) {
    case GRN_CONTENT_TSV:
        grn_text_itoa(ctx, buf, id);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_esc(ctx, buf, name, name_len);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_esc(ctx, buf, path, GRN_STRLEN(path));
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_itoa(ctx, buf, table->header.flags);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_itoa(ctx, buf, table->header.domain);
        /* TODO: domain to str */
        break;
    case GRN_CONTENT_JSON:
        GRN_TEXT_PUTC(ctx, buf, '[');
        grn_text_itoa(ctx, buf, id);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_esc(ctx, buf, name, name_len);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_esc(ctx, buf, path, GRN_STRLEN(path));
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_itoa(ctx, buf, table->header.flags);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_itoa(ctx, buf, table->header.domain);
        /* TODO: domain to str */
        GRN_TEXT_PUTC(ctx, buf, ']');
        break;
    }
    return 1;
}
Beispiel #4
0
void
test_temporary_table_no_path(gpointer data)
{
  grn_obj *table;
  grn_obj_flags flags = GPOINTER_TO_INT(data);
  grn_obj *key_type = NULL;

  if ((flags & GRN_OBJ_TABLE_TYPE_MASK) != GRN_OBJ_TABLE_NO_KEY) {
    key_type = grn_ctx_at(context, GRN_DB_SHORT_TEXT);
  }

  table = grn_table_create(context, NULL, 0, NULL,
                           flags,
                           key_type, NULL);
  cut_assert_equal_string(NULL, grn_obj_path(context, table));
}
Beispiel #5
0
static int
print_columninfo(grn_ctx *ctx, grn_obj *column, grn_obj *buf, grn_content_type otype)
{
    grn_id id;
    char *type, name[GRN_TABLE_MAX_KEY_SIZE];
    const char *path;
    int name_len;

    switch (column->header.type) {
    case GRN_COLUMN_FIX_SIZE:
        type = "\"fix\"";
        break;
    case GRN_COLUMN_VAR_SIZE:
        type = "\"var\"";
        break;
    case GRN_COLUMN_INDEX:
        type = "\"index\"";
        break;
    default:
        GRN_LOG(ctx, GRN_LOG_NOTICE, "invalid header type %d\n", column->header.type);
        return 0;
    }

    id = grn_obj_id(ctx, column);
    name_len = grn_column_name(ctx, column, name, GRN_TABLE_MAX_KEY_SIZE);
    path = grn_obj_path(ctx, column);

    switch (otype) {
    case GRN_CONTENT_TSV:
        grn_text_itoa(ctx, buf, id);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_esc(ctx, buf, name, name_len);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_esc(ctx, buf, path, GRN_STRLEN(path));
        GRN_TEXT_PUTC(ctx, buf, '\t');
        GRN_TEXT_PUTS(ctx, buf, type);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_itoa(ctx, buf, column->header.flags);
        GRN_TEXT_PUTC(ctx, buf, '\t');
        grn_text_itoa(ctx, buf, column->header.domain);
        /* TODO: flags to str, domain to str */
        break;
    case GRN_CONTENT_JSON:
        GRN_TEXT_PUTC(ctx, buf, '[');
        grn_text_itoa(ctx, buf, id);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_esc(ctx, buf, name, name_len);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_esc(ctx, buf, path, GRN_STRLEN(path));
        GRN_TEXT_PUTC(ctx, buf, ',');
        GRN_TEXT_PUTS(ctx, buf, type);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_itoa(ctx, buf, column->header.flags);
        GRN_TEXT_PUTC(ctx, buf, ',');
        grn_text_itoa(ctx, buf, column->header.domain);
        /* TODO: flags to str, domain to str */
        GRN_TEXT_PUTC(ctx, buf, ']');
        break;
    }
    return 1;
}