示例#1
0
void
insert_tuple(struct tnt_tuple *tuple)
{
	if (tnt_insert(tnt, 0, TNT_FLAG_RETURN, tuple) < 0)
		fail_tnt_perror("tnt_insert");
	if (tnt_flush(tnt) < 0)
		fail_tnt_perror("tnt_flush");
	recv_command("insert");
}
示例#2
0
void
update(int32_t key, struct tnt_stream *stream)
{
	struct tnt_tuple *k = tnt_tuple(NULL, "%d", key);
	if (tnt_update(tnt, 0, TNT_FLAG_RETURN, k, stream) < 0)
		fail_tnt_perror("tnt_update");
	if (tnt_flush(tnt) < 0)
		fail_tnt_perror("tnt_flush");
	tnt_tuple_free(k);
	recv_command("update fields");
}
示例#3
0
int tc_query(char *q, char **e) {
    int rc = tnt_query(tc.net, q, strlen(q), e);
    if (rc == -1)
        return -1;
    rc = tnt_flush(tc.net);
    if (rc < 0) {
        char *ee = tnt_strerror(tc.net);
        if (ee) {
            *e = tc_query_error("%s", ee);
        }
        return -1;
    }
    return 0;
}
示例#4
0
void
select_tuple(int32_t key)
{
	struct tnt_list tuple_list;
	tnt_list_init(&tuple_list);
	struct tnt_tuple *tuple = tnt_list_at(&tuple_list, NULL);
	tnt_tuple(tuple, "%d", key);
	if (tnt_select(tnt, 0, 0, 0, 1, &tuple_list) < 0)
		fail_tnt_perror("tnt_select");
	if (tnt_flush(tnt) < 0)
		fail_tnt_perror("tnt_flush");
	recv_command("select");
	tnt_list_free(&tuple_list);
}
示例#5
0
int
nb_mc_set(struct tnt_stream *t, char *key, char *data, int data_size)
{
	char buf[64];
	int len = snprintf(buf, sizeof(buf), "set %s 0 0 %d\r\n", key, data_size);
	struct iovec v[3];
	v[0].iov_base = buf;
	v[0].iov_len  = len;
	v[1].iov_base = data;
	v[1].iov_len  = data_size;
	v[2].iov_base = "\r\n";
	v[2].iov_len  = 2;
	int r = tnt_io_sendv(TNT_SNET_CAST(t), v, 3);
	tnt_flush(t);
	return (r < 0) ? -1 : 0;
}