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