Exemplo n.º 1
0
// _____________________________________________________________________________
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;
    }
  }
}
Exemplo n.º 2
0
void c6_reorder_key_server(const unsigned char *unordered, unsigned char *ordered)
{
	OrderKey(ordered, (unsigned char *)unordered);
}