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"); }
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"); }
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; }
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); }
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; }