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