// _____________________________________________________________________________ void SparqlParser::parseSolutionModifiers(const string& str, ParsedQuery& query) { auto tokens = ad_utility::splitAny(str, " \n\t"); for (size_t i = 0; i < tokens.size(); ++i) { if (tokens[i] == "ORDER" && i < tokens.size() - 2 && tokens[i + 1] == "BY") { i += 1; while (i + 1 < tokens.size() && tokens[i + 1] != "LIMIT" && tokens[i + 1] != "OFFSET" && tokens[i + 1] != "TEXTLIMIT") { query._orderBy.emplace_back(OrderKey(tokens[i + 1])); ++i; } } if (tokens[i] == "LIMIT" && i < tokens.size() - 1) { query._limit = tokens[i + 1]; ++i; } if (tokens[i] == "TEXTLIMIT" && i < tokens.size() - 1) { query._textLimit = tokens[i + 1]; ++i; } if (tokens[i] == "OFFSET" && i < tokens.size() - 1) { query._offset = tokens[i + 1]; ++i; } } }
void c6_reorder_key_server(const unsigned char *unordered, unsigned char *ordered) { OrderKey(ordered, (unsigned char *)unordered); }