You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by el...@apache.org on 2023/10/30 09:48:26 UTC

(doris) branch branch-2.0-var updated: [regression-test](variant) add github events p0 case and fix and modify case (#26026)

This is an automated email from the ASF dual-hosted git repository.

eldenmoon pushed a commit to branch branch-2.0-var
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0-var by this push:
     new 5f79b4e75f6 [regression-test](variant) add github events p0 case and fix and modify case (#26026)
5f79b4e75f6 is described below

commit 5f79b4e75f63aea24f336a680fa0d98c8a79ffec
Author: lihangyu <15...@163.com>
AuthorDate: Mon Oct 30 17:48:19 2023 +0800

    [regression-test](variant) add github events p0 case and fix and modify case (#26026)
    
    * [Fix](variant) fix groupby multi variant columns leading to error
    
    ```
    ERROR 1105 (HY000): errCode = 2, detailMessage = select list expression not produced by aggregation output (missing from GROUP BY clause?): CAST(`var` AS TEXT)
    ```
    
    The hash code of slot ref should consider sub column names
    
    * [regression-test](variant) add github events p0 case and fix and modify case
---
 .../rowset/segment_v2/hierarchical_data_reader.cpp |  4 +-
 .../rowset/segment_v2/hierarchical_data_reader.h   |  3 +-
 be/src/vec/columns/column_object.cpp               | 27 +++++++-
 be/src/vec/columns/column_object.h                 |  6 +-
 .../github_events_p0/affinityByIssuesAndPRs1.out   | 11 ++++
 .../github_events_p0/affinityByIssuesAndPRs2.out   |  6 ++
 .../github_events_p0/authorsWithTheMostPushes.out  | 53 ++++++++++++++++
 .../variant_p0/github_events_p0/countingStar1.out  |  4 ++
 .../variant_p0/github_events_p0/countingStar2.out  |  4 ++
 .../variant_p0/github_events_p0/countingStar3.out  |  4 ++
 .../distributionOfRepositoriesByStarCount.out      |  5 ++
 .../variant_p0/github_events_p0/githubRoulette.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears1.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears2.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears3.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears4.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears5.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears6.out | 53 ++++++++++++++++
 ...heListOfTopRepositoriesChangedOverTheYears7.out | 23 +++++++
 .../howHasTheTotalNumberOfStarsChangedOverTime.out |  5 ++
 .../issuesWithTheMostComments1.out                 |  4 ++
 .../issuesWithTheMostComments2.out                 | 53 ++++++++++++++++
 .../issuesWithTheMostComments3.out                 | 53 ++++++++++++++++
 .../issuesWithTheMostComments4.out                 | 53 ++++++++++++++++
 .../issuesWithTheMostComments5.out                 | 53 ++++++++++++++++
 .../issuesWithTheMostComments6.out                 | 15 +++++
 .../issuesWithTheMostComments7.out                 | 53 ++++++++++++++++
 .../data/variant_p0/github_events_p0/load.out      |  7 +++
 .../github_events_p0/mostForkedRepositories.out    | 53 ++++++++++++++++
 .../mostPopularCommentsOnGithub.out                | 53 ++++++++++++++++
 .../organizationsByTheNumberOfRepositories.out     |  9 +++
 .../organizationsByTheNumberOfStars.out            | 53 ++++++++++++++++
 .../proportionsBetweenStarsAndForks1.out           | 53 ++++++++++++++++
 .../proportionsBetweenStarsAndForks2.out           |  3 +
 .../proportionsBetweenStarsAndForks3.out           |  5 ++
 .../proportionsBetweenStarsAndForks4.out           |  4 ++
 .../proportionsBetweenStarsAndForks5.out           |  4 ++
 .../repositoriesByAmountOfModifiedCode.out         | 53 ++++++++++++++++
 .../repositoriesByTheNumberOfPushes.out            | 53 ++++++++++++++++
 ...epositoriesWithClickhouse_related_comments1.out | 15 +++++
 ...epositoriesWithClickhouse_related_comments2.out | 15 +++++
 .../repositoriesWithDoris_related_comments1.out    |  9 +++
 .../repositoriesWithDoris_related_comments2.out    |  9 +++
 .../repositoriesWithTheHighestGrowthYoY.out        | 14 +++++
 .../repositoriesWithTheMaximumAmountOfIssues1.out  | 53 ++++++++++++++++
 .../repositoriesWithTheMaximumAmountOfIssues2.out  | 53 ++++++++++++++++
 .../repositoriesWithTheMaximumAmountOfIssues3.out  |  9 +++
 .../repositoriesWithTheMaximumAmountOfIssues4.out  | 53 ++++++++++++++++
 ...sitoriesWithTheMaximumAmountOfPullRequests1.out | 53 ++++++++++++++++
 ...sitoriesWithTheMaximumAmountOfPullRequests2.out | 53 ++++++++++++++++
 ...esWithTheMaximumNumberOfAcceptedInvitations.out | 53 ++++++++++++++++
 ...sitoriesWithTheMostPeopleWhoHavePushAccess1.out | 53 ++++++++++++++++
 .../repositoriesWithTheMostStarsOverOneDay1.out    | 53 ++++++++++++++++
 ...repositoriesWithTheMostSteadyGrowthOverTime.out | 53 ++++++++++++++++
 .../repositoriesWithTheWorstStagnation_order.out   |  9 +++
 .../github_events_p0/repositoryAffinityList1.out   | 52 +++++++++++++++
 .../github_events_p0/repositoryAffinityList2.out   |  9 +++
 .../starsFromHeavyGithubUsers1.out                 | 31 +++++++++
 .../starsFromHeavyGithubUsers2.out                 | 10 +++
 .../theLongestRepositoryNames1.out                 | 53 ++++++++++++++++
 .../theLongestRepositoryNames2.out                 | 53 ++++++++++++++++
 .../github_events_p0/theMostToughCodeReviews.out   | 53 ++++++++++++++++
 .../theTotalNumberOfRepositoriesOnGithub.out       |  4 ++
 .../theTotalNumberOfUsersOnGithub1.out             |  4 ++
 .../theTotalNumberOfUsersOnGithub2.out             |  4 ++
 .../theTotalNumberOfUsersOnGithub3.out             |  4 ++
 .../theTotalNumberOfUsersOnGithub4.out             |  4 ++
 .../github_events_p0/topRepositoriesByStars.out    | 53 ++++++++++++++++
 .../whatIsTheBestDayOfTheWeekToCatchAStar.out      |  6 ++
 .../whoAreAllThosePeopleGivingStars1.out           | 53 ++++++++++++++++
 .../whoAreAllThosePeopleGivingStars2.out           |  4 ++
 .../whoAreAllThosePeopleGivingStars3.out           | 41 ++++++++++++
 regression-test/data/variant_p0/load.out           |  2 +-
 .../github_events_p0/affinityByIssuesAndPRs1.sql   | 14 +++++
 .../github_events_p0/affinityByIssuesAndPRs2.sql   | 14 +++++
 .../github_events_p0/authorsWithTheMostPushes.sql  |  9 +++
 .../variant_p0/github_events_p0/countingStar1.sql  |  1 +
 .../variant_p0/github_events_p0/countingStar2.sql  |  1 +
 .../variant_p0/github_events_p0/countingStar3.sql  |  1 +
 .../distributionOfRepositoriesByStarCount.sql      | 14 +++++
 .../variant_p0/github_events_p0/githubRoulette.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears1.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears2.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears3.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears4.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears5.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears6.sql |  1 +
 ...heListOfTopRepositoriesChangedOverTheYears7.sql | 28 +++++++++
 .../howHasTheTotalNumberOfStarsChangedOverTime.sql |  2 +
 .../issuesWithTheMostComments1.sql                 |  1 +
 .../issuesWithTheMostComments2.sql                 |  1 +
 .../issuesWithTheMostComments3.sql                 | 17 +++++
 .../issuesWithTheMostComments4.sql                 |  9 +++
 .../issuesWithTheMostComments5.sql                 |  9 +++
 .../issuesWithTheMostComments6.sql                 | 11 ++++
 .../issuesWithTheMostComments7.sql                 |  9 +++
 .../issuesWithTheMostComments8.sql                 | 13 ++++
 .../suites/variant_p0/github_events_p0/load.groovy | 73 ++++++++++++++++++++++
 .../github_events_p0/mostForkedRepositories.sql    |  1 +
 .../mostPopularCommentsOnGithub.sql                |  1 +
 .../organizationsByTheNumberOfRepositories.sql     | 14 +++++
 .../organizationsByTheNumberOfStars.sql            |  8 +++
 .../organizationsByTheSizeOfCommunity.sql          | 23 +++++++
 .../proportionsBetweenStarsAndForks1.sql           | 17 +++++
 .../proportionsBetweenStarsAndForks2.sql           | 18 ++++++
 .../proportionsBetweenStarsAndForks3.sql           | 18 ++++++
 .../proportionsBetweenStarsAndForks4.sql           | 13 ++++
 .../proportionsBetweenStarsAndForks5.sql           | 21 +++++++
 .../repositoriesByAmountOfModifiedCode.sql         | 12 ++++
 .../repositoriesByTheNumberOfPushes.sql            | 17 +++++
 ...epositoriesWithClickhouse_related_comments1.sql |  1 +
 ...epositoriesWithClickhouse_related_comments2.sql | 17 +++++
 .../repositoriesWithDoris_related_comments1.sql    |  1 +
 .../repositoriesWithDoris_related_comments2.sql    | 17 +++++
 .../repositoriesWithTheHighestGrowthYoY.sql        | 20 ++++++
 .../repositoriesWithTheMaximumAmountOfIssues1.sql  |  1 +
 .../repositoriesWithTheMaximumAmountOfIssues2.sql  | 18 ++++++
 .../repositoriesWithTheMaximumAmountOfIssues3.sql  | 19 ++++++
 .../repositoriesWithTheMaximumAmountOfIssues4.sql  | 18 ++++++
 ...sitoriesWithTheMaximumAmountOfPullRequests1.sql |  1 +
 ...sitoriesWithTheMaximumAmountOfPullRequests2.sql |  1 +
 ...esWithTheMaximumNumberOfAcceptedInvitations.sql | 17 +++++
 ...sitoriesWithTheMostPeopleWhoHavePushAccess1.sql | 13 ++++
 ...sitoriesWithTheMostPeopleWhoHavePushAccess2.sql | 13 ++++
 ...sitoriesWithTheMostPeopleWhoHavePushAccess3.sql | 16 +++++
 .../repositoriesWithTheMostStarsOverOneDay1.sql    | 25 ++++++++
 .../repositoriesWithTheMostStarsOverOneDay2.sql    | 25 ++++++++
 .../repositoriesWithTheMostStarsOverOneDay3.sql    |  1 +
 ...repositoriesWithTheMostSteadyGrowthOverTime.sql | 20 ++++++
 .../repositoriesWithTheWorstStagnation_order.sql   | 20 ++++++
 .../github_events_p0/repositoryAffinityList1.sql   | 13 ++++
 .../github_events_p0/repositoryAffinityList2.sql   | 23 +++++++
 .../starsFromHeavyGithubUsers1.sql                 | 13 ++++
 .../starsFromHeavyGithubUsers2.sql                 | 15 +++++
 .../theLongestRepositoryNames1.sql                 |  1 +
 .../theLongestRepositoryNames2.sql                 |  1 +
 .../github_events_p0/theMostToughCodeReviews.sql   | 10 +++
 .../theTotalNumberOfRepositoriesOnGithub.sql       |  1 +
 .../theTotalNumberOfUsersOnGithub1.sql             |  1 +
 .../theTotalNumberOfUsersOnGithub2.sql             |  1 +
 .../theTotalNumberOfUsersOnGithub3.sql             |  1 +
 .../theTotalNumberOfUsersOnGithub4.sql             |  1 +
 .../variant_p0/github_events_p0/topLabels1.sql     |  9 +++
 .../variant_p0/github_events_p0/topLabels2.sql     |  9 +++
 .../variant_p0/github_events_p0/topLabels3.sql     | 14 +++++
 .../github_events_p0/topRepositoriesByStars.sql    |  1 +
 .../whatIsTheBestDayOfTheWeekToCatchAStar.sql      |  1 +
 .../whoAreAllThosePeopleGivingStars1.sql           |  1 +
 .../whoAreAllThosePeopleGivingStars2.sql           |  1 +
 .../whoAreAllThosePeopleGivingStars3.sql           | 13 ++++
 regression-test/suites/variant_p0/load.groovy      |  6 +-
 151 files changed, 2942 insertions(+), 12 deletions(-)

diff --git a/be/src/olap/rowset/segment_v2/hierarchical_data_reader.cpp b/be/src/olap/rowset/segment_v2/hierarchical_data_reader.cpp
index cd63c331bb8..fe3ae847791 100644
--- a/be/src/olap/rowset/segment_v2/hierarchical_data_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/hierarchical_data_reader.cpp
@@ -167,7 +167,7 @@ Status ExtractReader::extract_to(vectorized::MutableColumnPtr& dst, size_t nrows
 }
 
 Status ExtractReader::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, bool* has_null) {
-    _root_reader->column->clear();
+    static_cast<vectorized::ColumnObject*>(_root_reader->column.get())->clear_subcolumns_data();
     RETURN_IF_ERROR(_root_reader->iterator->next_batch(n, _root_reader->column));
     RETURN_IF_ERROR(extract_to(dst, *n));
     return Status::OK();
@@ -175,7 +175,7 @@ Status ExtractReader::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, b
 
 Status ExtractReader::read_by_rowids(const rowid_t* rowids, const size_t count,
                                      vectorized::MutableColumnPtr& dst) {
-    _root_reader->column->clear();
+    static_cast<vectorized::ColumnObject*>(_root_reader->column.get())->clear_subcolumns_data();
     RETURN_IF_ERROR(_root_reader->iterator->read_by_rowids(rowids, count, _root_reader->column));
     RETURN_IF_ERROR(extract_to(dst, count));
     return Status::OK();
diff --git a/be/src/olap/rowset/segment_v2/hierarchical_data_reader.h b/be/src/olap/rowset/segment_v2/hierarchical_data_reader.h
index cdae71458c4..a56e80aa464 100644
--- a/be/src/olap/rowset/segment_v2/hierarchical_data_reader.h
+++ b/be/src/olap/rowset/segment_v2/hierarchical_data_reader.h
@@ -151,7 +151,8 @@ private:
             node.data.column->clear();
             return Status::OK();
         });
-        _root_reader->column->clear();
+        container->clear();
+        static_cast<vectorized::ColumnObject*>(_root_reader->column.get())->clear_subcolumns_data();
         return Status::OK();
     }
 };
diff --git a/be/src/vec/columns/column_object.cpp b/be/src/vec/columns/column_object.cpp
index 38a93b37086..961768408b7 100644
--- a/be/src/vec/columns/column_object.cpp
+++ b/be/src/vec/columns/column_object.cpp
@@ -22,6 +22,7 @@
 
 #include <assert.h>
 #include <fmt/format.h>
+#include <glog/logging.h>
 #include <parallel_hashmap/phmap.h>
 #include <rapidjson/stringbuffer.h>
 #include <rapidjson/writer.h>
