void pool_session_add_cursor_info(const char *name, const char *footer, bool replication_type) { if(session_context == NULL) return; pool_debug("pool_session_add_cursor_info(): name: %s, footer: %s, table_type: %d", name, footer, replication_type); int i = 0; for(; i < POOL_SESSION_MAX_OPENED_CURSORS; ++i) { if(session_context->cursors_info[i].cursor_name == NULL) { session_context->cursors_info[i].cursor_name = pool_memory_strdup(session_context->memory_context, name); session_context->cursors_info[i].footer_info = pool_memory_strdup(session_context->memory_context, footer); session_context->cursors_info[i].table_type = replication_type; break; } } }
/* * Create a sent message * kind: one of 'P':Parse, 'B':Bind or'Q':Query(PREPARE) * len: message length that is not network byte order * contents: message contents * num_tsparams: number of timestamp parameters * name: prepared statement name or portal name */ POOL_SENT_MESSAGE *pool_create_sent_message(char kind, int len, char *contents, int num_tsparams, const char *name, POOL_QUERY_CONTEXT *query_context) { POOL_SENT_MESSAGE *msg; if (!session_context) { pool_error("pool_create_sent_message: session context is not initialized"); return NULL; } msg = pool_memory_alloc(session_context->memory_context, sizeof(POOL_SENT_MESSAGE)); msg->kind = kind; msg->len = len; msg->contents = pool_memory_alloc(session_context->memory_context, len); memcpy(msg->contents, contents, len); msg->num_tsparams = num_tsparams; msg->name = pool_memory_strdup(session_context->memory_context, name); msg->query_context = query_context; return msg; }