Exemplo n.º 1
0
static enum proto_parse_status tns_parse_query(struct tns_parser *tns_parser, struct sql_proto_info *info, struct cursor *cursor)
{
    enum proto_parse_status status = PROTO_OK;
    CHECK(1);
    enum query_subcode query_subcode = cursor_read_u8(cursor);
    SLOG(LOG_DEBUG, "Parsing tns query, subcode is %u", query_subcode);
    switch (query_subcode) {
        case TTC_QUERY_SQL:
            tns_parser->nb_fields = UNSET;
            status = tns_parse_sql_query(info, cursor);
            cursor_drop(cursor, cursor->cap_len);
            break;
        case TTC_QUERY_FETCH:
            cursor_drop(cursor, cursor->cap_len);
            break;
        default:
            // Probably initialization queries
            cursor_drop(cursor, cursor->cap_len);
            break;
    }
    return status;
}
Exemplo n.º 2
0
static enum proto_parse_status tns_parse_query(struct tns_parser *tns_parser, struct sql_proto_info *info,
        struct cursor *cursor)
{
    enum proto_parse_status status = PROTO_OK;
    CHECK(1);
    enum query_subcode query_subcode = cursor_read_u8(cursor);
    SLOG(LOG_DEBUG, "Parsing tns query, subcode is %u", query_subcode);
    switch (query_subcode) {
        case TTC_QUERY_SQL:
        case TTC_QUERY_ALL_7:
            tns_parser->nb_fields = UNSET;
            status = tns_parse_sql_query(info, cursor);
            break;
        case TTC_QUERY_FETCH:
            break;
        default:
            // Probably initialization queries. Since we are unsure, don't
            // return PROTO_OK to avoid fix of c2s_way
            return PROTO_PARSE_ERR;
    }
    cursor_drop(cursor, cursor->cap_len);
    return status;
}