mirror of https://github.com/yandex/odyssey.git
odissey: add be query function
This commit is contained in:
parent
e2e023a685
commit
653eefae87
29
core/od_be.c
29
core/od_be.c
|
@ -205,6 +205,24 @@ od_beready_wait(odserver_t *server, char *procedure)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
od_bequery(odserver_t *server, char *procedure, char *query, int len)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
sostream_t *stream = &server->stream;
|
||||||
|
so_stream_reset(stream);
|
||||||
|
rc = so_fewrite_query(stream, query, len);
|
||||||
|
if (rc == -1)
|
||||||
|
return -1;
|
||||||
|
rc = od_write(server->io, stream);
|
||||||
|
if (rc == -1)
|
||||||
|
return -1;
|
||||||
|
rc = od_beready_wait(server, procedure);
|
||||||
|
if (rc < 0)
|
||||||
|
return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int od_bereset(odserver_t *server)
|
int od_bereset(odserver_t *server)
|
||||||
{
|
{
|
||||||
odroute_t *route = server->route;
|
odroute_t *route = server->route;
|
||||||
|
@ -216,18 +234,9 @@ int od_bereset(odserver_t *server)
|
||||||
/* send reset query */
|
/* send reset query */
|
||||||
char reset_query[] = "DISCARD ALL";
|
char reset_query[] = "DISCARD ALL";
|
||||||
int rc;
|
int rc;
|
||||||
sostream_t *stream = &server->stream;
|
rc = od_bequery(server, "reset", reset_query, sizeof(reset_query));
|
||||||
so_stream_reset(stream);
|
|
||||||
rc = so_fewrite_query(stream, reset_query, sizeof(reset_query));
|
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
goto error;
|
goto error;
|
||||||
rc = od_write(server->io, stream);
|
|
||||||
if (rc == -1)
|
|
||||||
goto error;
|
|
||||||
/* wait for ready */
|
|
||||||
rc = od_beready_wait(server, "reset");
|
|
||||||
if (rc < 0)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
/* server is ready to use */
|
/* server is ready to use */
|
||||||
od_serverpool_set(&route->server_pool, server,
|
od_serverpool_set(&route->server_pool, server,
|
||||||
|
|
Loading…
Reference in New Issue