@@ -757,6 +758,9 @@ FieldInfo ColumnObject::Subcolumn::get_subcolumn_field_info() const {
 }
 
 void ColumnObject::insert_range_from(const IColumn& src, size_t start, size_t length) {
+#ifndef NDEBUG
+    check_consistency();
+#endif
     const auto& src_object = assert_cast<const ColumnObject&>(src);
     for (const auto& entry : src_object.subcolumns) {
         if (!has_subcolumn(entry->path)) {
@@ -1238,6 +1242,18 @@ void ColumnObject::strip_outer_array() {
     std::swap(subcolumns, new_subcolumns);
 }
 
+void ColumnObject::replicate(const uint32_t* indexs, size_t target_size, IColumn& column) const {
+    if (!is_finalized()) {
+        const_cast<ColumnObject*>(this)->finalize();
+    }
+    auto& var = assert_cast<ColumnObject&>(column);
+    for (auto& entry : subcolumns) {
+        auto replica = entry->data.get_finalized_column().clone_empty();
+        entry->data.get_finalized_column().replicate(indexs, target_size, *replica);
+        var.add_sub_column(entry->path, std::move(replica), entry->data.get_least_common_type());
+    }
+}
+
 ColumnPtr ColumnObject::filter(const Filter& filter, ssize_t count) const {
     if (!is_finalized()) {
         const_cast<ColumnObject*>(this)->finalize();
@@ -1298,16 +1314,23 @@ size_t ColumnObject::filter(const Filter& filter) {
     return count;
 }
 
-void ColumnObject::clear() {
+void ColumnObject::clear_subcolumns_data() {
     for (auto& entry : subcolumns) {
         for (auto& part : entry->data.data) {
-            part->clear();
+            DCHECK_EQ(part->use_count(), 1);
+            (*std::move(part)).clear();
         }
         entry->data.num_of_defaults_in_prefix = 0;
     }
     num_rows = 0;
 }
 
+void ColumnObject::clear() {
+    Subcolumns empty;
+    std::swap(empty, subcolumns);
+    num_rows = 0;
+}
+
 void ColumnObject::revise_to(int target_num_rows) {
     for (auto&& entry : subcolumns) {
         if (entry->data.size() > target_num_rows) {
diff --git a/be/src/vec/columns/column_object.h b/be/src/vec/columns/column_object.h
index 709d9eedc22..55d82e38af1 100644
--- a/be/src/vec/columns/column_object.h
+++ b/be/src/vec/columns/column_object.h
@@ -335,6 +335,8 @@ public:
 
     void clear() override;
 
+    void clear_subcolumns_data();
+
     /// Part of interface
     const char* get_family_name() const override { return "Variant"; }
 
@@ -444,9 +446,7 @@ public:
         LOG(FATAL) << "should not call the method in column object";
     }
 
-    void replicate(const uint32_t* indexs, size_t target_size, IColumn& column) const override {
-        LOG(FATAL) << "not support";
-    }
+    void replicate(const uint32_t* indexs, size_t target_size, IColumn& column) const override;
 
     template <typename Func>
     MutableColumnPtr apply_for_subcolumns(Func&& func) const;
diff --git a/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs1.out b/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs1.out
new file mode 100644
index 00000000000..4e3b7ce7d52
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs1.out
@@ -0,0 +1,11 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !affinityByIssuesAndPRs1 --
+apache/spark	3	3
+rspec/rspec-core	2	2
+golden-warning/giraffedraft-server	15	1
+rspec/rspec-support	1	1
+rspec/rspec-rails	1	1
+rspec/rspec-mocks	1	1
+rspec/rspec-expectations	1	1
+rspec/rspec-dev	1	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs2.out b/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs2.out
new file mode 100644
index 00000000000..d825c035567
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/affinityByIssuesAndPRs2.out
@@ -0,0 +1,6 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !affinityByIssuesAndPRs2 --
+No-CQRT/GooGuns	44	1
+ivolunteerph/ivolunteerph	3	1
+Tribler/tribler	1	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/authorsWithTheMostPushes.out b/regression-test/data/variant_p0/github_events_p0/authorsWithTheMostPushes.out
new file mode 100644
index 00000000000..70f693578ca
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/authorsWithTheMostPushes.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !authorsWithTheMostPushes --
+github-actions[bot]	1428	806
+seryozha1989	765	12
+KenanSulayman	319	1
+LombiqBot	270	5
+freecall2019	225	1
+hotspotlab	220	1
+hotspot2023	218	1
+renovate[bot]	177	106
+gyuho	170	23
+mirror-updates	168	4
+proxylist-to-bot	164	1
+cageyjames	119	1
+qdm	117	1
+milesholt	107	1
+greatfire	96	2
+Hall-1910	95	1
+apaolacci	95	1
+dependabot[bot]	83	43
+729300gahycus	79	1
+pull[bot]	69	69
+himobi	65	1
+patrick-hudson	61	1
+naijaping	55	1
+fake-name	54	1
+supervpnops	54	2
+brokjad	51	1
+tui590285	49	3
+renovate-bot	47	46
+audreywatters	45	19
+sanliuyi201	45	1
+predictcrypto	44	1
+cm-gerrit	41	24
+B74LABgit	40	3
+PacoReinaCampo	37	37
+vpnsuperapp	37	1
+BlackSnowDot	36	2
+westurner	34	5
+Tower-KevinLi	33	1
+billybobza	32	3
+cato-	32	1
+codertradergambler	32	1
+ivy-root	32	1
+robocdnjs	32	1
+Chourouk-Zioud	31	1
+Warrenty	31	2
+brianmaierjr	31	1
+mhutchinson-witness	31	2
+andrew-nault	30	1
+mouyong	30	2
+megantmcginley	29	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/countingStar1.out b/regression-test/data/variant_p0/github_events_p0/countingStar1.out
new file mode 100644
index 00000000000..633dfab5e1f
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/countingStar1.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !countingStar1 --
+4021
+
diff --git a/regression-test/data/variant_p0/github_events_p0/countingStar2.out b/regression-test/data/variant_p0/github_events_p0/countingStar2.out
new file mode 100644
index 00000000000..7658cd6fabe
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/countingStar2.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !countingStar2 --
+started	4021
+
diff --git a/regression-test/data/variant_p0/github_events_p0/countingStar3.out b/regression-test/data/variant_p0/github_events_p0/countingStar3.out
new file mode 100644
index 00000000000..516eb9b7347
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/countingStar3.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !countingStar3 --
+42
+
diff --git a/regression-test/data/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.out b/regression-test/data/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.out
new file mode 100644
index 00000000000..ee8916c3a34
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.out
@@ -0,0 +1,5 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !distributionOfRepositoriesByStarCount --
+1.0	3375
+10.0	6
+
diff --git a/regression-test/data/variant_p0/github_events_p0/githubRoulette.out b/regression-test/data/variant_p0/github_events_p0/githubRoulette.out
new file mode 100644
index 00000000000..6db73383708
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/githubRoulette.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !githubRoulette --
+LinuxStandardBase/lsb
+inf0rmer/blanket
+parrt/cs652
+Pathgather/please-wait
+jtsternberg/Shortcode_Button
+EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
+VictiniX888/Illegal-Mod-Sites
+robfig/cron
+brendangregg/FlameGraph
+h5bp/Front-end-Developer-Interview-Questions
+pebble/pebblejs
+EU-OSHA/osha-website
+danielstjules/Stringy
+scottjehl/picturefill
+letsencrypt/heroku-acme
+gaspaio/gearmanui
+servo/servo
+thlorenz/proxyquire
+xpac27/LittleWorld
+jpf/the-gannet
+drrb/java-rust-example
+jcodec/jcodec
+mbadolato/iTerm2-Color-Schemes
+X1011/git-directory-deploy
+bestwnh/IGLDropDownMenu
+alvarotrigo/fullPage.js
+memsql/memsql-loader
+martijnwalraven/meteor-ios
+Microsoft/dotnet
+cowboy/dotfiles
+larrycai/pirate
+greatfire/wiki
+greatfire/wiki
+rapid7/metasploit-framework
+tobegit3hub/pirate
+evido/wotreplay-parser
+Phrogz/SLAXML
+beautify-web/js-beautify
+django/django
+juhl/physicsRus
+zingchart/ZingChart-jQuery
+tomchristie/django-rest-framework
+thephpleague/oauth2-server
+cloudflare/golibs
+iojs/io.js
+golang/go
+cppformat/cppformat
+google/end-to-end
+progrium/duplex
+bwlewis/rthreejs
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.out
new file mode 100644
index 00000000000..a75f6cd87d2
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears1 --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	31
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+h5bp/Front-end-Developer-Interview-Questions	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+rails/rails-perftest	6
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+iojs/io.js	4
+josh/cafe-js	4
+leanote/leanote	4
+neilj/Squire	4
+orangeduck/libCello	4
+spf13/hugo	4
+square/PonyDebugger	4
+stackia/SteamFriendsManager	4
+staltz/cycle	4
+tobiasahlin/SpinKit	4
+twbs/bootstrap	4
+zingchart/ZingChart-jQuery	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.out
new file mode 100644
index 00000000000..a510ce81ba1
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears2 --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	31
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+h5bp/Front-end-Developer-Interview-Questions	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+rails/rails-perftest	6
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+iojs/io.js	4
+josh/cafe-js	4
+leanote/leanote	4
+neilj/Squire	4
+orangeduck/libCello	4
+spf13/hugo	4
+square/PonyDebugger	4
+stackia/SteamFriendsManager	4
+staltz/cycle	4
+tobiasahlin/SpinKit	4
+twbs/bootstrap	4
+zingchart/ZingChart-jQuery	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.out
new file mode 100644
index 00000000000..8d2c9124159
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears3 --
+zzarcon/focusable	1
+zwaldowski/BlocksKit	1
+zurb/foundation	1
+zulfajuniadi/riverlevel	1
+zuha/Zuha	1
+zuffdaddy/dynalamp	1
+zorro3/ConfigArgParse	1
+zoomhub/zoomhub	1
+zokis/Python--Faster-Way	1
+ziyasal/node-procexss	1
+zhenchen/Experiment-for-secompax	1
+zeromq/jeromq	1
+zendframework/ZendSkeletonApplication	1
+zenazn/goji	1
+zedapp/zed	1
+zdavatz/spreadsheet	1
+zcweng/ToggleButton	1
+zackkitzmiller/gofish	1
+zachwill/flask-engine	1
+z411/trackma	1
+yyuu/pyenv-installer	1
+yxsicd/yxsimg	1
+ywdarklord/Go-Example	1
+yorikvanhavre/FreeCAD-library	1
+yogiben/meteor-bootstrap	1
+yob/pdf-reader	1
+ymx/RefExplorer	1
+yeoman/generator-angular	1
+yangqi/Htmldom	1
+yahoo/android-range-seek-bar	1
+y-ken/fluent-logger-mruby	1
+xxv/android-lifecycle	1
+xvoland/Extract	1
+xueruini/thuthesis	1
+xsacha/Sachesi	1
+xpac27/LittleWorld	1
+xobs/fernly	1
+xjzhou/500lines	1
+xicilion/fibjs	1
+xiaobozi/youku-lixian	1
+xiaoai/android-waterfall-demo	1
+xfeng/MultiHttpRequest	1
+xero-gateway/xero_gateway	1
+xenith-studios/ataxia	1
+xebia/jackson-lombok	1
+xcltapestry/XCL-Charts	1
+xat/chromecast-player	1
+wymsee/cordova-imagePicker	1
+wycc/arduino-wukong	1
+wycats/handlebars.js	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.out
new file mode 100644
index 00000000000..c23f409ba50
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears4 --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	31
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+h5bp/Front-end-Developer-Interview-Questions	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+rails/rails-perftest	6
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+iojs/io.js	4
+josh/cafe-js	4
+leanote/leanote	4
+neilj/Squire	4
+orangeduck/libCello	4
+spf13/hugo	4
+square/PonyDebugger	4
+stackia/SteamFriendsManager	4
+staltz/cycle	4
+tobiasahlin/SpinKit	4
+twbs/bootstrap	4
+zingchart/ZingChart-jQuery	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.out
new file mode 100644
index 00000000000..523224a060b
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears5 --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	31
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+h5bp/Front-end-Developer-Interview-Questions	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+rails/rails-perftest	6
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+iojs/io.js	4
+josh/cafe-js	4
+leanote/leanote	4
+neilj/Squire	4
+orangeduck/libCello	4
+spf13/hugo	4
+square/PonyDebugger	4
+stackia/SteamFriendsManager	4
+staltz/cycle	4
+tobiasahlin/SpinKit	4
+twbs/bootstrap	4
+zingchart/ZingChart-jQuery	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.out
new file mode 100644
index 00000000000..3c6e5bbe07f
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears6 --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	31
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+h5bp/Front-end-Developer-Interview-Questions	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+rails/rails-perftest	6
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+iojs/io.js	4
+josh/cafe-js	4
+leanote/leanote	4
+neilj/Squire	4
+orangeduck/libCello	4
+spf13/hugo	4
+square/PonyDebugger	4
+stackia/SteamFriendsManager	4
+staltz/cycle	4
+tobiasahlin/SpinKit	4
+twbs/bootstrap	4
+zingchart/ZingChart-jQuery	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.out b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.out
new file mode 100644
index 00000000000..f1cf493e6c4
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.out
@@ -0,0 +1,23 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheListOfTopRepositoriesChangedOverTheYears7 --
+wasabeef/awesome-android-ui	2015	35
+prakhar1989/awesome-courses	2015	31
+cachethq/cachet	2015	17
+pathgather/please-wait	2015	13
+begriffs/postgrest	2015	12
+cssdream/cssgrace	2015	12
+gorhill/ublock	2015	9
+kragniz/json-sempai	2015	9
+netflix/ice	2015	9
+wasabeef/awesome-android-libraries	2015	9
+projectdiscovery/katana	2022	7
+martinothamar/mediator	2022	6
+ossu/computer-science	2022	6
+public-apis/public-apis	2022	6
+dovamir/awesome-design-patterns	2022	5
+lensterxyz/lenster	2022	5
+mastodon/mastodon	2022	5
+byron/gitoxide	2022	4
+avelino/awesome-go	2022	3
+trinib/linux-bash-commands	2022	3
+
diff --git a/regression-test/data/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.out b/regression-test/data/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.out
new file mode 100644
index 00000000000..3e777719e33
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.out
@@ -0,0 +1,5 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !howHasTheTotalNumberOfStarsChangedOverTime --
+2015	2725
+2022	1296
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments1.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments1.out
new file mode 100644
index 00000000000..b1db3f8a657
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments1.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments1 --
+5314
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments2.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments2.out
new file mode 100644
index 00000000000..c50a162b2d9
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments2.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments2 --
+GovAlta/ui-components	69
+TTMTT/iCL0udin	34
+apache/spark	31
+CleverRaven/Cataclysm-DDA	29
+cachethq/Cachet	28
+frogsbreath-games/eucre	25
+HabitRPG/habitrpg	23
+tgstation/-tg-station	22
+rust-lang/rust	21
+Youssef1313/samples	20
+backdrop/backdrop-issues	18
+gratipay/inside.gratipay.com	18
+saltstack/salt	17
+lumien231/Custom-Main-Menu	16
+MetaMask/eth-phishing-detect	15
+numenta/nupic.core	15
+Homebrew/homebrew	13
+badrsony/icloudin-support-	13
+Expensify/App	12
+Sanne/testcontainers-java	11
+atom-community/autocomplete-plus	11
+diydrones/ardupilot	11
+kguil/Marvin-Roadmap	11
+kyma-project/kyma	11
+libantioch/antioch	11
+Baystation12/Baystation12	10
+hrydgard/ppsspp	10
+rQAQr/rss	10
+sikozheng/rshb	10
+tipfortip/issues	10
+Mindwerks/wildmidi	9
+NeuroVault/NeuroVault	9
+THE-ESCAPIST/RSSHub	9
+WhisperSystems/TextSecure	9
+XLabs/Xamarin-Forms-Labs	9
+aws/eks-distro	9
+disco-trooper/weather-app	9
+docker-library/docs	9
+expressjs/compression	9
+flutter/flutter	9
+isaacg1/pyth	9
+jscs-dev/node-jscs	9
+orkestral/venom	9
+udondan/jsii	9
+4Nanai/Abot	8
+Blockchain-Dev-Web/hardhat-erc721	8
+DoYana/myrss	8
+Joomla-Bible-Study/Joomla-Bible-Study	8
+JuliaLang/julia	8
+P3TERX/RSSHub	8
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments3.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments3.out
new file mode 100644
index 00000000000..9cb3bda773f
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments3.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments3 --
+GovAlta/ui-components	69	69	1.0
+TTMTT/iCL0udin	34	1	34.0
+apache/spark	31	12	2.58
+CleverRaven/Cataclysm-DDA	29	13	2.23
+cachethq/Cachet	28	11	2.55
+frogsbreath-games/eucre	25	25	1.0
+HabitRPG/habitrpg	23	10	2.3
+tgstation/-tg-station	22	10	2.2
+rust-lang/rust	21	13	1.62
+Youssef1313/samples	20	20	1.0
+backdrop/backdrop-issues	18	7	2.57
+gratipay/inside.gratipay.com	18	4	4.5
+saltstack/salt	17	7	2.43
+lumien231/Custom-Main-Menu	16	1	16.0
+MetaMask/eth-phishing-detect	15	15	1.0
+numenta/nupic.core	15	6	2.5
+Homebrew/homebrew	13	6	2.17
+badrsony/icloudin-support-	13	2	6.5
+Expensify/App	12	9	1.33
+Sanne/testcontainers-java	11	11	1.0
+atom-community/autocomplete-plus	11	1	11.0
+diydrones/ardupilot	11	8	1.38
+kguil/Marvin-Roadmap	11	2	5.5
+kyma-project/kyma	11	10	1.1
+libantioch/antioch	11	2	5.5
+Baystation12/Baystation12	10	5	2.0
+hrydgard/ppsspp	10	5	2.0
+rQAQr/rss	10	8	1.25
+sikozheng/rshb	10	6	1.67
+tipfortip/issues	10	1	10.0
+Mindwerks/wildmidi	9	9	1.0
+NeuroVault/NeuroVault	9	1	9.0
+THE-ESCAPIST/RSSHub	9	7	1.29
+WhisperSystems/TextSecure	9	8	1.12
+XLabs/Xamarin-Forms-Labs	9	6	1.5
+aws/eks-distro	9	1	9.0
+disco-trooper/weather-app	9	9	1.0
+docker-library/docs	9	4	2.25
+expressjs/compression	9	1	9.0
+flutter/flutter	9	9	1.0
+isaacg1/pyth	9	3	3.0
+jscs-dev/node-jscs	9	6	1.5
+orkestral/venom	9	9	1.0
+udondan/jsii	9	9	1.0
+4Nanai/Abot	8	5	1.6
+Blockchain-Dev-Web/hardhat-erc721	8	1	8.0
+DoYana/myrss	8	6	1.33
+Joomla-Bible-Study/Joomla-Bible-Study	8	1	8.0
+JuliaLang/julia	8	7	1.14
+P3TERX/RSSHub	8	6	1.33
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments4.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments4.out
new file mode 100644
index 00000000000..737f2e33a41
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments4.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments4 --
+TTMTT/iCL0udin	1	34
+lumien231/Custom-Main-Menu	7	16
+cachethq/Cachet	173	11
+atom-community/autocomplete-plus	185	11
+saltstack/salt	19253	11
+tipfortip/issues	133	10
+badrsony/icloudin-support-	8	9
+expressjs/compression	25	9
+NeuroVault/NeuroVault	90	9
+gratipay/inside.gratipay.com	93	9
+aws/eks-distro	1398	9
+CleverRaven/Cataclysm-DDA	10643	9
+honeinc/emit-bindings	7	8
+libantioch/antioch	72	8
+alexgrist/ServerGuard	118	8
+Blockchain-Dev-Web/hardhat-erc721	279	8
+kguil/Marvin-Roadmap	362	8
+Joomla-Bible-Study/Joomla-Bible-Study	403	8
+isaacg1/pyth	10	7
+SpongePowered/SpongeAPI	272	7
+backdrop/backdrop-issues	521	7
+apache/spark	3864	7
+apache/spark	3865	7
+YungSang/boot2docker-vagrant-box	18	6
+iChun/Tabula	23	6
+ev3dev/ev3dev.github.io	37	6
+gratipay/inside.gratipay.com	86	6
+scientist-softserv/adventist-dl	117	6
+openfl/lime	301	6
+MinecraftForge/FML	581	6
+stedolan/jq	659	6
+carltonwhitehead/coner	2	5
+box/leche	5	5
+aatxe/irc	11	5
+torch/trepl	12	5
+sfu-natlang/lensingwikipedia	127	5
+numenta/nupic.core	295	5
+AtomLinter/Linter	316	5
+rwaldron/johnny-five	524	5
+blueboxgroup/ursula	670	5
+ankidroid/Anki-Android	680	5
+notsecure/uTox	718	5
+sass/libsass	790	5
+facebook/react	953	5
+nylira/prism-break	1212	5
+numenta/nupic	1694	5
+theCrag/website	1764	5
+HabitRPG/habitrpg	4458	5
+tgstation/-tg-station	6718	5
+hrydgard/ppsspp	7245	5
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments5.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments5.out
new file mode 100644
index 00000000000..a4a6da943a5
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments5.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments5 --
+atom-community/autocomplete-plus	185	11
+cachethq/Cachet	173	11
+saltstack/salt	19253	11
+tipfortip/issues	133	10
+CleverRaven/Cataclysm-DDA	10643	9
+NeuroVault/NeuroVault	90	9
+aws/eks-distro	1398	9
+expressjs/compression	25	9
+gratipay/inside.gratipay.com	93	9
+Blockchain-Dev-Web/hardhat-erc721	279	8
+Joomla-Bible-Study/Joomla-Bible-Study	403	8
+alexgrist/ServerGuard	118	8
+kguil/Marvin-Roadmap	362	8
+libantioch/antioch	72	8
+SpongePowered/SpongeAPI	272	7
+apache/spark	3864	7
+apache/spark	3865	7
+backdrop/backdrop-issues	521	7
+MinecraftForge/FML	581	6
+YungSang/boot2docker-vagrant-box	18	6
+ev3dev/ev3dev.github.io	37	6
+gratipay/inside.gratipay.com	86	6
+iChun/Tabula	23	6
+openfl/lime	301	6
+scientist-softserv/adventist-dl	117	6
+stedolan/jq	659	6
+AtomLinter/Linter	316	5
+HabitRPG/habitrpg	4458	5
+Homebrew/homebrew	35404	5
+aatxe/irc	11	5
+ankidroid/Anki-Android	680	5
+blueboxgroup/ursula	670	5
+facebook/react	953	5
+hrydgard/ppsspp	7245	5
+notsecure/uTox	718	5
+numenta/nupic	1694	5
+numenta/nupic.core	295	5
+nylira/prism-break	1212	5
+rwaldron/johnny-five	524	5
+sass/libsass	790	5
+sfu-natlang/lensingwikipedia	127	5
+tgstation/-tg-station	6718	5
+theCrag/website	1764	5
+torch/trepl	12	5
+Expensify/App	12400	4
+Homebrew/homebrew	35194	4
+TelescopeJS/Telescope	666	4
+Unitech/PM2	913	4
+apache/spark	3237	4
+apache/spark	3855	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments6.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments6.out
new file mode 100644
index 00000000000..57af3521197
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments6.out
@@ -0,0 +1,15 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments6 --
+cachethq/Cachet	173	11	4
+SpongePowered/SpongeAPI	272	7	4
+MinecraftForge/FML	581	6	4
+HabitRPG/habitrpg	4458	5	4
+Homebrew/homebrew	35404	5	4
+ankidroid/Anki-Android	680	5	4
+tgstation/-tg-station	6718	5	4
+Unitech/PM2	913	4	4
+dolphin-emu/dolphin	1798	4	4
+nezhivar/nezhOS	190	4	4
+rust-lang/rust	20364	4	4
+tgstation/-tg-station	6689	4	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments7.out b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments7.out
new file mode 100644
index 00000000000..1a3d9f653de
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/issuesWithTheMostComments7.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !issuesWithTheMostComments7 --
+mheon/checksims	28	2
+rust-lang/rust	18	1
+reubenhwk/dvd_menu_animator	9	2
+eswordthecat/vgstation13	8	3
+Homebrew/homebrew-science	7	2
+JoeForks/Cachet	7	3
+rene-scheepers/case-life	7	1
+DeEvo/chamilo-lms-utp	6	1
+christophercochran/Genesis-Visual-Hook-Guide	5	1
+ProjectCollaboTeam/Collab	4	2
+Thunderbots-5604/2014-Code	4	1
+botandrose/calagator	4	2
+jdavis/twofactorauth	4	1
+jupitersh/jupitersh.github.io	4	1
+skillrecordings/products	4	1
+vangdfang/libcutter	4	1
+NREL/OpenStudio	3	1
+archaeopterasa/synx	3	2
+att/rcloud	3	2
+hashicorp/boundary-ui	3	1
+honestbleeps/Reddit-Enhancement-Suite	3	1
+japaric/rust	3	1
+AKST/jsgen	2	1
+AnyelinaMarte/saeamt-docente	2	1
+AyaNour333/Dashboard	2	1
+Beiyongcangku/things	2	1
+Brento27/Job-applications	2	1
+ErikZalm/Marlin	2	2
+GijsTimmers/kotnetcli	2	1
+Jamesking56/Cachet	2	1
+Nbodypp/HOW_final	2	2
+PCSX2/pcsx2	2	2
+Tsavsar/CapacitorApp	2	1
+WasabiFan/ev3dev.github.io	2	1
+Whatevering/news-homepage-fm	2	1
+b0wdyy/book-reads	2	1
+batyshkaLenin/alexandr-sidorenko.me	2	1
+cdandrango3/facturas	2	1
+composer/composer	2	1
+dengxqi/jsbbs	2	1
+elikemscott/Assessment	2	1
+george1410/daily-mix-saver	2	1
+giorgiaBertacchini/MLOps-kedro-auto	2	1
+k2wlxda/kernel-msm	2	1
+kmiecik013/test2	2	1
+koajs/koa	2	2
+kripken/emscripten-fastcomp-clang	2	1
+kyrias/pkgbuilds	2	2
+livepeer/livepeer.js	2	1
+lucasjolibois54/futureworld	2	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/load.out b/regression-test/data/variant_p0/github_events_p0/load.out
new file mode 100644
index 00000000000..ff3173cf0da
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/load.out
@@ -0,0 +1,7 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !sql --
+4748
+\N
+\N
+\N
+
diff --git a/regression-test/data/variant_p0/github_events_p0/mostForkedRepositories.out b/regression-test/data/variant_p0/github_events_p0/mostForkedRepositories.out
new file mode 100644
index 00000000000..f516dae1250
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/mostForkedRepositories.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !mostForkedRepositories --
+cssdream/cssgrace	5
+labenuexercicios/objetos-template	5
+lambda81/lambda-addons	5
+octocat/Spoon-Knife	5
+prakhar1989/awesome-courses	5
+udacity/frontend-nanodegree-resume	5
+TheOdinProject/css-exercises	3
+ahmadpanah/Music-instrument	3
+bitcoin/bitcoin	3
+detuks/LeagueSharp	3
+neutron-org/testnets	3
+ranerlich7/library_django	3
+twbs/bootstrap	3
+Araq/Nim	2
+BradLarson/GPUImage	2
+ColeTownsend/Balzac-for-Jekyll	2
+EvgeniiMal/HTML-builder	2
+GAWMiners/paycoin	2
+InjectionDev/LeagueSharp	2
+LarryMad/recipes	2
+Qihoo360/phptrace	2
+SublimeHaskell/SublimeHaskell	2
+TORC2137/2137-2014-roboRIO-Labview	2
+Vanna007/Free-RDP	2
+WhisperSystems/TextSecure	2
+Wynncraft/Issues	2
+adobe/brackets	2
+alexvollmer/daemon-spawn	2
+apache/spark	2
+appacademy/active_record_lite	2
+bundler/bundler	2
+clowwindy/ChinaDNS	2
+cocos2d/cocos2d-x	2
+constjs/SmartThings-Devices	2
+deadlyvipers/dojo_rules	2
+discourse/discourse	2
+django-nonrel/django	2
+django/django	2
+firstcontributions/first-contributions	2
+flarum/core	2
+informatika-19/latihan-backend-19421040-bagasdwijayanto	2
+jculvey/roboto	2
+jlord/patchwork	2
+joinpursuit/8-0-react-hooks-lab	2
+julycoding/The-Art-Of-Programming-By-July	2
+learn-co-curriculum/phase-1-practice-toy-tale	2
+lexrus/VPNOn	2
+mmistakes/so-simple-theme	2
+mrkipling/maraschino	2
+nightscout/cgm-remote-monitor	2
+
diff --git a/regression-test/data/variant_p0/github_events_p0/mostPopularCommentsOnGithub.out b/regression-test/data/variant_p0/github_events_p0/mostPopularCommentsOnGithub.out
new file mode 100644
index 00000000000..a1a7da60a83
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/mostPopularCommentsOnGithub.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !mostPopularCommentsOnGithub --
+🧹 	1
+😑 	1
+👍	1
+????	1
+확인	1
+코드가 변경되서 찾지 못하겠어요	1
+정확한 부분의 SQL Language 입니다.	1
+에러 유발한 값들을 같이 찍어주면 더 좋을 것 같네요. 	1
+어떻게 issue owner 할당 하나요? 이 이슈를 저한테 할당하려고 합니다.	1
+생성자를 통해 chatButton등을 넘겨받는 것이 좋을 것 같습니다.	1
+매직넘버를 루프로 바꾸는 과정에서 실수로 안바꿔준 부분 같습니다	1
+넵 막 Collaborators로 등록했습니다. 이제 스스로 할당 하실 수 있습니다 :)	1
+권한 적용 완료	1
+非常感谢!	1
+選択肢がそれしかないのを強調するため	1
+跪求大侠们把这bug认领了吧。\r\n我就可以直接开始干SRS3.0了。	1
+越发觉得把按钮从顶栏抽出来非常合理\r\n不过还是算了,我也不会搞(ㅍ_ㅍ)	1
+谢谢您!	1
+请使用stable的版本。	1
+请不要使用中文路径	1
+说解决方案	1
+表示在win也存在这问题,ctrl+c不能复制调试文字。\r\nfixed 就好	1
+有具体的IP列表吗?fakeip没有自动更新的机制	1
+是 han.js 里测试特性的代码中的。	1
+改名	1
+我这边魔改了很多东西,就是同步完,清理仓库	1
+我也遇到这个问题,目前没找到原因。等发现解决了方法再告诉你啊。	1
+想重新焊接一个,我看8822cs支持不好,有没有其他可以支持的模块	1
+微信这么一变,挺伤的。还不知什么时候会正式放出接口。	1
+已经提交了一个 Pull Requests 	1
+已经不再用seajs了,browserify的实时打包或许是个正确的选择。恍惚++	1
+参考資料ありがとうございます。\n	1
+你说的难道不是过滤规则的功能吗?	1
+今年がもっと素敵な一年になりますように。	1
+乃\r\n	1
+メニューへ移動して嬉しそうな機能は全て移し終わりました。\r\n	1
+すごい量!\r\n	1
+これは、(多分)私の仕事ですね。	1
+おめでとうございます! :tada: 	1
+مبروك أخي مجد	1
+إنشاء الله أخي مجد	1
+а линтер на что, это же ридми?\r\nЗаменил ссылки	1
+Спасибо. Удалил	1
+Сам нашёл, сам пофиксил - всё правильно.	1
+Готово 	1
+you can see them in archery tweaks. this is something I added and committed separately.	1
+you can increase the timeout value to allow for the scripts to run `host.idleTimeOut = 10000`	1
+yey	1
+yes, that's definitely on purpose	1
+yes, look at this: https://github.com/niXman/mingw-builds/pull/628	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.out b/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.out
new file mode 100644
index 00000000000..661a376e030
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !organizationsByTheNumberOfRepositories --
+begriffs	1
+cachethq	1
+cssdream	1
+pathgather	1
+prakhar1989	1
+wasabeef	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfStars.out b/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfStars.out
new file mode 100644
index 00000000000..1d8c3833bf9
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/organizationsByTheNumberOfStars.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !organizationsByTheNumberOfStars --
+wasabeef	44
+prakhar1989	32
+google	27
+h0x0er	24
+cachethq	17
+aplus-framework	16
+begriffs	13
+pathgather	13
+cssdream	12
+github	12
+microsoft	12
+netflix	12
+ymatuhin	11
+facebook	10
+gorhill	9
+h5bp	9
+kragniz	9
+qihoo360	9
+sindresorhus	9
+auchenberg	8
+cwrichardkim	8
+docker	8
+lexrus	8
+orangeduck	8
+papers-we-love	8
+projectdiscovery	8
+vinta	8
+atom	7
+dockerboard	7
+goagent	7
+kbandla	7
+nevin31	7
+ossu	7
+square	7
+substack	7
+zhihu	7
+alvarotrigo	6
+apache	6
+billlanyon	6
+inf0rmer	6
+isohuntto	6
+livid	6
+martinothamar	6
+public-apis	6
+rails	6
+spf13	6
+angular	5
+batteringram-dev	5
+cloudflare	5
+d235j	5
+
diff --git a/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.out b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.out
new file mode 100644
index 00000000000..a188bf2ba95
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !proportionsBetweenStarsAndForks1 --
+cssdream/cssgrace	5	12	2.4
+labenuexercicios/objetos-template	5	0	0.0
+lambda81/lambda-addons	5	0	0.0
+octocat/Spoon-Knife	5	0	0.0
+prakhar1989/awesome-courses	5	32	6.4
+udacity/frontend-nanodegree-resume	5	0	0.0
+TheOdinProject/css-exercises	3	1	0.333
+ahmadpanah/Music-instrument	3	1	0.333
+bitcoin/bitcoin	3	0	0.0
+detuks/LeagueSharp	3	0	0.0
+neutron-org/testnets	3	0	0.0
+ranerlich7/library_django	3	0	0.0
+twbs/bootstrap	3	4	1.333
+Araq/Nim	2	0	0.0
+BradLarson/GPUImage	2	2	1.0
+ColeTownsend/Balzac-for-Jekyll	2	0	0.0
+EvgeniiMal/HTML-builder	2	0	0.0
+GAWMiners/paycoin	2	2	1.0
+InjectionDev/LeagueSharp	2	0	0.0
+LarryMad/recipes	2	0	0.0
+Qihoo360/phptrace	2	8	4.0
+SublimeHaskell/SublimeHaskell	2	0	0.0
+TORC2137/2137-2014-roboRIO-Labview	2	0	0.0
+Vanna007/Free-RDP	2	0	0.0
+WhisperSystems/TextSecure	2	0	0.0
+Wynncraft/Issues	2	0	0.0
+adobe/brackets	2	0	0.0
+alexvollmer/daemon-spawn	2	0	0.0
+apache/spark	2	1	0.5
+appacademy/active_record_lite	2	0	0.0
+bundler/bundler	2	0	0.0
+clowwindy/ChinaDNS	2	0	0.0
+cocos2d/cocos2d-x	2	1	0.5
+constjs/SmartThings-Devices	2	0	0.0
+deadlyvipers/dojo_rules	2	0	0.0
+discourse/discourse	2	1	0.5
+django-nonrel/django	2	0	0.0
+django/django	2	1	0.5
+firstcontributions/first-contributions	2	0	0.0
+flarum/core	2	4	2.0
+informatika-19/latihan-backend-19421040-bagasdwijayanto	2	0	0.0
+jculvey/roboto	2	0	0.0
+jlord/patchwork	2	0	0.0
+joinpursuit/8-0-react-hooks-lab	2	0	0.0
+julycoding/The-Art-Of-Programming-By-July	2	1	0.5
+learn-co-curriculum/phase-1-practice-toy-tale	2	0	0.0
+lexrus/VPNOn	2	7	3.5
+mmistakes/so-simple-theme	2	0	0.0
+mrkipling/maraschino	2	0	0.0
+nightscout/cgm-remote-monitor	2	1	0.5
+
diff --git a/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.out b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.out
new file mode 100644
index 00000000000..75a95a6165e
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.out
@@ -0,0 +1,3 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !proportionsBetweenStarsAndForks2 --
+
diff --git a/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.out b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.out
new file mode 100644
index 00000000000..6861250a12a
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.out
@@ -0,0 +1,5 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !proportionsBetweenStarsAndForks3 --
+cssdream/cssgrace	5	12	0.42
+prakhar1989/awesome-courses	5	32	0.16
+
diff --git a/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.out b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.out
new file mode 100644
index 00000000000..1d45fd3b9d4
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !proportionsBetweenStarsAndForks4 --
+1289	4021	3.12
+
diff --git a/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.out b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.out
new file mode 100644
index 00000000000..a0d029cf34a
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !proportionsBetweenStarsAndForks5 --
+12	121	10.08
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.out b/regression-test/data/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.out
new file mode 100644
index 00000000000..7f81112ac71
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesByAmountOfModifiedCode --
+liraymond04/SocialFi	2	1	14022	8395
+OutOfSyncStudios/memory-cache	1	1	7258	7248
+ToniAnton22/Recipe-App	1	1	4434	9650
+Automattic/newspack-popups	1	1	8364	4205
+webmd-health-services/BuildMasterAutomation	1	1	6968	4646
+volcain-io/exercism.io	1	1	5797	5192
+Acidburn0zzz/foundation.mozilla.org	3	1	8671	1994
+lawhump/lawhump.github.io	1	1	1371	8813
+Dannnno/Quasar	1	1	8770	1255
+Macaulay2/M2	1	1	6311	3485
+skk-dev/ddskk	1	1	4751	4740
+CoderAllan/vscode-dgmlviewer	1	1	4727	4727
+cypress-io/cypress-documentation	1	1	4824	4584
+moneytree-doug/mt-d3	1	1	1510	7898
+SnowSE/project_aspen	1	1	6686	2494
+kubegems/kubegems	1	1	5365	3775
+novus/nvd3	1	1	985	7898
+T145/cubebots	1	1	2420	6340
+UmamiDAO/metrics-api	1	1	3853	3417
+kyungphill/practice_vue	1	1	4606	2663
+jinqshen/greatEffort	1	1	4433	2767
+lyft/clutch	1	1	3100	4031
+esparzou/site_tiledesign	1	1	4466	2663
+LeagueSharp/LeagueSharpCommon	1	1	3	7094
+metasoccer/TokenBondingCurve	1	1	6070	1017
+Mu-L/PaddleHub	1	1	2519	4554
+andrejv/wxmaxima	1	1	3541	3529
+ionos-cloud/module-ansible	1	1	4089	2962
+fishulla/Torque3D	2	1	3539	3409
+mikeyhodl/kubernetes	1	1	3893	2415
+moqimoqidea/Github-Ranking	1	1	4117	1956
+harrisonho99/react-native-windows-samples	2	1	4352	1564
+Shiker2032/chick-chirick	1	1	667	5157
+hto-projects/be-sound	1	1	3904	1598
+nf-core/tools	1	1	4189	1100
+Melon-Tropics/javascript-action	2	1	1764	3371
+lloydtao/readme-guestbook	2	1	1762	3354
+jdhanotaGU/CRAPS-Game	1	1	2244	2837
+dotiful/netlify-express-api	2	1	2087	2680
+templates-starter/OrchardCore	3	1	2942	1681
+mheap/action-router	1	1	1073	3193
+Torndeco/extdb	1	1	3481	697
+Trestolt/roll20-character-sheets	1	1	2838	1084
+coolsnowwolf/packages	1	1	2077	1836
+Toe-Tet/dmm-cdd	1	1	2582	1265
+maidsafe/MaidSafe-Drive	1	1	1540	2239
+ndelvalle/v-blur	2	1	2330	1146
+mhlabs/cfn-diagram	2	1	463	2894
+Creativice-Oy/graph-sentry	1	1	2584	747
+piwik/piwik	1	1	1979	1339
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.out b/regression-test/data/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.out
new file mode 100644
index 00000000000..a574b61a3df
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesByTheNumberOfPushes --
+greatfire/wiki	48	1
+westurner/sphinxcontrib-srclinks	16	1
+josh/cafe-js	12	1
+miningforpotatoes/miningforpotatoes.github.io	9	1
+ogupte/trope	9	1
+VictiniX888/Illegal-Mod-Sites	8	1
+enfuse/pixled	7	1
+apache/spark	6	1
+cellier/cellier.github.io	6	1
+LemonPi/sal	5	1
+cleesmith/escalate	5	1
+odoo/odoo	5	1
+twbs/bootstrap	5	2
+bluejamesbond/TextJustify-Android	4	1
+chromium/chromium	4	1
+delner/pink_panther	4	1
+kragniz/json-sempai	4	1
+BackWoodsMod/BackWoods-Dev-Website	3	1
+IBM/pwa-lit-template	3	1
+ShouthostLLC/stripe-d	3	1
+TimmyO18/timmyobiso	3	1
+altipla-consulting/i18n-messages	3	1
+ariddell/lda	3	1
+ben-manes/caffeine	3	1
+bohoomil/fontconfig-ultimate	3	1
+cachethq/Cachet	3	2
+cubiclesoft/barebones-cms-shortcode-bb_syntaxhighlight	3	1
+joelpurra/jqnpm	3	1
+jonsterling/hs-abt	3	1
+lhorie/mithril.js	3	1
+nguyenhongson1902/lunar-lander-solver	3	1
+shurcooL/webgl	3	1
+HazyResearch/deepdive	2	1
+Homebrew/homebrew	2	2
+JetBrains/intellij-community	2	1
+Khan/perseus	2	1
+MatthewLymer/ScriptMigrations	2	1
+NodeBB/NodeBB	2	1
+Qmunity/QmunityLib	2	1
+StevenXL/learntoprogram	2	1
+ValcambiSuisseNFT/verify-info	2	1
+getlantern/lantern	2	1
+golang/go	2	1
+laurent22/joplin	2	1
+lhorie/mithril	2	1
+literallysame/Festivus-Mode	2	1
+mantarayforensics/mantaray	2	1
+rapid7/metasploit-framework	2	2
+ropensci/webservices	2	1
+rossdylan/eris	2	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.out
new file mode 100644
index 00000000000..46e1f359ae2
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.out
@@ -0,0 +1,15 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithClickhouse_related_comments1 --
+apache/spark	14
+TTMTT/iCL0udin	3
+blueboxgroup/ursula	3
+apache/arrow	1
+apache/cassandra-dtest	1
+apache/dolphinscheduler	1
+expressjs/compression	1
+fluo-io/fluo-dev	1
+icret/EasyImages2.0	1
+indiebox/ubos-admin	1
+kanaka/websockify	1
+rstudio/pins-r	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.out
new file mode 100644
index 00000000000..66e1d07e448
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.out
@@ -0,0 +1,15 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithClickhouse_related_comments2 --
+apache/spark	1	14
+TTMTT/iCL0udin	0	3
+blueboxgroup/ursula	0	3
+apache/arrow	0	1
+apache/cassandra-dtest	0	1
+apache/dolphinscheduler	0	1
+expressjs/compression	0	1
+fluo-io/fluo-dev	0	1
+icret/EasyImages2.0	0	1
+indiebox/ubos-admin	0	1
+kanaka/websockify	0	1
+rstudio/pins-r	0	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.out
new file mode 100644
index 00000000000..7f4dbb909da
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithDoris_related_comments1 --
+apache/spark	22
+HabitRPG/habitrpg	1
+python/mypy	1
+rstudio/pins-r	1
+selfhub/selfhub	1
+tesseradata/docs-datadr	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.out
new file mode 100644
index 00000000000..c248e312e32
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithDoris_related_comments2 --
+apache/spark	1	22
+HabitRPG/habitrpg	0	1
+python/mypy	0	1
+rstudio/pins-r	0	1
+selfhub/selfhub	0	1
+tesseradata/docs-datadr	0	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.out
new file mode 100644
index 00000000000..d436dae02bd
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.out
@@ -0,0 +1,14 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheHighestGrowthYoY --
+avelino/awesome-go	3	1	3.0	2015-01-01T10:01:25
+torvalds/linux	2	1	2.0	2015-01-01T10:13:15
+esl/MongooseIM	1	1	1.0	2015-01-01T10:37:13
+gitlabhq/gitlabhq	1	1	1.0	2015-01-01T10:37:54
+haoel/leetcode	1	1	1.0	2015-01-01T10:34:53
+sindresorhus/awesome	1	2	0.5	2015-01-01T10:33:57
+github/gitignore	1	3	0.333	2015-01-01T10:25:26
+golang/go	1	3	0.333	2015-01-01T08:05:52
+h5bp/Front-end-Developer-Interview-Questions	2	6	0.333	2015-01-01T08:01:30
+leanote/leanote	1	4	0.25	2015-01-01T09:11:54
+prakhar1989/awesome-courses	1	31	0.032	2015-01-01T08:07
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.out
new file mode 100644
index 00000000000..9d395cfb85f
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfIssues1 --
+No-CQRT/GooGuns	44	1
+YGGDRASIL-STUDIO/Discouraged-Workers	16	1
+kcaa/kcaa	13	1
+pddemo/demo	11	1
+GHConnIT/system-test-repo-1667812266	10	1
+LeiDeMing/reading	9	1
+backdrop/backdrop-issues	7	3
+DsooRadha/CDMX013-md-links	6	1
+GunZi200/Memory-Colour	6	1
+antonioortegajr/beerfind.me	6	1
+christophercochran/Genesis-Visual-Hook-Guide	6	1
+starakaj/rnecklace	6	1
+GMOD/Apollo	5	1
+g19-mr/azh	5	1
+getparsec/getparsec	5	1
+huntermcmillian/huntermcmillian	5	1
+leo424y/heysiri.ml	5	1
+waltervr/mejengol	5	1
+ApexKO/issue-tracking	4	1
+Baystation12/Baystation12	4	1
+CTC-CompTech/delivery	4	2
+CrafterKina/ExperiencePower	4	1
+RPMTW/RPMTW-Platform-Mod	4	1
+Shyenaia/prework-study-guide	4	1
+cachethq/Cachet	4	3
+djbouche/glowing-bear	4	1
+hzinner/lab-agile-planning	4	1
+ligershark/side-waffle	4	1
+pvandervelde/cloud-jenkins	4	1
+seadog007/EasyCal	4	1
+BryanDeJesus/CSC-251-GroupProject	3	1
+EKGAPI/webAppEKGAPI	3	1
+GiuseppeFilingeri/upgraded-symmetrical-waddle	3	1
+Kindnesscove/kindnesscove	3	1
+MiYa-Solutions/sbcx	3	2
+NamNguyen911/first_app	3	1
+RahalYesser/Training-Management	3	1
+TechCavern/WaveTact	3	1
+TechnicPack/TechnicLauncher	3	3
+Wel-Alves/lab-agile-planning	3	1
+ac-engine/amusement-creators-engine	3	1
+asiekierka/MagnumOpus	3	1
+bikeindex/bike_index	3	1
+campaul/ph.sh	3	2
+captainkirkby/Gears	3	1
+darinmorrison/type-nats.rs	3	1
+endercrest/ColorCube	3	1
+glasklart/hd	3	1
+ivolunteerph/ivolunteerph	3	1
+kalamuna/kalastatic	3	2
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.out
new file mode 100644
index 00000000000..9bdf6536714
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfIssues2 --
+No-CQRT/GooGuns	44	1	0
+YGGDRASIL-STUDIO/Discouraged-Workers	16	1	0
+kcaa/kcaa	13	1	0
+pddemo/demo	11	1	0
+GHConnIT/system-test-repo-1667812266	10	1	0
+LeiDeMing/reading	9	1	0
+backdrop/backdrop-issues	7	3	0
+DsooRadha/CDMX013-md-links	6	1	0
+GunZi200/Memory-Colour	6	1	0
+antonioortegajr/beerfind.me	6	1	0
+christophercochran/Genesis-Visual-Hook-Guide	6	1	0
+starakaj/rnecklace	6	1	0
+GMOD/Apollo	5	1	0
+g19-mr/azh	5	1	0
+getparsec/getparsec	5	1	0
+huntermcmillian/huntermcmillian	5	1	0
+leo424y/heysiri.ml	5	1	0
+waltervr/mejengol	5	1	0
+ApexKO/issue-tracking	4	1	0
+Baystation12/Baystation12	4	1	0
+CTC-CompTech/delivery	4	2	0
+CrafterKina/ExperiencePower	4	1	0
+RPMTW/RPMTW-Platform-Mod	4	1	0
+Shyenaia/prework-study-guide	4	1	0
+cachethq/Cachet	4	3	17
+djbouche/glowing-bear	4	1	0
+hzinner/lab-agile-planning	4	1	0
+ligershark/side-waffle	4	1	1
+pvandervelde/cloud-jenkins	4	1	0
+seadog007/EasyCal	4	1	0
+BryanDeJesus/CSC-251-GroupProject	3	1	0
+EKGAPI/webAppEKGAPI	3	1	0
+GiuseppeFilingeri/upgraded-symmetrical-waddle	3	1	0
+Kindnesscove/kindnesscove	3	1	0
+MiYa-Solutions/sbcx	3	2	0
+NamNguyen911/first_app	3	1	0
+RahalYesser/Training-Management	3	1	0
+TechCavern/WaveTact	3	1	0
+TechnicPack/TechnicLauncher	3	3	0
+Wel-Alves/lab-agile-planning	3	1	0
+ac-engine/amusement-creators-engine	3	1	0
+asiekierka/MagnumOpus	3	1	0
+bikeindex/bike_index	3	1	0
+campaul/ph.sh	3	2	0
+captainkirkby/Gears	3	1	0
+darinmorrison/type-nats.rs	3	1	0
+endercrest/ColorCube	3	1	0
+glasklart/hd	3	1	0
+ivolunteerph/ivolunteerph	3	1	0
+kalamuna/kalastatic	3	2	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.out
new file mode 100644
index 00000000000..88c4f295960
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfIssues3 --
+wasabeef/awesome-android-ui	0	0	35
+prakhar1989/awesome-courses	0	0	32
+Pathgather/please-wait	0	0	13
+cssdream/cssgrace	0	0	12
+begriffs/postgrest	1	1	12
+cachethq/Cachet	4	3	17
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.out
new file mode 100644
index 00000000000..805d935c55b
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfIssues4 --
+wasabeef/awesome-android-ui	0	0	35
+prakhar1989/awesome-courses	0	0	32
+Pathgather/please-wait	0	0	13
+cssdream/cssgrace	0	0	12
+Netflix/ice	0	0	9
+gorhill/uBlock	0	0	9
+kragniz/json-sempai	0	0	9
+wasabeef/awesome-android-libraries	0	0	9
+Qihoo360/phptrace	0	0	8
+auchenberg/chrome-devtools-app	0	0	8
+h5bp/Front-end-Developer-Interview-Questions	0	0	8
+papers-we-love/papers-we-love	0	0	8
+vinta/awesome-python	0	0	8
+goagent/goagent	0	0	7
+kbandla/APTnotes	0	0	7
+lexrus/VPNOn	0	0	7
+projectdiscovery/katana	0	0	7
+zhihu/kids	0	0	7
+alvarotrigo/fullPage.js	0	0	6
+dockerboard/dockerboard	0	0	6
+inf0rmer/blanket	0	0	6
+isohuntto/openbay	0	0	6
+livid/v2ex	0	0	6
+martinothamar/Mediator	0	0	6
+ossu/computer-science	0	0	6
+public-apis/public-apis	0	0	6
+rails/rails-perftest	0	0	6
+DovAmir/awesome-design-patterns	0	0	5
+Reactive-Extensions/RxJS	0	0	5
+d235j/360Controller	0	0	5
+fcambus/nginx-resources	0	0	5
+leanote/leanote	0	0	5
+lensterxyz/lenster	0	0	5
+nemoTyrant/manong	0	0	5
+Anchor89/GithubHub	0	0	4
+Byron/gitoxide	0	0	4
+FelisCatus/SwitchyOmega	0	0	4
+avelino/awesome-go	0	0	4
+flarum/core	0	0	4
+github/gitignore	0	0	4
+golang/go	0	0	4
+google/end-to-end	0	0	4
+greatfire/wiki	0	0	4
+imgix/imgix-emacs	0	0	4
+iojs/io.js	0	0	4
+josh/cafe-js	0	0	4
+neilj/Squire	0	0	4
+orangeduck/libCello	0	0	4
+spf13/hugo	0	0	4
+square/PonyDebugger	0	0	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.out
new file mode 100644
index 00000000000..a3eec38c169
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfPullRequests1 --
+0xMoJo7/Snapchain	1	1
+102/eslint-plugin-comment-annotations	1	1
+10sr/junks	1	1
+1367944498/rsshub	1	1
+18F/analytics-proxy-nodejs	1	1
+18F/openFEC	1	1
+23technologies/23ke-charts	1	1
+2yd/rsshub	1	1
+3m4q3m4q/repo1	1	1
+4GeeksAcademy/build-your-full-stack-developer-resume	1	1
+4i5/hello-world	1	1
+6shell/windows_exporter	1	1
+77-A/.net3	1	1
+7ackkkkk/rsshub	1	1
+7comp/android_frameworks_opt_telephony	1	1
+ABf1ag/learne	1	1
+ADCP1/airbnb-backend	1	1
+AKJAW/ApolloDataBuilders	1	1
+ATGardner/OSMExport	1	1
+AY2223S1-CS2103T-F12-2/tp	1	1
+AY2223S1-CS2103T-T11-2/tp	1	1
+AY2223S1-CS2103T-T12-1/tp	1	1
+AY2223S1-CS2103T-T17-1/tp	1	1
+AY2223S1-CS2103T-W15-4/tp	1	1
+AZhur771/TLP	1	1
+AbiaEssienRepos/auto-price-estimation-project	1	1
+AcalaNetwork/safe-config-service	1	1
+AdWerx/pronto-ruby	1	1
+AdamHidvegi/CurrencyC	1	1
+AdoptOpenJDK/openjdk-website	1	1
+Aerendir/bundle-aws-ses-monitor	1	1
+AhmadTanvir/vue_lara	1	1
+Airnow-test/aspnetcore	1	1
+Alan-love/language-server-protocol	1	1
+AlanYe-Dev/rsshub-vercel	1	1
+AlessioPrete/packagetest	1	1
+AletheiaOrg/Aletheia	1	1
+AlexLazareva/sarafan	1	1
+Alez05/tesla-interface-react-emotion-poc	1	1
+AlipayDocs/open-docs	1	1
+Alisa1106/vividus-starter-project	1	1
+Aliyamuskan/FirstRepo	1	1
+Alttaab/19.3-flask-survey-exercise	1	1
+Amiiiiiiiin/Escaping-Hell	1	1
+AndroidIDEOfficial/AndroidIDE	1	1
+AnhelinaZhurauleva/vividus-hometask2	1	1
+AnkitParte/astute-line-8992	1	1
+AnttiHal/express-harjoitus	1	1
+Apicurio/apicurio-registry	1	1
+Araq/Nim	1	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.out
new file mode 100644
index 00000000000..2f9adf408a5
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumAmountOfPullRequests2 --
+scalr-automation/terraform-scalr-flat-mirror5	13	7
+woowacourse-precourse/java-baseball	7	7
+scalr-automation/terraform-scalr-flat-mirror4	5	4
+google/it-cert-automation-practice	4	4
+neutron-org/testnets	4	4
+selfhub/selfhub	4	4
+WolseyBankWitness/rediffusion	8	3
+mhutchinson/mhutchinson-distributor	8	3
+CleverRaven/Cataclysm-DDA	4	3
+apache/spark	3	3
+rust-lang/rust	3	3
+tgstation/-tg-station	3	3
+cachethq/Cachet	4	2
+eclipse/birt	4	2
+Homebrew/homebrew-cask	3	2
+octokit/octokit.net	3	2
+openshift/sippy	3	2
+Bhargavhs/GitHubWorkShop	2	2
+EKGAPI/KardiaApp	2	2
+JorgeX/dojo_rules	2	2
+JuliaLang/METADATA.jl	2	2
+KSP-CKAN/NetKAN	2	2
+Merchello/Merchello	2	2
+PCSX2/pcsx2	2	2
+Strukturavaltas-03-Frontend-2022/csapatmunka---angular-webshop-01-3-underground	2	2
+TeamGabriel/gabriel	2	2
+WhisperSystems/TextSecure	2	2
+app-sre/qontract-reconcile	2	2
+azelezovs/auto-bootcamp-setup	2	2
+bioconda/bioconda-recipes	2	2
+cnrancher/dashboard	2	2
+coocoo08/LookSt	2	2
+docker/docs	2	2
+googleapis/gapic-generator-ruby	2	2
+myMarketPg/project-mymarket	2	2
+php/php-src	2	2
+quarkusio/quarkus-github-bot	2	2
+rspec/rspec-core	2	2
+slothbear/dojo_rules	2	2
+twitter/scalding	2	2
+frogsbreath-games/eucre	28	1
+Youssef1313/samples	21	1
+DataDog/opentelemetry-collector-contrib	17	1
+golden-warning/giraffedraft-server	15	1
+objectiser/opentelemetry-collector-contrib	13	1
+Sanne/testcontainers-java	10	1
+PCMDI/pcmdi_metrics	9	1
+outofcoffee/testcontainers-java	9	1
+pcwiese/opentelemetry-collector-contrib	9	1
+rmfitzpatrick/opentelemetry-collector-contrib	8	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.out
new file mode 100644
index 00000000000..a2f35081cd9
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMaximumNumberOfAcceptedInvitations --
+loserskater/M8-GPE	1	2
+wasabeef/awesome-android-ui	0	35
+prakhar1989/awesome-courses	0	32
+cachethq/Cachet	0	17
+Pathgather/please-wait	0	13
+begriffs/postgrest	0	12
+cssdream/cssgrace	0	12
+Netflix/ice	0	9
+gorhill/uBlock	0	9
+kragniz/json-sempai	0	9
+wasabeef/awesome-android-libraries	0	9
+Qihoo360/phptrace	0	8
+auchenberg/chrome-devtools-app	0	8
+h5bp/Front-end-Developer-Interview-Questions	0	8
+papers-we-love/papers-we-love	0	8
+vinta/awesome-python	0	8
+goagent/goagent	0	7
+kbandla/APTnotes	0	7
+lexrus/VPNOn	0	7
+projectdiscovery/katana	0	7
+zhihu/kids	0	7
+alvarotrigo/fullPage.js	0	6
+dockerboard/dockerboard	0	6
+inf0rmer/blanket	0	6
+isohuntto/openbay	0	6
+livid/v2ex	0	6
+martinothamar/Mediator	0	6
+ossu/computer-science	0	6
+public-apis/public-apis	0	6
+rails/rails-perftest	0	6
+DovAmir/awesome-design-patterns	0	5
+Reactive-Extensions/RxJS	0	5
+d235j/360Controller	0	5
+fcambus/nginx-resources	0	5
+leanote/leanote	0	5
+lensterxyz/lenster	0	5
+mastodon/mastodon	0	5
+nemoTyrant/manong	0	5
+Anchor89/GithubHub	0	4
+Byron/gitoxide	0	4
+FelisCatus/SwitchyOmega	0	4
+atom/atom	0	4
+avelino/awesome-go	0	4
+docker/fig	0	4
+facebook/react	0	4
+flarum/core	0	4
+github/gitignore	0	4
+golang/go	0	4
+google/end-to-end	0	4
+greatfire/wiki	0	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.out
new file mode 100644
index 00000000000..cd6c3f13fd9
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMostPeopleWhoHavePushAccess1 --
+zzzgydi/clash-verge	0	1
+zzarcon/focusable	0	1
+zylmua/xiaomi	0	1
+zwaldowski/blockskit	0	1
+zurb/foundation	0	1
+zulfajuniadi/riverlevel	0	1
+zuiidea/antd-admin	0	1
+zuha/zuha	0	1
+zuffdaddy/dynalamp	0	1
+zorzalerrante/tsundoku	0	1
+zorro3/configargparse	0	1
+zoomhub/zoomhub	0	1
+zombodb/postgres-parser	0	1
+zokis/python--faster-way	0	1
+zlywilk/klipper4a	0	1
+zjunlp/openue	0	1
+ziyasal/node-procexss	0	1
+ziparchive/ziparchive	0	1
+zigeng/c_p	0	1
+zhoudaxiaa/vpn-	0	1
+zhongyang219/trafficmonitor	0	1
+zhenchen/experiment-for-secompax	0	1
+zhanymkanov/fastapi-best-practices	0	1
+zeromq/jeromq	0	1
+zentyal/zentyal	0	1
+zentific/vmidbg	0	1
+zendframework/zendskeletonapplication	0	1
+zenazn/goji	0	1
+zedapp/zed	0	1
+zdavatz/spreadsheet	0	1
+zcweng/togglebutton	0	1
+zasder3/train-clip	0	1
+zarel/pokemon-showdown-client	0	1
+zackkitzmiller/gofish	0	1
+zachwill/flask-engine	0	1
+zacharypatten/dotnet-console-games	0	1
+zacharydubois/s3-sync	0	1
+zacharydubois/ip-updater	0	1
+z411/trackma	0	1
+z-huang/innertune	0	1
+yyuu/pyenv-installer	0	1
+yxymit/dbx1000	0	1
+ywdarklord/go-example	0	1
+yushen0118/garment_generation	0	1
+yupenghe/methylpy	0	1
+yun-liu/rcf-pytorch	0	1
+yulife/wanderlust-reloaded	0	1
+yorikvanhavre/freecad-library	0	1
+yogiben/meteor-bootstrap	0	1
+yob/pdf-reader	0	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.out
new file mode 100644
index 00000000000..3f2bdf749f1
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMostStarsOverOneDay1 --
+wasabeef/awesome-android-ui	2015-01-01	35
+prakhar1989/awesome-courses	2015-01-01	31
+cachethq/Cachet	2015-01-01	17
+Pathgather/please-wait	2015-01-01	13
+begriffs/postgrest	2015-01-01	12
+cssdream/cssgrace	2015-01-01	12
+Netflix/ice	2015-01-01	9
+gorhill/uBlock	2015-01-01	9
+kragniz/json-sempai	2015-01-01	9
+wasabeef/awesome-android-libraries	2015-01-01	9
+Qihoo360/phptrace	2015-01-01	8
+auchenberg/chrome-devtools-app	2015-01-01	8
+papers-we-love/papers-we-love	2015-01-01	8
+vinta/awesome-python	2015-01-01	8
+goagent/goagent	2015-01-01	7
+kbandla/APTnotes	2015-01-01	7
+lexrus/VPNOn	2015-01-01	7
+projectdiscovery/katana	2022-11-08	7
+zhihu/kids	2015-01-01	7
+alvarotrigo/fullPage.js	2015-01-01	6
+dockerboard/dockerboard	2015-01-01	6
+h5bp/Front-end-Developer-Interview-Questions	2015-01-01	6
+inf0rmer/blanket	2015-01-01	6
+isohuntto/openbay	2015-01-01	6
+livid/v2ex	2015-01-01	6
+martinothamar/Mediator	2022-11-08	6
+ossu/computer-science	2022-11-08	6
+public-apis/public-apis	2022-11-08	6
+rails/rails-perftest	2015-01-01	6
+DovAmir/awesome-design-patterns	2022-11-08	5
+Reactive-Extensions/RxJS	2015-01-01	5
+d235j/360Controller	2015-01-01	5
+fcambus/nginx-resources	2015-01-01	5
+nemoTyrant/manong	2015-01-01	5
+Anchor89/GithubHub	2015-01-01	4
+FelisCatus/SwitchyOmega	2015-01-01	4
+atom/atom	2015-01-01	4
+docker/fig	2015-01-01	4
+facebook/react	2015-01-01	4
+flarum/core	2015-01-01	4
+google/end-to-end	2015-01-01	4
+greatfire/wiki	2015-01-01	4
+imgix/imgix-emacs	2015-01-01	4
+iojs/io.js	2015-01-01	4
+josh/cafe-js	2015-01-01	4
+leanote/leanote	2015-01-01	4
+neilj/Squire	2015-01-01	4
+orangeduck/libCello	2015-01-01	4
+spf13/hugo	2015-01-01	4
+square/PonyDebugger	2015-01-01	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.out
new file mode 100644
index 00000000000..4afc1de3f9a
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheMostSteadyGrowthOverTime --
+Pierian-Data/Complete-Python-3-Bootcamp	1	2	2.0
+avelino/awesome-go	2	4	2.0
+charmbracelet/vhs	1	2	2.0
+esl/MongooseIM	1	2	2.0
+gitlabhq/gitlabhq	1	2	2.0
+haoel/leetcode	1	2	2.0
+httpie/httpie	1	2	2.0
+laurent22/joplin	1	2	2.0
+starkscan/starkscan-verifier	1	2	2.0
+stashapp/stash	1	2	2.0
+lensterxyz/lenster	3	5	1.6666666666666667
+mastodon/mastodon	3	5	1.6666666666666667
+sindresorhus/awesome	2	3	1.5
+torvalds/linux	2	3	1.5
+trinib/Linux-Bash-Commands	2	3	1.5
+Byron/gitoxide	3	4	1.3333333333333333
+github/gitignore	3	4	1.3333333333333333
+golang/go	3	4	1.3333333333333333
+h5bp/Front-end-Developer-Interview-Questions	6	8	1.3333333333333333
+leanote/leanote	4	5	1.25
+prakhar1989/awesome-courses	31	32	1.032258064516129
+0fflinexd/Calculator	1	1	1.0
+0x192/universal-android-debloater	1	1	1.0
+0x4a6965/VitamioDemo	1	1	1.0
+0xabad1dea/Christmas-Card-2014	1	1	1.0
+18F/midas	1	1	1.0
+19128785540/rxrw-daily_morning	1	1	1.0
+1uphealth/fhir-react	1	1	1.0
+22century/bot-project	1	1	1.0
+2captcha/2captcha-go	1	1	1.0
+3dd13/sample-nw	1	1	1.0
+3m1o/nginx-rtmp-monitoring	1	1	1.0
+42wim/matterbridge	1	1	1.0
+47deg/labs-scala-play-mongo	1	1	1.0
+4lessandrodev/finance-project-ddd	1	1	1.0
+4u4v/ThinkPHP_Backend_System	1	1	1.0
+52inc/learn-ios	1	1	1.0
+6si/shipwright	1	1	1.0
+71104/lambda	1	1	1.0
+9inevolt/betterdgg	1	1	1.0
+AI-Guru/music-generation-research	1	1	1.0
+AUTOMATIC1111/stable-diffusion-webui	1	1	1.0
+AVGP/terminal.js	1	1	1.0
+AbdelrhmanHamouda/locust-k8s-operator	1	1	1.0
+Abecarne/Epitech	1	1	1.0
+Ableton/LinkKit	1	1	1.0
+Activiti/Activiti	1	1	1.0
+AdamNowotny/BuildReactor	1	1	1.0
+AdguardTeam/AdGuardHome	1	1	1.0
+AgentMaker/Paddle-CLIP	1	1	1.0
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.out b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.out
new file mode 100644
index 00000000000..eaa089dd02d
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoriesWithTheWorstStagnation_order --
+github/gitignore	1	3	0.333	2015-01-01T10:25:26
+golang/go	1	3	0.333	2015-01-01T08:05:52
+h5bp/Front-end-Developer-Interview-Questions	2	6	0.333	2015-01-01T08:01:30
+leanote/leanote	1	4	0.25	2015-01-01T09:11:54
+prakhar1989/awesome-courses	1	31	0.032	2015-01-01T08:07
+sindresorhus/awesome	1	2	0.5	2015-01-01T10:33:57
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList1.out b/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList1.out
new file mode 100644
index 00000000000..bd05ae6ab5c
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList1.out
@@ -0,0 +1,52 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoryAffinityList1 --
+prakhar1989/awesome-courses	32
+wasabeef/awesome-android-ui	8
+vinta/awesome-python	3
+wasabeef/awesome-android-libraries	3
+fcambus/nginx-resources	2
+papers-we-love/papers-we-love	2
+Activiti/Activiti	1
+Cydrobolt/polr	1
+Developer-Y/cs-video-courses	1
+FortAwesome/Font-Awesome	1
+Netflix/ice	1
+PHPMailer/PHPMailer	1
+Semantic-Org/Semantic-UI	1
+StevenSLXie/Tutorials-for-Web-Developers	1
+alphagov/government-service-design-manual	1
+alvarotrigo/fullPage.js	1
+angular/angular.js	1
+apache/spark	1
+ben-manes/caffeine	1
+benplummer/calendarful	1
+cachethq/Cachet	1
+deshack/pure-less	1
+digitalnature/php-highlight	1
+digitalnature/php-ref	1
+dingo/api	1
+dkhamsing/ios-asset-names	1
+drrb/java-rust-example	1
+flarum/core	1
+foreverjs/forever	1
+gdi2290/angular-websocket	1
+github/gitignore	1
+google/google-api-php-client	1
+gorhill/uBlock	1
+gulpjs/gulp	1
+guzzle/guzzle	1
+iojs/io.js	1
+isohuntto/openbay	1
+iverberk/larasearch	1
+jenssegers/laravel-agent	1
+jenssegers/laravel-mongodb	1
+jsvd/cv	1
+pgmodeler/pgmodeler	1
+serbanghita/Mobile-Detect	1
+thephpleague/csv	1
+thephpleague/flysystem	1
+torvalds/linux	1
+twbs/bootstrap	1
+vhf/free-programming-books	1
+zurb/foundation	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList2.out b/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList2.out
new file mode 100644
index 00000000000..67482925cf8
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/repositoryAffinityList2.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !repositoryAffinityList2 --
+Pathgather/please-wait	13	0.08
+begriffs/postgrest	12	0.08
+cssdream/cssgrace	12	0.08
+cachethq/Cachet	16	0.06
+prakhar1989/awesome-courses	32	0.03
+wasabeef/awesome-android-ui	35	0.03
+
diff --git a/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.out b/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.out
new file mode 100644
index 00000000000..bbe5da89e0f
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.out
@@ -0,0 +1,31 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !starsFromHeavyGithubUsers1 --
+Automattic/pocket-casts-android	1
+BYVoid/Batsh	1
+Crzyrndm/FilterExtension	1
+JeffreyWay/Laravel-Model-Validation	1
+MegaBits/SIOSocket	1
+Microsoft/dotnet	1
+Qihoo360/phptrace	1
+SFTtech/openage	1
+arturadib/shelljs	1
+cakephp/cakepackages	1
+cakephp/cakephp-codesniffer	1
+cakephp/csfnavbar	1
+chef-workflow/chef-workflow-example	1
+d235j/360Controller	1
+enaqx/awesome-react	1
+hamstergene/pathmatch	1
+jackc/pgx	1
+jesyspa/book	1
+jonsterling/intersection-types-primer	1
+josegonzalez/cakephp-datatable	1
+lorenzo/slugger	1
+msabramo/setuptools-markdown	1
+nvd3-community/nvd3	1
+opscode/chef	1
+rackt/react-router	1
+serialhex/nano-highlight	1
+sindresorhus/jshint-stylish	1
+xenith-studios/ataxia	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.out b/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.out
new file mode 100644
index 00000000000..ea9bfe01652
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.out
@@ -0,0 +1,10 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !starsFromHeavyGithubUsers2 --
+MegaBits/SIOSocket	1
+Qihoo360/phptrace	1
+chef-workflow/chef-workflow-example	1
+jackc/pgx	1
+nvd3-community/nvd3	1
+opscode/chef	1
+xenith-studios/ataxia	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames1.out b/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames1.out
new file mode 100644
index 00000000000..026117bde52
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theLongestRepositoryNames1 --
+1	the-aws-terraform-samples/terraform-route-53-application-recovery-controller-codepipeline-with-terraform
+1	Ayusha-Bhola/-Kisaan-Sahayak-Intelligent-Farmers-e-Marketplace-with-prediction-of-crop-risk-factors.
+1	danielPoloWork/EURIS-academy2022-meterial-solidPrinciplesAndDesignPatterns
+1	ShadmanShariar/CRUD_Operation_On_Firebase_Database_Using_JavaScript
+1	lakshay-arora/Densenet121-Image-Classification-Deployed-using-Flask
+1	ArthurZC23/Machine-Learning-A-Probabilistic-Perspective-Solutions
+1	deepaktiwari88/HR-Management-and-Geo-Attendance-System-Admin-App
+1	HariharanGopinath/Generate-Music-using-a-LSTM-Neural-Network
+1	jpsarda/Pixel-based-destructible-ground-with-Cocos2d-iPhone
+1	sudharsan13296/Hands-On-Reinforcement-Learning-With-Python
+1	SN-RECIT-formation-a-distance/moodle-local_recitdashboard
+1	cubiclesoft/barebones-cms-shortcode-bb_syntaxhighlight
+1	xilinxfairchild/FPGABasedHighPerformanceTargetChecking
+1	NerijusBartosevicius/laravel-insert-update-delete-ids
+1	electron-react-boilerplate/electron-react-boilerplate
+2	AttackOnDobby/iOS-Core-Animation-Advanced-Techniques
+1	Lysergic-Acid/android_device_samsung_galaxys2-common
+1	MicrosoftLearning/AZ-104-MicrosoftAzureAdministrator
+1	mikeycal/the-video-editors-render-script-for-blender
+1	Nevin31/Classification-of-Wisconson-Cancer-Dataset
+1	centralnicgroup-opensource/rtldev-middleware-whmcs
+1	AmdjedSanero/CodePostal-58-Wilaya-Algerie-With-JS
+2	EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
+1	SamyPesse/How-to-Make-a-Computer-Operating-System
+1	godot-extended-libraries/godot-antialiased-line2d
+1	ArnaudBarre/vite-plugin-react-click-to-component
+1	Siegener-Anime-und-Manga-Treff-SAMT/SAMT-Website
+1	the-aws-terraform-samples/terraform-eks-jumphost
+1	RajneeshSingh007/College-Management-Android-App
+1	akoskm/vite-react-tailwindcss-browser-extension
+1	batteringram-dev/Data-Structures-and-Algorithms
+2	billlanyon/js-therapist-react-node-mongo-docker
+1	google-github-actions/get-secretmanager-secrets
+1	python-semantic-release/python-semantic-release
+1	Juan-Carlos-Estevez-Vargas/Estevez-Corporation
+1	Learn-Dev/Learn-Dev-Theme---Dashboard-partie-1
+1	rafaelsilverioit/twitter-django-rest-framework
+1	webacademyufac/programacao-avancada-backend-t2
+1	BlueRaja/Weighted-Item-Randomizer-for-C-Sharp
+1	GoogleCloudPlatform/compute-video-demo-puppet
+1	conal/talk-2014-lambdajam-denotational-design
+1	elasticsearch/elasticsearch-analysis-kuromoji
+1	miningforpotatoes/miningforpotatoes.github.io
+1	singwhatiwanna/PinnedHeaderExpandableListView
+1	Ebazhanov/linkedin-skill-assessments-quizzes
+1	PacktPublishing/ASP.NET-Core-5-for-Beginners
+1	Schweinepriester/github-profile-achievements
+1	abhisheknaiidu/awesome-github-profile-readme
+1	adrianhajdin/project_modern_ui_ux_restaurant
+1	billlanyon/js-reform-beauty-node-express-poc
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames2.out b/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames2.out
new file mode 100644
index 00000000000..36e3e58aafa
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theLongestRepositoryNames2.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theLongestRepositoryNames2 --
+ent/ent	1
+h2o/h2o	1
+jsvd/cv	1
+jsx/JSX	1
+lxc/lxc	1
+lxc/lxd	1
+antfu/ni	1
+gburd/pt	1
+gwoo/hap	1
+hmml/ev3	1
+pkg/sftp	1
+svg/svgo	2
+yui/yui3	2
+18F/midas	1
+Erol/yomu	1
+aasm/aasm	1
+akka/akka	2
+appc/spec	1
+atom/atom	4
+dingo/api	1
+dlwh/puck	1
+fuel/fuel	1
+gazay/gon	1
+glfw/glfw	1
+golang/go	4
+harelba/q	1
+iauns/cpm	1
+iron/iron	1
+ix/kyr.li	1
+jackc/pgx	1
+jlnr/gosu	1
+koajs/koa	1
+koush/ion	1
+kr/pretty	1
+lg/murder	1
+lvgl/lvgl	1
+norx/NORX	1
+odoo/odoo	1
+ossu/math	1
+peco/peco	1
+phan/phan	1
+prql/prql	1
+pyjs/pyjs	1
+rack/rack	2
+tux3/qTox	1
+unjs/ungh	1
+vuejs/vue	1
+zuha/Zuha	1
+BVLC/caffe	1
+DomKM/silk	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theMostToughCodeReviews.out b/regression-test/data/variant_p0/github_events_p0/theMostToughCodeReviews.out
new file mode 100644
index 00000000000..6e6f3e7c130
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theMostToughCodeReviews.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theMostToughCodeReviews --
+https://github.com/d3athrow/vgstation13/pull/	4
+https://github.com/CleverRaven/Cataclysm-DDA/pull/	3
+https://github.com/apache/spark/pull/	3
+https://github.com/dotnet/runtime/pull/	3
+https://github.com/facebookincubator/velox/pull/	3
+https://github.com/kubernetes/kubernetes/pull/	3
+https://github.com/rust-lang/rfcs/pull/	3
+https://github.com/sass/libsass/pull/	3
+https://github.com/selfhub/selfhub/pull/	3
+https://github.com/tgstation/-tg-station/pull/	3
+https://github.com/AndreasMadsen/steer-screenshot/pull/	2
+https://github.com/CienProject2014/OneLevelHero/pull/	2
+https://github.com/JuliaLang/julia/pull/	2
+https://github.com/OpenRA/OpenRA/pull/	2
+https://github.com/RuddockHouse/RuddockWebsite/pull/	2
+https://github.com/SirCmpwn/ChatSharp/pull/	2
+https://github.com/YaleSTC/reservations/pull/	2
+https://github.com/ankidroid/Anki-Android/pull/	2
+https://github.com/apache/airflow/pull/	2
+https://github.com/buildbot/buildbot-infra/pull/	2
+https://github.com/cachethq/Cachet/pull/	2
+https://github.com/carymrobbins/intellij-haskforce/pull/	2
+https://github.com/coreycondardo/30-Day-Rule/pull/	2
+https://github.com/docker-library/docs/pull/	2
+https://github.com/elastic/kibana/pull/	2
+https://github.com/grafana/grafana/pull/	2
+https://github.com/hashintel/hash/pull/	2
+https://github.com/home-assistant/core/pull/	2
+https://github.com/mongodb-js/compass/pull/	2
+https://github.com/mupen64plus/mupen64plus-video-glide64mk2/pull/	2
+https://github.com/napari/napari/pull/	2
+https://github.com/odoo/odoo/pull/	2
+https://github.com/percona/pmm/pull/	2
+https://github.com/risingwavelabs/risingwave/pull/	2
+https://github.com/rspec/rspec-core/pull/	2
+https://github.com/rspec/rspec-rails/pull/	2
+https://github.com/sebastianbergmann/phpunit/pull/	2
+https://github.com/sourcegraph/sourcegraph/pull/	2
+https://github.com/sourcegraph/srclib/pull/	2
+https://github.com/square/okhttp/pull/	2
+https://github.com/substack/tape/pull/	2
+https://github.com/tsuru/tsuru/pull/	2
+https://github.com/venmo/synx/pull/	2
+https://github.com/01-edu/public/pull/	1
+https://github.com/42AGV/ft_transcendence/pull/	1
+https://github.com/ADCP1/airbnb-backend/pull/	1
+https://github.com/AMReX-Combustion/PelePhysics/pull/	1
+https://github.com/AbsaOSS/spline/pull/	1
+https://github.com/ActiveState/cli/pull/	1
+https://github.com/Adyen/adyen-dotnet-api-library/pull/	1
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.out b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.out
new file mode 100644
index 00000000000..5b3c27542e4
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theTotalNumberOfRepositoriesOnGithub --
+31481
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.out b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.out
new file mode 100644
index 00000000000..9fc95405027
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theTotalNumberOfUsersOnGithub1 --
+26724
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.out b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.out
new file mode 100644
index 00000000000..37b63bc00b8
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theTotalNumberOfUsersOnGithub2 --
+2763
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.out b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.out
new file mode 100644
index 00000000000..f3b520f20bf
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theTotalNumberOfUsersOnGithub3 --
+16510
+
diff --git a/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.out b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.out
new file mode 100644
index 00000000000..11f9d28e41d
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !theTotalNumberOfUsersOnGithub4 --
+1309
+
diff --git a/regression-test/data/variant_p0/github_events_p0/topRepositoriesByStars.out b/regression-test/data/variant_p0/github_events_p0/topRepositoriesByStars.out
new file mode 100644
index 00000000000..47450b19e5a
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/topRepositoriesByStars.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !topRepositoriesByStars --
+wasabeef/awesome-android-ui	35
+prakhar1989/awesome-courses	32
+cachethq/Cachet	17
+Pathgather/please-wait	13
+begriffs/postgrest	12
+cssdream/cssgrace	12
+Netflix/ice	9
+gorhill/uBlock	9
+kragniz/json-sempai	9
+wasabeef/awesome-android-libraries	9
+Qihoo360/phptrace	8
+auchenberg/chrome-devtools-app	8
+h5bp/Front-end-Developer-Interview-Questions	8
+papers-we-love/papers-we-love	8
+vinta/awesome-python	8
+goagent/goagent	7
+kbandla/APTnotes	7
+lexrus/VPNOn	7
+projectdiscovery/katana	7
+zhihu/kids	7
+alvarotrigo/fullPage.js	6
+dockerboard/dockerboard	6
+inf0rmer/blanket	6
+isohuntto/openbay	6
+livid/v2ex	6
+martinothamar/Mediator	6
+ossu/computer-science	6
+public-apis/public-apis	6
+rails/rails-perftest	6
+DovAmir/awesome-design-patterns	5
+Reactive-Extensions/RxJS	5
+d235j/360Controller	5
+fcambus/nginx-resources	5
+leanote/leanote	5
+lensterxyz/lenster	5
+mastodon/mastodon	5
+nemoTyrant/manong	5
+Anchor89/GithubHub	4
+Byron/gitoxide	4
+FelisCatus/SwitchyOmega	4
+atom/atom	4
+avelino/awesome-go	4
+docker/fig	4
+facebook/react	4
+flarum/core	4
+github/gitignore	4
+golang/go	4
+google/end-to-end	4
+greatfire/wiki	4
+imgix/imgix-emacs	4
+
diff --git a/regression-test/data/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.out b/regression-test/data/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.out
new file mode 100644
index 00000000000..bc6d2c790e8
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.out
@@ -0,0 +1,6 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !whatIsTheBestDayOfTheWeekToCatchAStar --
+2	366
+3	930
+5	2725
+
diff --git a/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.out b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.out
new file mode 100644
index 00000000000..ceb681760b9
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.out
@@ -0,0 +1,53 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !whoAreAllThosePeopleGivingStars1 --
+daweedkob	94
+cliffordfajardo	39
+iloveyuedu	27
+GameCracker	24
+cdleon	24
+whatcool	24
+lootnath	21
+mmestrovic	21
+EyuCoder	19
+raygerrard	16
+miketahani	15
+45H	12
+kazaky	12
+Malerator	11
+zwm5000	10
+cceasy	9
+gotlium	9
+kevindhawkins	9
+Godoctors	8
+jacsonLee	8
+jerson	8
+Github5201314	7
+Nuvini	7
+abhijit1990	7
+bchoomnuan	7
+fengdou902	7
+jameswfoster	7
+lmumar	7
+takuan-osho	7
+zx48	7
+DanielRuf	6
+IssamElbaytam	6
+Jerzerak	6
+ShovelCode	6
+aculich	6
+billlanyon	6
+co-sh	6
+darkpixel	6
+ivan4th	6
+railsjedi	6
+stonelasley	6
+x140yu	6
+DavidAlphaFox	5
+IanLuo	5
+JosephCastro	5
+MedG1	5
+Mrkavindu	5
+Narno	5
+andtxr	5
+athosss23	5
+
diff --git a/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.out b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.out
new file mode 100644
index 00000000000..cf1765406f4
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !whoAreAllThosePeopleGivingStars2 --
+cliffordfajardo	39
+
diff --git a/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.out b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.out
new file mode 100644
index 00000000000..5c7968ad126
--- /dev/null
+++ b/regression-test/data/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.out
@@ -0,0 +1,41 @@
+-- This file is automatically generated. You should know what you did if you want to edit this
+-- !whoAreAllThosePeopleGivingStars3 --
+htmlpreview/htmlpreview.github.com	2
+KuiKui/Octosplit	1
+Nuclides/github-highlight-selected	1
+RReverser/github-editorconfig	1
+Yatser/prettypullrequests	1
+adamburmister/gitprint.com	1
+alexcpendleton/GithubForkConfirmation	1
+anasnakawa/chrome-github-avatars	1
+batmanimal/object-oriented-js	1
+benbernard/CommentTracker	1
+buunguyen/octotree	1
+buunguyen/topbar	1
+camsong/chrome-github-mate	1
+chancancode/blame_parent	1
+cisox/github-approve-deny	1
+dlo/github-issue-filter-chrome-extension	1
+evilbuck/pr-sanity	1
+jasonlong/isometric-contributions	1
+jcouyang/gira	1
+johan/github-improved	1
+lxe/require-navigator	1
+mebjas/github-report	1
+mebjas/movie-name-extractor	1
+mesuutt/github-annotator	1
+mikedougherty/chrome-commit-status	1
+msolomon/github-submodule-links	1
+petebacondarwin/github-pr-helper	1
+rudids/js_sequence_extension	1
+sindresorhus/github-hide-files	1
+sindresorhus/github-issues-all	1
+sindresorhus/github-tab-size	1
+sirkitree/github-issue-utils	1
+skidding/github-issue-template	1
+sqren/github-widescreen	1
+summerblue/github-toc	1
+thieman/github-selfies	1
+typpo/codenav	1
+vieux/github-lgtm	1
+
diff --git a/regression-test/data/variant_p0/load.out b/regression-test/data/variant_p0/load.out
index 43811b5ed6a..3f819fd7f79 100644
--- a/regression-test/data/variant_p0/load.out
+++ b/regression-test/data/variant_p0/load.out
@@ -334,7 +334,7 @@
 \N	\N	{"AA":[123456]}	\N
 \N	\N	{"AA":[123456789101112]}	\N
 123	191191	{"c":123,"A":191191,"a":123.0}	\N
-"123"	\N	{"c":123456,"a":"123"}	\N
+123	\N	{"c":123456,"a":"123"}	\N
 1.10111	1800	{"c":[12345],"A":1800,"a":1.10111}	\N
 1.1111	17211	{"c":111111,"A":17211,"a":1.1111}	\N
 
diff --git a/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs1.sql b/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs1.sql
new file mode 100644
index 00000000000..0f89de3394b
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs1.sql
@@ -0,0 +1,14 @@
+SELECT
+    cast(v:repo.name as string),
+    count() AS prs,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE (cast(v:type as string) = 'PullRequestEvent') AND (cast(v:payload.action as string) = 'opened') AND (cast(v:actor.login as string) IN
+(
+    SELECT cast(v:actor.login as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'PullRequestEvent') AND (cast(v:payload.action as string)= 'opened') AND (cast(v:repo.name as string) IN ('rspec/rspec-core', 'golden-warning/giraffedraft-server', 'apache/spark'))
+)) AND (lower(cast(v:repo.name as string)) NOT LIKE '%clickhouse%')
+GROUP BY cast(v:repo.name as string)
+ORDER BY authors DESC, prs DESC, cast(v:repo.name as string) DESC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs2.sql b/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs2.sql
new file mode 100644
index 00000000000..913953c271c
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/affinityByIssuesAndPRs2.sql
@@ -0,0 +1,14 @@
+SELECT
+    cast(v:repo.name as string),
+    count() AS prs,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') AND (cast(v:actor.login as string) IN
+(
+    SELECT cast(v:actor.login as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') AND (cast(v:repo.name as string) IN ('No-CQRT/GooGuns', 'ivolunteerph/ivolunteerph', 'Tribler/tribler'))
+)) AND (lower(cast(v:repo.name as string)) NOT LIKE '%clickhouse%')
+GROUP BY cast(v:repo.name as string)
+ORDER BY authors DESC, prs DESC, cast(v:repo.name as string) ASC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/authorsWithTheMostPushes.sql b/regression-test/suites/variant_p0/github_events_p0/authorsWithTheMostPushes.sql
new file mode 100644
index 00000000000..006a9ae9d3f
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/authorsWithTheMostPushes.sql
@@ -0,0 +1,9 @@
+SELECT
+      cast(v:actor.login as string),
+      count() AS c,
+      count(distinct cast(v:repo.name as string)) AS repos
+  FROM github_events
+  WHERE cast(v:type as string) = 'PushEvent'
+  GROUP BY cast(v:actor.login as string)
+  ORDER BY c DESC, 1, 3
+  LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/countingStar1.sql b/regression-test/suites/variant_p0/github_events_p0/countingStar1.sql
new file mode 100644
index 00000000000..db71c34c4e1
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/countingStar1.sql
@@ -0,0 +1 @@
+SELECT count() FROM github_events WHERE cast(v:type as string) = 'WatchEvent'
diff --git a/regression-test/suites/variant_p0/github_events_p0/countingStar2.sql b/regression-test/suites/variant_p0/github_events_p0/countingStar2.sql
new file mode 100644
index 00000000000..892efa7d726
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/countingStar2.sql
@@ -0,0 +1 @@
+SELECT cast(v:payload.action as string), count() FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY cast(v:payload.action as string) 
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/countingStar3.sql b/regression-test/suites/variant_p0/github_events_p0/countingStar3.sql
new file mode 100644
index 00000000000..9370e01530a
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/countingStar3.sql
@@ -0,0 +1 @@
+SELECT count() FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND cast(v:repo.name as string) IN ('apache/spark', 'GunZi200/Memory-Colour', 'isohuntto/openbay', 'wasabeef/awesome-android-ui') GROUP BY cast(v:payload.action as string)  
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.sql b/regression-test/suites/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.sql
new file mode 100644
index 00000000000..1e252ef4a7b
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/distributionOfRepositoriesByStarCount.sql
@@ -0,0 +1,14 @@
+SELECT
+    pow(10, floor(log10(c))) AS stars,
+    count(distinct k)
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as k,
+        count() AS c
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+    GROUP BY cast(v:repo.name as string)
+) t
+GROUP BY stars
+ORDER BY stars ASC
diff --git a/regression-test/suites/variant_p0/github_events_p0/githubRoulette.sql b/regression-test/suites/variant_p0/github_events_p0/githubRoulette.sql
new file mode 100644
index 00000000000..cda527b69f6
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/githubRoulette.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string) FROM github_events WHERE cast(v:type as string) = 'WatchEvent' ORDER BY cast(v:created_at as datetime),  cast(v:repo.name as string) LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.sql
new file mode 100644
index 00000000000..14b2ec2b788
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears1.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.sql
new file mode 100644
index 00000000000..14b2ec2b788
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears2.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.sql
new file mode 100644
index 00000000000..19c4bb03587
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears3.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars, cast(v:repo.name as string) DESC LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.sql
new file mode 100644
index 00000000000..14b2ec2b788
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears4.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.sql
new file mode 100644
index 00000000000..14b2ec2b788
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears5.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.sql
new file mode 100644
index 00000000000..14b2ec2b788
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears6.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND year(cast(v:created_at as datetime)) = '2015' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.sql
new file mode 100644
index 00000000000..9ba93d82ff5
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheListOfTopRepositoriesChangedOverTheYears7.sql
@@ -0,0 +1,28 @@
+SELECT
+    repo,
+    year,
+    cnt
+FROM
+(
+    SELECT
+        row_number() OVER (PARTITION BY year ORDER BY cnt DESC) AS r,
+        repo,
+        year,
+        cnt
+    FROM
+    (
+        SELECT
+        lower(cast(v:repo.name as string)) AS repo,
+        year(cast(v:created_at as datetime)) AS year,
+        count() AS cnt
+        FROM github_events
+        WHERE (cast(v:type as string) = 'WatchEvent') AND (year(cast(v:created_at as datetime)) >= 2015)
+        GROUP BY
+            repo,
+            year
+    ) t
+) t2
+WHERE r <= 10
+ORDER BY
+    year ASC,
+    cnt DESC, repo
diff --git a/regression-test/suites/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.sql b/regression-test/suites/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.sql
new file mode 100644
index 00000000000..97874a2d1e5
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/howHasTheTotalNumberOfStarsChangedOverTime.sql
@@ -0,0 +1,2 @@
+SELECT year(cast(v:created_at as datetime)) AS year, count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY year ORDER BY year
+
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments1.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments1.sql
new file mode 100644
index 00000000000..9f4e7db0a1b
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments1.sql
@@ -0,0 +1 @@
+SELECT count() FROM github_events WHERE cast(v:type as string) = 'IssueCommentEvent'
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments2.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments2.sql
new file mode 100644
index 00000000000..293b171c133
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments2.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() FROM github_events WHERE cast(v:type as string) = 'IssueCommentEvent' GROUP BY cast(v:repo.name as string) ORDER BY count() DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments3.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments3.sql
new file mode 100644
index 00000000000..cb1926ad209
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments3.sql
@@ -0,0 +1,17 @@
+SELECT
+    repo_name,
+    comments,
+    issues,
+    round(comments / issues, 2) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        count() AS comments,
+        count(distinct cast(v:payload.issue.`number` as int)) AS issues
+    FROM github_events
+    WHERE cast(v:type as string) = 'IssueCommentEvent'
+    GROUP BY cast(v:repo.name as string)
+) t
+ORDER BY comments DESC, 1, 3, 4
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments4.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments4.sql
new file mode 100644
index 00000000000..c9914fb203a
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments4.sql
@@ -0,0 +1,9 @@
+SELECT
+    cast(v:repo.name as string),
+    cast(v:payload.issue.`number` as int)  as number,
+    count() AS comments
+FROM github_events
+WHERE cast(v:type as string) = 'IssueCommentEvent' AND (cast(v:payload.action as string) = 'created')
+GROUP BY cast(v:repo.name as string), number 
+ORDER BY comments DESC, number ASC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments5.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments5.sql
new file mode 100644
index 00000000000..04a0f61fa02
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments5.sql
@@ -0,0 +1,9 @@
+SELECT
+    cast(v:repo.name as string),
+    cast(v:payload.issue.`number` as int)  as number,
+    count() AS comments
+FROM github_events
+WHERE cast(v:type as string) = 'IssueCommentEvent' AND (cast(v:payload.action as string) = 'created') AND (cast(v:payload.issue.`number` as int)  > 10)
+GROUP BY cast(v:repo.name as string), number
+ORDER BY comments DESC, cast(v:repo.name as string), number
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments6.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments6.sql
new file mode 100644
index 00000000000..155f6f695f8
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments6.sql
@@ -0,0 +1,11 @@
+SELECT
+    cast(v:repo.name as string),
+    cast(v:payload.issue.`number` as int)  as number,
+    count() AS comments,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE cast(v:type as string) = 'IssueCommentEvent' AND (cast(v:payload.action as string) = 'created') AND (cast(v:payload.issue.`number` as int) > 10)
+GROUP BY cast(v:repo.name as string), number
+HAVING authors >= 4
+ORDER BY comments DESC, cast(v:repo.name as string)
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments7.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments7.sql
new file mode 100644
index 00000000000..07b91250aa3
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments7.sql
@@ -0,0 +1,9 @@
+SELECT
+    cast(v:repo.name as string),
+    count() AS comments,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE cast(v:type as string) = 'CommitCommentEvent'
+GROUP BY cast(v:repo.name as string)
+ORDER BY count() DESC, 1, 3
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments8.sql b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments8.sql
new file mode 100644
index 00000000000..7a3696f8039
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/issuesWithTheMostComments8.sql
@@ -0,0 +1,13 @@
+-- SELECT
+--     concat('https://github.com/', cast(v:repo.name as string), '/commit/', cast(v:payload.commit_id as string)) URL,
+--     cast(v:payload.commit_id as string) AS commit_id,
+--     count() AS comments,
+--     count(distinct cast(v:actor.login as string)) AS authors
+-- FROM github_events
+-- WHERE (cast(v:type as string) = 'CommitCommentEvent') AND commit_id != ""
+-- GROUP BY
+--     cast(v:repo.name as string),
+--     commit_id 
+-- HAVING authors >= 10
+-- ORDER BY count() DESC, URL, authors
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/load.groovy b/regression-test/suites/variant_p0/github_events_p0/load.groovy
new file mode 100644
index 00000000000..c7345510ca6
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/load.groovy
@@ -0,0 +1,73 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("regression_test_variant_github_events_p0", "variant_type"){
+    def load_json_data = {table_name, file_name ->
+        // load the json data
+        streamLoad {
+            table "${table_name}"
+
+            // set http request header params
+            set 'read_json_by_line', 'true' 
+            set 'format', 'json' 
+            set 'max_filter_ratio', '0.1'
+            file file_name // import json file
+            time 10000 // limit inflight 10s
+
+            // if declared a check callback, the default check condition will ignore.
+            // So you must check all condition
+
+            check { result, exception, startTime, endTime ->
+                if (exception != null) {
+                        throw exception
+                }
+                logger.info("Stream load ${file_name} result: ${result}".toString())
+                def json = parseJson(result)
+                assertEquals("success", json.Status.toLowerCase())
+                // assertEquals(json.NumberTotalRows, json.NumberLoadedRows + json.NumberUnselectedRows)
+                assertTrue(json.NumberLoadedRows > 0 && json.LoadBytes > 0)
+            }
+        }
+    }
+
+    def table_name = "github_events"
+    sql """DROP TABLE IF EXISTS ${table_name}"""
+    table_name = "github_events"
+    sql """
+        CREATE TABLE IF NOT EXISTS ${table_name} (
+            k bigint,
+            v variant
+            -- INDEX idx_var(v) USING INVERTED PROPERTIES("parser" = "english") COMMENT ''
+        )
+        DUPLICATE KEY(`k`)
+        DISTRIBUTED BY HASH(k) BUCKETS 4 
+        properties("replication_num" = "1", "disable_auto_compaction" = "false");
+    """
+    // 2015
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2015-01-01-0.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2015-01-01-1.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2015-01-01-2.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2015-01-01-3.json'}""")
+    // 2022
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-16.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-10.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-22.json'}""")
+    load_json_data.call(table_name, """${getS3Url() + '/regression/gharchive.m/2022-11-07-23.json'}""")
+    // TODO fix compaction issue, this case could be stable
+    qt_sql """select v:payload.pull_request.additions  from github_events where cast(v:repo.name as string) = 'xpressengine/xe-core';"""
+    // TODO add test case that some certain columns are materialized in some file while others are not materilized(sparse)
+}
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/mostForkedRepositories.sql b/regression-test/suites/variant_p0/github_events_p0/mostForkedRepositories.sql
new file mode 100644
index 00000000000..85cf5ef0de9
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/mostForkedRepositories.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS forks FROM github_events WHERE cast(v:type as string) = 'ForkEvent' GROUP BY cast(v:repo.name as string) ORDER BY forks DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/mostPopularCommentsOnGithub.sql b/regression-test/suites/variant_p0/github_events_p0/mostPopularCommentsOnGithub.sql
new file mode 100644
index 00000000000..ff617de4a92
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/mostPopularCommentsOnGithub.sql
@@ -0,0 +1 @@
+SELECT cast(v:payload.comment.body as string), count() FROM github_events WHERE cast(v:payload.comment.body as string) != "" AND length(cast(v:payload.comment.body as string)) < 100 GROUP BY cast(v:payload.comment.body as string)  ORDER BY count(), 1 DESC LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.sql b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.sql
new file mode 100644
index 00000000000..b070f0714a6
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfRepositories.sql
@@ -0,0 +1,14 @@
+SELECT
+    lower(split_part(repo_name, '/', 1)) AS org,
+    count(distinct repo_name) AS repos
+FROM
+(
+    SELECT cast(v:repo.name as string) as repo_name
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+    GROUP BY cast(v:repo.name as string)
+    HAVING count() >= 10
+) t
+GROUP BY org
+ORDER BY repos DESC, org ASC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfStars.sql b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfStars.sql
new file mode 100644
index 00000000000..e842751ba11
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheNumberOfStars.sql
@@ -0,0 +1,8 @@
+SELECT
+    lower(split_part(cast(v:repo.name as string), '/', 1)) AS org,
+    count() AS stars
+FROM github_events
+WHERE cast(v:type as string) = 'WatchEvent'
+GROUP BY org
+ORDER BY stars DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/organizationsByTheSizeOfCommunity.sql b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheSizeOfCommunity.sql
new file mode 100644
index 00000000000..8b3ae0baae4
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/organizationsByTheSizeOfCommunity.sql
@@ -0,0 +1,23 @@
+-- SELECT
+--     lower(split_part(cast(v:repo.name as string), '/', 1)) AS org,
+--     count(distinct cast(v:actor.login as string)) AS authors,
+--     count(distinct pr_author) AS pr_authors,
+--     count(distinct issue_author) AS issue_authors,
+--     count(distinct comment_author) AS comment_authors,
+--     count(distinct review_author) AS review_authors,
+--     count(distinct push_author) AS push_authors
+-- FROM
+-- (
+-- SELECT
+--     cast(v:repo.name as string),
+--     cast(v:actor.login as string),
+--     CASE WHEN cast(v:type as string) = 'PullRequestEvent' THEN cast(v:actor.login as string) ELSE NULL END pr_author,
+--     CASE WHEN cast(v:type as string) = 'IssuesEvent' THEN cast(v:actor.login as string) ELSE NULL END issue_author,
+--     CASE WHEN cast(v:type as string) = 'IssueCommentEvent' THEN cast(v:actor.login as string) ELSE NULL END comment_author,
+--     CASE WHEN cast(v:type as string) = 'PullRequestReviewCommentEvent' THEN cast(v:actor.login as string) ELSE NULL END review_author,
+--     CASE WHEN cast(v:type as string) = 'PushEvent' THEN cast(v:actor.login as string) ELSE NULL END push_author
+-- FROM github_events
+-- WHERE cast(v:type as string) IN ('PullRequestEvent', 'IssuesEvent', 'IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent')
+-- ) t
+-- GROUP BY org
+-- ORDER BY authors DESC
diff --git a/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.sql b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.sql
new file mode 100644
index 00000000000..b62668b9fa3
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks1.sql
@@ -0,0 +1,17 @@
+SELECT
+    repo_name,
+    sum(fork) AS forks,
+    sum(star) AS stars,
+    round(sum(star) / sum(fork), 3) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'ForkEvent' THEN 1 ELSE 0 END AS fork,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events
+    WHERE cast(v:type as string) IN ('ForkEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+ORDER BY forks DESC, 1, 3, 4
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.sql b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.sql
new file mode 100644
index 00000000000..fe286c489cf
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks2.sql
@@ -0,0 +1,18 @@
+SELECT
+    repo_name,
+    sum(fork) AS forks,
+    sum(star) AS stars,
+    round(sum(star) / sum(fork), 3) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'ForkEvent' THEN 1 ELSE 0 END AS fork,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events
+    WHERE cast(v:type as string) IN ('ForkEvent', 'WatchEvent')
+) t
+GROUP BY  repo_name 
+HAVING (stars > 20) AND (forks >= 10)
+ORDER BY ratio DESC, repo_name 
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.sql b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.sql
new file mode 100644
index 00000000000..c8502f59f4c
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks3.sql
@@ -0,0 +1,18 @@
+SELECT
+    repo_name,
+    sum(fork) AS forks,
+    sum(star) AS stars,
+    round(sum(fork) / sum(star), 2) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'ForkEvent' THEN 1 ELSE 0 END AS fork,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events
+    WHERE cast(v:type as string) IN ('ForkEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+HAVING (stars > 4) AND (forks > 4)
+ORDER BY ratio DESC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.sql b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.sql
new file mode 100644
index 00000000000..f1c405efcdd
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks4.sql
@@ -0,0 +1,13 @@
+SELECT
+    sum(fork) AS forks,
+    sum(star) AS stars,
+    round(sum(star) / sum(fork), 2) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string),
+        CASE WHEN cast(v:type as string) = 'ForkEvent' THEN 1 ELSE 0 END AS fork,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events
+    WHERE cast(v:type as string) IN ('ForkEvent', 'WatchEvent')
+) t
diff --git a/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.sql b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.sql
new file mode 100644
index 00000000000..22606e7eefd
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/proportionsBetweenStarsAndForks5.sql
@@ -0,0 +1,21 @@
+SELECT
+    sum(forks) AS forks,
+    sum(stars) AS stars,
+    round(sum(stars) / sum(forks), 2) AS ratio
+FROM
+(
+    SELECT
+        sum(fork) AS forks,
+        sum(star) AS stars
+    FROM
+    (
+        SELECT
+            cast(v:repo.name as string) as repo_name,
+            CASE WHEN cast(v:type as string) = 'ForkEvent' THEN 1 ELSE 0 END AS fork,
+            CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+        FROM github_events
+        WHERE cast(v:type as string) IN ('ForkEvent', 'WatchEvent')
+    ) t
+    GROUP BY repo_name
+    HAVING stars > 10
+) t2
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.sql
new file mode 100644
index 00000000000..f27a32bbff7
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesByAmountOfModifiedCode.sql
@@ -0,0 +1,12 @@
+SELECT
+    cast(v:repo.name as string) as repo_name,
+    count() AS prs,
+    count(distinct cast(v:actor.login as string)) AS authors,
+    sum(cast(v:payload.pull_request.additions as int)) AS adds,
+    sum(cast(v:payload.pull_request.deletions as int)) AS dels
+FROM github_events
+WHERE (cast(v:type as string) = 'PullRequestEvent') AND (cast(v:payload.action as string) = 'opened') AND (cast(v:payload.pull_request.additions as int) < 10000) AND (cast(v:payload.pull_request.deletions as int) < 10000)
+GROUP BY repo_name
+HAVING (adds / dels) < 10
+ORDER BY adds + dels DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.sql
new file mode 100644
index 00000000000..7eb47a65948
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesByTheNumberOfPushes.sql
@@ -0,0 +1,17 @@
+SELECT
+    cast(v:repo.name as string),
+    count() AS pushes,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE (cast(v:type as string) = 'PushEvent') AND (cast(v:repo.name as string) IN
+(
+    SELECT cast(v:repo.name as string)
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+    GROUP BY cast(v:repo.name as string)
+    ORDER BY count() DESC
+    LIMIT 10000
+))
+GROUP BY cast(v:repo.name as string)
+ORDER BY count() DESC, cast(v:repo.name as string)
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.sql
new file mode 100644
index 00000000000..af1faa72586
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments1.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() FROM github_events WHERE lower(cast(v:payload.comment.body as string)) LIKE '%apache%' GROUP BY cast(v:repo.name as string) ORDER BY count() DESC, cast(v:repo.name as string) ASC LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.sql
new file mode 100644
index 00000000000..af974bcf669
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithClickhouse_related_comments2.sql
@@ -0,0 +1,17 @@
+SELECT
+    repo_name,
+    sum(num_star) AS num_stars,
+    sum(num_comment) AS num_comments
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS num_star,
+        CASE WHEN lower(cast(v:payload.comment.body as string)) LIKE '%apache%' THEN 1 ELSE 0 END AS num_comment
+    FROM github_events
+    WHERE (lower(cast(v:payload.comment.body as string)) LIKE '%apache%') OR (cast(v:type as string) = 'WatchEvent')
+) t
+GROUP BY repo_name 
+HAVING num_comments > 0
+ORDER BY num_stars DESC,num_comments DESC, repo_name ASC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.sql
new file mode 100644
index 00000000000..7c3aa1931ad
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments1.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() FROM github_events WHERE lower(cast(v:payload.comment.body as string)) LIKE '%spark%' GROUP BY cast(v:repo.name as string) ORDER BY count() DESC, cast(v:repo.name as string) ASC LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.sql
new file mode 100644
index 00000000000..76da89584b4
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithDoris_related_comments2.sql
@@ -0,0 +1,17 @@
+SELECT
+    repo_name,
+    sum(num_star) AS num_stars,
+    sum(num_comment) AS num_comments
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS num_star,
+        CASE WHEN lower(cast(v:payload.comment.body as string)) LIKE '%spark%' THEN 1 ELSE 0 END AS num_comment
+    FROM github_events
+    WHERE (lower(cast(v:payload.comment.body as string)) LIKE '%spark%') OR (cast(v:type as string) = 'WatchEvent')
+) t
+GROUP BY repo_name
+HAVING num_comments > 0
+ORDER BY num_stars DESC,num_comments DESC,repo_name ASC
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.sql
new file mode 100644
index 00000000000..e8ba7153a76
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheHighestGrowthYoY.sql
@@ -0,0 +1,20 @@
+SELECT
+    repo_name,
+    sum(created_at_2022) AS stars2022,
+    sum(created_at_2015) AS stars2015,
+    round(sum(created_at_2022) / sum(created_at_2015), 3) AS yoy,
+    min(created_at) AS first_seen
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE year(cast(v:created_at as datetime)) WHEN 2022 THEN 1 ELSE 0 END AS created_at_2022,
+        CASE year(cast(v:created_at as datetime)) WHEN 2015 THEN 1 ELSE 0 END AS created_at_2015,
+        cast(v:created_at as datetime) as created_at
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+) t
+GROUP BY  repo_name 
+HAVING (min(created_at) <= '2023-01-01 00:00:00') AND (stars2022 >= 1) and (stars2015 >= 1)
+ORDER BY yoy DESC, repo_name 
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.sql
new file mode 100644
index 00000000000..c308adf4239
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues1.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS c, count(distinct cast(v:actor.login as string)) AS u FROM github_events WHERE cast(v:type as string) = 'IssuesEvent' AND cast(v:payload.action as string) = 'opened' GROUP BY cast(v:repo.name as string) ORDER BY c DESC, cast(v:repo.name as string) LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.sql
new file mode 100644
index 00000000000..fb977cb8176
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues2.sql
@@ -0,0 +1,18 @@
+SELECT
+    repo_name,
+    sum(issue_created) AS c,
+    count(distinct actor_login) AS u,
+    sum(star) AS stars
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN 1 ELSE 0 END AS issue_created,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN cast(v:actor.login as string) ELSE NULL END AS actor_login 
+    FROM github_events
+    WHERE cast(v:type as string) IN ('IssuesEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+ORDER BY c DESC, repo_name
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.sql
new file mode 100644
index 00000000000..370cd1ba45f
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues3.sql
@@ -0,0 +1,19 @@
+SELECT
+    repo_name,
+    sum(issue_created) AS c,
+    count(distinct actor_login) AS u,
+    sum(star) AS stars
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN 1 ELSE 0 END AS issue_created,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN cast(v:actor.login as string) ELSE NULL END AS actor_login 
+    FROM github_events
+    WHERE cast(v:type as string) IN ('IssuesEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+HAVING stars >= 10
+ORDER BY c, u, stars DESC, repo_name
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.sql
new file mode 100644
index 00000000000..88d7dca5c33
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfIssues4.sql
@@ -0,0 +1,18 @@
+SELECT
+    repo_name,
+    sum(issue_created) AS c,
+    count(distinct actor_login) AS u,
+    sum(star) AS stars
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN 1 ELSE 0 END AS issue_created,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star,
+        CASE WHEN (cast(v:type as string) = 'IssuesEvent') AND (cast(v:payload.action as string) = 'opened') THEN cast(v:actor.login as string) ELSE NULL END AS actor_login 
+    FROM github_events
+    WHERE cast(v:type as string) IN ('IssuesEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+ORDER BY u, c, stars DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.sql
new file mode 100644
index 00000000000..dab00b81300
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests1.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string) as repo_name, count(), count(distinct cast(v:actor.login as string)) FROM github_events WHERE cast(v:type as string) = 'PullRequestEvent' AND cast(v:payload.action as string) = 'opened' GROUP BY cast(v:repo.name as string) ORDER BY 2,1,3 DESC LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.sql
new file mode 100644
index 00000000000..741607d4dfe
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumAmountOfPullRequests2.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count(), count(distinct cast(v:actor.login as string)) AS u FROM github_events WHERE cast(v:type as string) = 'PullRequestEvent' AND cast(v:payload.action as string) = 'opened' GROUP BY cast(v:repo.name as string) ORDER BY u DESC, 2 DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.sql
new file mode 100644
index 00000000000..404b2cf7652
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMaximumNumberOfAcceptedInvitations.sql
@@ -0,0 +1,17 @@
+SELECT
+    repo_name,
+    sum(invitation) AS invitations,
+    sum(star) AS stars
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE WHEN cast(v:type as string) = 'MemberEvent' THEN 1 ELSE 0 END AS invitation,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events
+    WHERE cast(v:type as string) IN ('MemberEvent', 'WatchEvent')
+) t
+GROUP BY repo_name
+HAVING stars >= 2
+ORDER BY invitations DESC, stars DESC, repo_name
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.sql
new file mode 100644
index 00000000000..d94bcb149b5
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess1.sql
@@ -0,0 +1,13 @@
+SELECT
+    repo_name,
+    count(distinct actor_login) AS u,
+    sum(star) AS stars
+FROM
+(
+    SELECT
+        lower(cast(v:repo.name as string)) as repo_name,
+        CASE WHEN cast(v:type as string) = 'PushEvent' THEN cast(v:actor.login as string) ELSE NULL END AS actor_login,
+        CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+    FROM github_events WHERE cast(v:type as string) IN ('PushEvent', 'WatchEvent') AND cast(v:repo.name as string) != '/'
+) t
+GROUP BY repo_name ORDER BY u, stars, repo_name DESC LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess2.sql
new file mode 100644
index 00000000000..88a92a06b6b
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess2.sql
@@ -0,0 +1,13 @@
+-- SELECT
+--     cast(v:repo.name as string),
+--     count(distinct cast(v:actor.login as string)) AS u,
+--     sum(star) AS stars
+-- FROM
+-- (
+--     SELECT
+--         cast(v:repo.name as string),
+--         CASE WHEN cast(v:type as string) = 'PushEvent' AND (ref LIKE '%/master' OR ref LIKE '%/main') THEN cast(v:actor.login as string) ELSE NULL END AS cast(v:actor.login as string),
+--         CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+--     FROM github_events WHERE cast(v:type as string) IN ('PushEvent', 'WatchEvent') AND cast(v:repo.name as string) != '/'
+-- ) t
+-- GROUP BY cast(v:repo.name as string) ORDER BY u DESC LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess3.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess3.sql
new file mode 100644
index 00000000000..28498c7a3ed
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostPeopleWhoHavePushAccess3.sql
@@ -0,0 +1,16 @@
+-- SELECT
+--     cast(v:repo.name as string),
+--     count(distinct cast(v:actor.login as string)) AS u,
+--     sum(star) AS stars
+-- FROM
+-- (
+--     SELECT
+--         cast(v:repo.name as string),
+--         CASE WHEN cast(v:type as string) = 'PushEvent' AND (ref LIKE '%/master' OR ref LIKE '%/main') THEN cast(v:actor.login as string) ELSE NULL END AS cast(v:actor.login as string),
+--         CASE WHEN cast(v:type as string) = 'WatchEvent' THEN 1 ELSE 0 END AS star
+--     FROM github_events WHERE cast(v:type as string) IN ('PushEvent', 'WatchEvent') AND cast(v:repo.name as string) != '/'
+-- ) t
+-- GROUP BY cast(v:repo.name as string)
+-- HAVING stars >= 100
+-- ORDER BY u DESC
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.sql
new file mode 100644
index 00000000000..c7b81b2408d
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay1.sql
@@ -0,0 +1,25 @@
+SELECT
+    repo_name,
+    day,
+    stars
+FROM
+(
+    SELECT
+        row_number() OVER (PARTITION BY repo_name  ORDER BY stars DESC) AS rank,
+        repo_name,
+        day,
+        stars
+    FROM
+    (
+        SELECT
+            cast(v:repo.name as string) as repo_name,
+            to_date(cast(v:created_at as datetime)) AS day,
+            count() AS stars
+        FROM github_events
+        WHERE cast(v:type as string) = 'WatchEvent'
+        GROUP BY cast(v:repo.name as string), day
+    ) t1
+) t2
+WHERE rank = 1
+ORDER BY stars DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay2.sql
new file mode 100644
index 00000000000..9f07d2270d1
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay2.sql
@@ -0,0 +1,25 @@
+-- SELECT
+--     cast(v:repo.name as string),
+--     day,
+--     stars
+-- FROM
+-- (
+--     SELECT
+--         row_number() OVER (PARTITION BY cast(v:repo.name as string) ORDER BY stars DESC) AS rank,
+--         cast(v:repo.name as string),
+--         day,
+--         stars
+--     FROM
+--     (
+--         SELECT
+--             cast(v:repo.name as string),
+--             to_date(cast(v:created_at as datetime)) AS day,
+--             count() AS stars
+--         FROM github_events
+--         WHERE cast(v:type as string) = 'WatchEvent'
+--         GROUP BY cast(v:repo.name as string), day
+--     ) t1
+-- ) t2
+-- WHERE rank = 1
+-- ORDER BY stars DESC
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay3.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay3.sql
new file mode 100644
index 00000000000..c0ac82e9151
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostStarsOverOneDay3.sql
@@ -0,0 +1 @@
+-- SELECT cast(v:repo.name as string), cast(v:created_at as datetime), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY cast(v:repo.name as string), cast(v:created_at as datetime) ORDER BY count() DESC LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.sql
new file mode 100644
index 00000000000..5c7d2d7c7b0
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheMostSteadyGrowthOverTime.sql
@@ -0,0 +1,20 @@
+SELECT
+    repo_name,
+    max(stars) AS daily_stars,
+    sum(stars) AS total_stars,
+    sum(stars) / max(stars) AS rate
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        to_date(cast(v:created_at as datetime)) AS day,
+        count() AS stars
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+    GROUP BY
+        repo_name,
+        day
+) t
+GROUP BY repo_name
+ORDER BY rate DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.sql b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.sql
new file mode 100644
index 00000000000..2265f4b5e4f
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoriesWithTheWorstStagnation_order.sql
@@ -0,0 +1,20 @@
+SELECT
+    repo_name,
+    sum(created_at_2022) AS stars2022,
+    sum(created_at_2015) AS stars2015,
+    round(sum(created_at_2022) / sum(created_at_2015), 3) AS yoy,
+    min(created_at) AS first_seen
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        CASE year(cast(v:created_at as datetime)) WHEN 2022 THEN 1 ELSE 0 END AS created_at_2022,
+        CASE year(cast(v:created_at as datetime)) WHEN 2015 THEN 1 ELSE 0 END AS created_at_2015,
+        cast(v:created_at as datetime) as created_at
+    FROM github_events
+    WHERE cast(v:type as string) = 'WatchEvent'
+) t
+GROUP BY repo_name
+HAVING (min(created_at) <= '2019-01-01 00:00:00') AND (max(created_at) >= '2020-06-01 00:00:00') AND (stars2015 >= 2)
+ORDER BY yoy, repo_name
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList1.sql b/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList1.sql
new file mode 100644
index 00000000000..99b9f28a2bd
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList1.sql
@@ -0,0 +1,13 @@
+SELECT
+  cast(v:repo.name as string) as repo_name,
+  count() AS stars
+FROM github_events
+WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:actor.login as string) IN
+(
+    SELECT cast(v:actor.login as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:repo.name as string) IN ('apache/spark', 'prakhar1989/awesome-courses'))
+)) AND (cast(v:repo.name as string) NOT IN ('ClickHouse/ClickHouse', 'yandex/ClickHouse'))
+GROUP BY repo_name
+ORDER BY stars DESC, repo_name 
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList2.sql b/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList2.sql
new file mode 100644
index 00000000000..4c7f36b518e
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/repositoryAffinityList2.sql
@@ -0,0 +1,23 @@
+SELECT
+  repo_name,
+  total_stars,
+  round(spark_stars / total_stars, 2) AS ratio
+FROM
+(
+    SELECT
+        cast(v:repo.name as string) as repo_name,
+        count(distinct cast(v:actor.login as string)) AS total_stars
+    FROM github_events
+    WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:repo.name as string) NOT IN ('apache/spark'))
+    GROUP BY repo_name
+    HAVING total_stars >= 10
+) t1
+JOIN
+(
+    SELECT
+        count(distinct cast(v:actor.login as string)) AS spark_stars
+    FROM github_events
+    WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:repo.name as string) IN ('apache/spark'))
+) t2
+ORDER BY ratio DESC, repo_name
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.sql b/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.sql
new file mode 100644
index 00000000000..01dfd4f0e8d
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers1.sql
@@ -0,0 +1,13 @@
+SELECT
+    cast(v:repo.name as string),
+    count()
+FROM github_events
+WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:actor.login as string) IN
+(
+    SELECT cast(v:actor.login as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'PullRequestEvent') AND (cast(v:payload.action as string) = 'opened')
+))
+GROUP BY cast(v:repo.name as string)
+ORDER BY count() DESC, cast(v:repo.name as string)
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.sql b/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.sql
new file mode 100644
index 00000000000..500ae5b9a00
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/starsFromHeavyGithubUsers2.sql
@@ -0,0 +1,15 @@
+SELECT
+    cast(v:repo.name as string),
+    count()
+FROM github_events
+WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:actor.login as string) IN
+(
+    SELECT cast(v:actor.login as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'PullRequestEvent') AND (cast(v:payload.action as string) = 'opened')
+    GROUP BY cast(v:actor.login as string)
+    HAVING count() >= 2
+))
+GROUP BY cast(v:repo.name as string)
+ORDER BY 1, count() DESC, 1
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames1.sql b/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames1.sql
new file mode 100644
index 00000000000..0603fec97bd
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames1.sql
@@ -0,0 +1 @@
+SELECT count(), cast(v:repo.name as string) FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY cast(v:repo.name as string) ORDER BY length(cast(v:repo.name as string)) DESC, cast(v:repo.name as string) LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames2.sql b/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames2.sql
new file mode 100644
index 00000000000..244f58e3fff
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theLongestRepositoryNames2.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND cast(v:repo.name as string) LIKE '%_/_%' GROUP BY cast(v:repo.name as string) ORDER BY length(cast(v:repo.name as string)) ASC, cast(v:repo.name as string) LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/theMostToughCodeReviews.sql b/regression-test/suites/variant_p0/github_events_p0/theMostToughCodeReviews.sql
new file mode 100644
index 00000000000..46a896f7955
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theMostToughCodeReviews.sql
@@ -0,0 +1,10 @@
+SELECT
+    concat('https://github.com/', cast(v:repo.name as string), '/pull/') AS URL,
+    count(distinct cast(v:actor.login as string)) AS authors
+FROM github_events
+WHERE (cast(v:type as string) = 'PullRequestReviewCommentEvent') AND (cast(v:payload.action as string) = 'created')
+GROUP BY
+    cast(v:repo.name as string),
+    cast(v:payload.issue.`number` as string) 
+ORDER BY authors DESC, URL ASC
+LIMIT 50
\ No newline at end of file
diff --git a/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.sql b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.sql
new file mode 100644
index 00000000000..1d29c3eeb4c
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfRepositoriesOnGithub.sql
@@ -0,0 +1 @@
+SELECT count(distinct cast(v:repo.name as string)) FROM github_events
diff --git a/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.sql b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.sql
new file mode 100644
index 00000000000..044aa0470bc
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub1.sql
@@ -0,0 +1 @@
+SELECT count(distinct cast(v:actor.login as string)) FROM github_events
diff --git a/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.sql b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.sql
new file mode 100644
index 00000000000..12776f1bb23
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub2.sql
@@ -0,0 +1 @@
+SELECT count(distinct cast(v:actor.login as string)) FROM github_events WHERE cast(v:type as string) = 'WatchEvent'
diff --git a/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.sql b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.sql
new file mode 100644
index 00000000000..84546032778
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub3.sql
@@ -0,0 +1 @@
+SELECT count(distinct cast(v:actor.login as string)) FROM github_events WHERE cast(v:type as string) = 'PushEvent'
diff --git a/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.sql b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.sql
new file mode 100644
index 00000000000..384b232f4fa
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/theTotalNumberOfUsersOnGithub4.sql
@@ -0,0 +1 @@
+SELECT count(distinct cast(v:actor.login as string)) FROM github_events WHERE cast(v:type as string) = 'PullRequestEvent' AND cast(v:payload.action as string) = 'opened'
diff --git a/regression-test/suites/variant_p0/github_events_p0/topLabels1.sql b/regression-test/suites/variant_p0/github_events_p0/topLabels1.sql
new file mode 100644
index 00000000000..152ec3ba3a8
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/topLabels1.sql
@@ -0,0 +1,9 @@
+-- SELECT
+--     label,
+--     count() AS c
+-- FROM github_events
+-- LATERAL VIEW explode_split(labels, ',') t AS label
+-- WHERE (cast(v:type as string) IN ('IssuesEvent', 'PullRequestEvent', 'IssueCommentEvent')) AND (action IN ('created', 'opened', 'labeled'))
+-- GROUP BY label
+-- ORDER BY c DESC
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/topLabels2.sql b/regression-test/suites/variant_p0/github_events_p0/topLabels2.sql
new file mode 100644
index 00000000000..bf404d4da57
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/topLabels2.sql
@@ -0,0 +1,9 @@
+-- SELECT
+--     label,
+--     count() AS c
+-- FROM github_events
+-- LATERAL VIEW explode_split(labels, ',') t AS label
+-- WHERE (cast(v:type as string) IN ('IssuesEvent', 'PullRequestEvent', 'IssueCommentEvent')) AND (action IN ('created', 'opened', 'labeled')) AND ((lower(label) LIKE '%bug%') OR (lower(label) LIKE '%feature%'))
+-- GROUP BY label
+-- ORDER BY c DESC
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/topLabels3.sql b/regression-test/suites/variant_p0/github_events_p0/topLabels3.sql
new file mode 100644
index 00000000000..49e60861667
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/topLabels3.sql
@@ -0,0 +1,14 @@
+-- SELECT
+--     sum(bug) AS bugs,
+--     sum(feature) AS feature,
+--     sum(bug) / sum(feature) AS ratio
+-- FROM
+-- (
+--     SELECT
+--         CASE WHEN lower(label) LIKE '%bug%' THEN 1 ELSE 0 END AS bug,
+--         CASE WHEN lower(label) LIKE '%feature%' THEN 1 ELSE 0 END AS feature
+--     FROM github_events
+--     LATERAL VIEW explode_split(labels, ',') t AS label
+--     WHERE (cast(v:type as string) IN ('IssuesEvent', 'PullRequestEvent', 'IssueCommentEvent')) AND (action IN ('created', 'opened', 'labeled')) AND ((lower(label) LIKE '%bug%') OR (lower(label) LIKE '%feature%'))
+-- ) t
+-- LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/topRepositoriesByStars.sql b/regression-test/suites/variant_p0/github_events_p0/topRepositoriesByStars.sql
new file mode 100644
index 00000000000..3dfd35d9d6e
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/topRepositoriesByStars.sql
@@ -0,0 +1 @@
+SELECT cast(v:repo.name as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY cast(v:repo.name as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.sql b/regression-test/suites/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.sql
new file mode 100644
index 00000000000..0c930308cf9
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/whatIsTheBestDayOfTheWeekToCatchAStar.sql
@@ -0,0 +1 @@
+SELECT dayofweek(cast(v:created_at as datetime)) AS day, count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY day ORDER BY day
diff --git a/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.sql b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.sql
new file mode 100644
index 00000000000..63a4dfd15f0
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars1.sql
@@ -0,0 +1 @@
+SELECT cast(v:actor.login as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' GROUP BY cast(v:actor.login as string) ORDER BY stars DESC, 1 LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.sql b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.sql
new file mode 100644
index 00000000000..0aa67b56d2a
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars2.sql
@@ -0,0 +1 @@
+SELECT cast(v:actor.login as string), count() AS stars FROM github_events WHERE cast(v:type as string) = 'WatchEvent' AND cast(v:actor.login as string) = 'cliffordfajardo' GROUP BY cast(v:actor.login as string) ORDER BY stars DESC LIMIT 50
diff --git a/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.sql b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.sql
new file mode 100644
index 00000000000..a1e9dab32e4
--- /dev/null
+++ b/regression-test/suites/variant_p0/github_events_p0/whoAreAllThosePeopleGivingStars3.sql
@@ -0,0 +1,13 @@
+SELECT
+    cast(v:repo.name as string),
+    count() AS stars
+FROM github_events
+WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:repo.name as string) IN
+(
+    SELECT cast(v:repo.name as string)
+    FROM github_events
+    WHERE (cast(v:type as string) = 'WatchEvent') AND (cast(v:actor.login as string) = 'cliffordfajardo')
+))
+GROUP BY cast(v:repo.name as string)
+ORDER BY stars DESC, cast(v:repo.name as string)
+LIMIT 50
diff --git a/regression-test/suites/variant_p0/load.groovy b/regression-test/suites/variant_p0/load.groovy
index 5501347a51a..8aa73dc5755 100644
--- a/regression-test/suites/variant_p0/load.groovy
+++ b/regression-test/suites/variant_p0/load.groovy
@@ -172,7 +172,7 @@ suite("regression_test_variant", "variant_type"){
         qt_sql_17 "select cast(v:a as json), v:A, v, v:AA from simple_select_variant where cast(v:A as bigint) is null  order by k;"
 
         sql """insert into simple_select_variant values (12, '{"oamama": 1.1}')"""
-        qt_sql_18 "select  v:a, v:A, v, v:oamama from simple_select_variant where cast(v:oamama as double) is null  order by k;"
+        qt_sql_18 "select  cast(v:a as text), v:A, v, v:oamama from simple_select_variant where cast(v:oamama as double) is null  order by k;"
         qt_sql_19 """select  v:a, v:A, v, v:oamama from simple_select_variant where cast(v:oamama as double) is not null  order by k"""
         qt_sql_20 """select v:A from simple_select_variant where cast(v:A as bigint) > 0 and cast(v:A as bigint) = 123456 limit 1;"""
 
@@ -241,7 +241,7 @@ suite("regression_test_variant", "variant_type"){
         sql """INSERT INTO ${table_name} VALUES (1, ''), (1, '{"k1": 1, "k2": "v1"}'), (1, '{}'), (1, '{"k1": 2}');"""
         sql "alter table ${table_name} add column v2 variant default null"
         sql """INSERT INTO ${table_name} VALUES (1, '{"kyyyy" : "123"}', '{"kxkxkxkx" : [123]}'), (1, '{"kxxxx" : 123}', '{"xxxxyyyy": 123}');"""
-        qt_sql_29_1 """select * from alter_variant where length(cast(v2 as string)) > 2 order by k, cast(v as string), cast(v2 as string);"""
+        qt_sql_29_1 """select * from alter_variant where length(cast(v2 as string)) > 2 and cast(v2 as string) != 'null' order by k, cast(v as string), cast(v2 as string);"""
         verify table_name
 
         // 11. boolean values 
@@ -264,7 +264,7 @@ suite("regression_test_variant", "variant_type"){
         // sql """insert into ${table_name} values (8, '{"a" : [123, 111........]}')"""
         sql """insert into ${table_name} values (9, '{"a" : [123, {"a" : 1}]}')"""
         sql """insert into ${table_name} values (10, '{"a" : [{"a" : 1}, 123]}')"""
-        qt_sql_29 "select v:a from ${table_name} order by k"
+        qt_sql_29 "select cast(v:a as string) from ${table_name} order by k"
         // b? 7.111  [123,{"xx":1}]  {"b":{"c":456,"e":7.111}}       456
         qt_sql_30 "select v:b.e, v:a, v:b, v:b.c from jsonb_values where cast(v:b.e as double) > 1;"
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org