@@ -0,0 +1,2164 @@
+/*%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.facebook.presto.benchmark;%0A%0Aimport com.facebook.presto.testing.LocalQueryRunner;%0Aimport com.google.common.collect.ImmutableList;%0Aimport com.google.common.collect.ImmutableMap;%0A%0Aimport static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner;%0Aimport static java.lang.String.format;%0A%0Apublic class SqlTopNRowNumberBenchmark%0A        extends AbstractSqlBenchmark%0A%7B%0A    public SqlTopNRowNumberBenchmark(LocalQueryRunner localQueryRunner, String function, String partitions, int topN)%0A    %7B%0A        super(localQueryRunner,%0A                format(%22sql_%25s_partition_by_(%25s)_top_%25s%22, function, partitions, topN),%0A                4,%0A                5,%0A                format(%22WITH t AS (%22 +%0A                        %22  SELECT *, %25s() OVER (PARTITION BY %25s ORDER BY shipdate DESC) AS rnk%22 +%0A                        %22  FROM lineitem%22 +%0A                        %22)%22 +%0A                        %22SELECT * FROM t WHERE rnk %3C= %25s%22, function, partitions, topN));%0A    %7D%0A%0A    public static void main(String%5B%5D args)%0A    %7B%0A        LocalQueryRunner localQueryRunner = createLocalQueryRunner(ImmutableMap.of(%22resource_overcommit%22, %22true%22));%0A        for (String function : ImmutableList.of(%22row_number%22, %22rank%22)) %7B%0A            for (String partitions : ImmutableList.of(%22orderkey, partkey%22, %22partkey%22, %22linestatus%22)) %7B%0A                for (int topN : ImmutableList.of(1, 100, 10_000)) %7B%0A                    new SqlTopNRowNumberBenchmark(localQueryRunner, function, partitions, topN).runBenchmark(new SimpleLineBenchmarkResultWriter(System.out));%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A%7D%0A

Add benchmark for TopNRowNumberOperator