docs: protected ExtractFromRow createSortingExtractor( List<Ordering> orderings,
                                                       Map<SelectorName, SelectorName> sourceNamesByAlias,
                                                       QueryContext context,
                                                       Columns columns,
                                                       QuerySources sources ) {
          if (orderings.size() == 1) {
              return createSortingExtractor(orderings.get(0), sourceNamesByAlias, context, columns, sources);
          }
          if (orderings.size() == 2) {
              ExtractFromRow first = createSortingExtractor(orderings.get(0), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow second = createSortingExtractor(orderings.get(1), sourceNamesByAlias, context, columns, sources);
              return RowExtractors.extractorWith(first, second);
          }
          if (orderings.size() == 3) {
              ExtractFromRow first = createSortingExtractor(orderings.get(0), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow second = createSortingExtractor(orderings.get(1), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow third = createSortingExtractor(orderings.get(2), sourceNamesByAlias, context, columns, sources);
              return RowExtractors.extractorWith(first, second, third);
          }
          if (orderings.size() == 4) {
              ExtractFromRow first = createSortingExtractor(orderings.get(0), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow second = createSortingExtractor(orderings.get(1), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow third = createSortingExtractor(orderings.get(2), sourceNamesByAlias, context, columns, sources);
              ExtractFromRow fourth = createSortingExtractor(orderings.get(3), sourceNamesByAlias, context, columns, sources);
              return RowExtractors.extractorWith(first, second, third, fourth);
          }
          List<ExtractFromRow> extractors = new ArrayList<>(orderings.size());
          for (Ordering ordering : orderings) {
              extractors.add(createSortingExtractor(ordering, sourceNamesByAlias, context, columns, sources));
          }
          return RowExtractors.extractorWith(extractors);
      }