From 0636c9c0f4a8aafd194f3c074f3a4fb8cffb1701 Mon Sep 17 00:00:00 2001 From: amirali Date: Sun, 13 Oct 2024 10:28:17 +0100 Subject: [PATCH 01/80] add sorted dict data structure --- runtime/agg_helper.h | 2 +- runtime/headers.h | 1 + runtime/smallvecdict.h | 4 ++ runtime/sorted_dict.h | 99 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 runtime/sorted_dict.h diff --git a/runtime/agg_helper.h b/runtime/agg_helper.h index dbff70e9..59160289 100644 --- a/runtime/agg_helper.h +++ b/runtime/agg_helper.h @@ -1,6 +1,6 @@ #pragma once -const auto MAX_STRING = std::string("zzzzzzzzzzzzzzzzzz"); +const auto STRING_MAX = std::string("zzzzzzzzzzzzzzzzzz"); template void min_inplace(T& a, const T& b) { a = std::min(a, b); } diff --git a/runtime/headers.h b/runtime/headers.h index a721a53b..e52bc2af 100644 --- a/runtime/headers.h +++ b/runtime/headers.h @@ -18,5 +18,6 @@ #include "agg_helper.h" #include "bench_helper.h" #include "csv_helper.h" +#include "sorted_dict.h" #include "smallvecdict.h" #include "smallvecdicts.h" diff --git a/runtime/smallvecdict.h b/runtime/smallvecdict.h index 204ddad9..d5ae7c39 100644 --- a/runtime/smallvecdict.h +++ b/runtime/smallvecdict.h @@ -136,4 +136,8 @@ class smallvecdict { typename Container::iterator begin() { return svec_.begin(); } typename Container::iterator end() { return svec_.end(); } + + typename Container::const_iterator begin() const { return svec_.begin(); } + + typename Container::const_iterator end() const { return svec_.end(); } }; diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h new file mode 100644 index 00000000..e834cdc6 --- /dev/null +++ b/runtime/sorted_dict.h @@ -0,0 +1,99 @@ +#pragma once + +#include + +using namespace std; + +class Range { +private: + size_t ll_; + size_t rr_; + +public: + Range() : ll_(-1), rr_(-1) {} + + class Proxy { + Range &range_; + + public: + Proxy(Range &range) : range_(range) {} + + Proxy &operator+=(int) { + ++range_.rr_; + return *this; + } + }; + + inline Proxy operator[](size_t idx) { + if (ll_ == -1) { + ll_ = idx; + rr_ = idx; + } + return Proxy(*this); + } + + inline size_t left() const { + return ll_; + } + + inline size_t right() const { + return rr_; + } +}; + +template +class SortedDict { +private: + vector keys_; + vector vals_; + +public: + SortedDict() = default; + + SortedDict(size_t n) { + keys_.reserve(n); + vals_.reserve(n); + } + + inline size_t size() const { + return keys_.size(); + } + + inline VT &operator[](const KT &key) { + if (keys_.empty() || key != keys_.back()) { + keys_.push_back(key); + vals_.push_back(VT()); + } + return vals_.back(); + } + + inline vector::iterator find(const KT &key) { + auto it = lower_bound(keys_.begin(), keys_.end(), key); + if (it != keys_.end() && *it == key) + return vals_.begin() + (it - keys_.begin()); + return vals_.end(); + } + + inline vector::const_iterator find(const KT &key) const { + auto it = lower_bound(keys_.begin(), keys_.end(), key); + if (it != keys_.end() && *it == key) + return vals_.begin() + (it - keys_.begin()); + return vals_.end(); + } + + inline vector::iterator begin() { + return vals_.begin(); + } + + inline vector::iterator end() { + return vals_.end(); + } + + inline vector::const_iterator begin() const { + return vals_.begin(); + } + + inline vector::const_iterator end() const { + return vals_.end(); + } +}; \ No newline at end of file From 2085c9b0c36ef2f18cea36d315d38802a7846bd9 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 13 Oct 2024 11:01:52 +0100 Subject: [PATCH 02/80] Fixed clang typename warnings --- runtime/sorted_dict.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index e834cdc6..074a5790 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -67,33 +67,33 @@ class SortedDict { return vals_.back(); } - inline vector::iterator find(const KT &key) { + inline typename vector::iterator find(const KT &key) { auto it = lower_bound(keys_.begin(), keys_.end(), key); if (it != keys_.end() && *it == key) return vals_.begin() + (it - keys_.begin()); return vals_.end(); } - inline vector::const_iterator find(const KT &key) const { + inline typename vector::const_iterator find(const KT &key) const { auto it = lower_bound(keys_.begin(), keys_.end(), key); if (it != keys_.end() && *it == key) return vals_.begin() + (it - keys_.begin()); return vals_.end(); } - inline vector::iterator begin() { + inline typename vector::iterator begin() { return vals_.begin(); } - inline vector::iterator end() { + inline typename vector::iterator end() { return vals_.end(); } - inline vector::const_iterator begin() const { + inline typename vector::const_iterator begin() const { return vals_.begin(); } - inline vector::const_iterator end() const { + inline typename vector::const_iterator end() const { return vals_.end(); } }; \ No newline at end of file From cb35dde5564c3ed4f1accf25cba98d48341fc3ba Mon Sep 17 00:00:00 2001 From: amirali Date: Mon, 14 Oct 2024 18:12:57 +0100 Subject: [PATCH 03/80] use vector of pairs rather than pair of vectors in SortedDict --- runtime/sorted_dict.h | 77 ++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 074a5790..11b891e1 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -44,56 +44,57 @@ class Range { template class SortedDict { private: - vector keys_; - vector vals_; + vector> data_; public: SortedDict() = default; SortedDict(size_t n) { - keys_.reserve(n); - vals_.reserve(n); + data_.reserve(n); } inline size_t size() const { - return keys_.size(); + return data_.size(); } inline VT &operator[](const KT &key) { - if (keys_.empty() || key != keys_.back()) { - keys_.push_back(key); - vals_.push_back(VT()); + if (data_.empty() || key != data_.back().first) { + data_.push_back({key, VT()}); } - return vals_.back(); + return data_.back().second; } - inline typename vector::iterator find(const KT &key) { - auto it = lower_bound(keys_.begin(), keys_.end(), key); - if (it != keys_.end() && *it == key) - return vals_.begin() + (it - keys_.begin()); - return vals_.end(); - } - - inline typename vector::const_iterator find(const KT &key) const { - auto it = lower_bound(keys_.begin(), keys_.end(), key); - if (it != keys_.end() && *it == key) - return vals_.begin() + (it - keys_.begin()); - return vals_.end(); - } - - inline typename vector::iterator begin() { - return vals_.begin(); - } - - inline typename vector::iterator end() { - return vals_.end(); - } - - inline typename vector::const_iterator begin() const { - return vals_.begin(); - } - - inline typename vector::const_iterator end() const { - return vals_.end(); - } + inline typename vector>::iterator find(const KT &key) { + auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { + return a.first < cmp_key; + }); + if (it != data_.end() && it->first == key) + return it; + return data_.end(); + } + + inline typename vector>::const_iterator find(const KT &key) const { + auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { + return a.first < cmp_key; + }); + if (it != data_.end() && it->first == key) + return it; + return data_.end(); + } + + inline typename vector>::iterator begin() { + return data_.begin(); + } + + inline typename vector>::iterator end() { + return data_.end(); + } + + inline typename vector>::const_iterator begin() const { + return data_.begin(); + } + + inline typename vector>::const_iterator end() const { + return data_.end(); + } }; \ No newline at end of file From bbd7d1ba1bb214fa25c495cff76f9a1fd1e9e994 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 14 Oct 2024 19:15:11 +0100 Subject: [PATCH 04/80] Clion suggestions --- runtime/sorted_dict.h | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 11b891e1..03384f50 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -5,7 +5,6 @@ using namespace std; class Range { -private: size_t ll_; size_t rr_; @@ -16,7 +15,7 @@ class Range { Range &range_; public: - Proxy(Range &range) : range_(range) {} + explicit Proxy(Range &range) : range_(range) {} Proxy &operator+=(int) { ++range_.rr_; @@ -24,7 +23,7 @@ class Range { } }; - inline Proxy operator[](size_t idx) { + Proxy operator[](size_t const idx) { if (ll_ == -1) { ll_ = idx; rr_ = idx; @@ -32,39 +31,38 @@ class Range { return Proxy(*this); } - inline size_t left() const { + size_t left() const { return ll_; } - inline size_t right() const { + size_t right() const { return rr_; } }; template class SortedDict { -private: vector> data_; public: SortedDict() = default; - SortedDict(size_t n) { + explicit SortedDict(size_t n) { data_.reserve(n); } - inline size_t size() const { + size_t size() const { return data_.size(); } - inline VT &operator[](const KT &key) { + VT &operator[](const KT &key) { if (data_.empty() || key != data_.back().first) { - data_.push_back({key, VT()}); + data_.emplace_back(key, VT()); } return data_.back().second; } - inline typename vector>::iterator find(const KT &key) { + typename vector>::iterator find(const KT &key) { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -73,7 +71,7 @@ class SortedDict { return data_.end(); } - inline typename vector>::const_iterator find(const KT &key) const { + typename vector>::const_iterator find(const KT &key) const { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -82,19 +80,19 @@ class SortedDict { return data_.end(); } - inline typename vector>::iterator begin() { + typename vector>::iterator begin() { return data_.begin(); } - inline typename vector>::iterator end() { + typename vector>::iterator end() { return data_.end(); } - inline typename vector>::const_iterator begin() const { + typename vector>::const_iterator begin() const { return data_.begin(); } - inline typename vector>::const_iterator end() const { + typename vector>::const_iterator end() const { return data_.end(); } }; \ No newline at end of file From 7125d590702e81ebdc80413203a9c9bd24b061aa Mon Sep 17 00:00:00 2001 From: amirali Date: Mon, 14 Oct 2024 19:59:17 +0100 Subject: [PATCH 05/80] implement at as the logn insert in SortedDict --- runtime/sorted_dict.h | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 03384f50..245e49fa 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -23,7 +23,7 @@ class Range { } }; - Proxy operator[](size_t const idx) { + inline Proxy operator[](size_t const idx) { if (ll_ == -1) { ll_ = idx; rr_ = idx; @@ -31,11 +31,11 @@ class Range { return Proxy(*this); } - size_t left() const { + inline size_t left() const { return ll_; } - size_t right() const { + inline size_t right() const { return rr_; } }; @@ -51,18 +51,31 @@ class SortedDict { data_.reserve(n); } - size_t size() const { + inline size_t size() const { return data_.size(); } - VT &operator[](const KT &key) { + inline VT &operator[](const KT &key) { if (data_.empty() || key != data_.back().first) { data_.emplace_back(key, VT()); } return data_.back().second; } - typename vector>::iterator find(const KT &key) { + inline VT &at(const KT &key) { + auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { + return a.first < cmp_key; + }); + if (it == data_.end()) { + data_.emplace_back(key, VT()); + return data_.back().second; + } + if (it->first != key) + data_.emplace(it, key, VT()); + return it->second; + } + + inline typename vector>::iterator find(const KT &key) { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -71,7 +84,7 @@ class SortedDict { return data_.end(); } - typename vector>::const_iterator find(const KT &key) const { + inline typename vector>::const_iterator find(const KT &key) const { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -80,19 +93,19 @@ class SortedDict { return data_.end(); } - typename vector>::iterator begin() { + inline typename vector>::iterator begin() { return data_.begin(); } - typename vector>::iterator end() { + inline typename vector>::iterator end() { return data_.end(); } - typename vector>::const_iterator begin() const { + inline typename vector>::const_iterator begin() const { return data_.begin(); } - typename vector>::const_iterator end() const { + inline typename vector>::const_iterator end() const { return data_.end(); } }; \ No newline at end of file From 382ef0fb5bf1d1078fbedbbe5dcfe0117f4eaf3b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 23 Oct 2024 18:18:31 +0100 Subject: [PATCH 06/80] Renamed MAX_STRING -> STRING_MAX in codegen too --- src/main/scala/sdql/backend/CppCodegen.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index ebbde196..5deddde2 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -317,7 +317,7 @@ object CppCodegen { agg match { case SumAgg | MaxAgg => "\"\"" case ProdAgg => raise("undefined") - case MinAgg => s"MAX_STRING" + case MinAgg => s"STRING_MAX" } case StringType(Some(_)) => raise("initialising VarChars shouldn't be needed") case tpe => raise(s"unimplemented type: $tpe") From 061597579712583ae9e0e1453d48e796dcd8fe40 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:55:09 +0100 Subject: [PATCH 07/80] Fixed comment --- src/test/scala/sdql/backend/CppCodegenTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index cbccad39..c50515a3 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -132,7 +132,7 @@ sum( <- S) """) } - // checks we support columnar layout - though we use row layout in GF/FJ queries + // checks we support columnar layout - though we use row layout in JOB GF/FJ queries it should "codegen smallvecdicts" in { CodegenHelpers.compilesExp(sdql""" let a = { 0 -> 1, 1 -> 10, 2 -> 100 } From c4895c9c8f9ae202ba5534e08b20afb9b317c607 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:55:37 +0100 Subject: [PATCH 08/80] Integrated SortedDict in parser --- src/main/scala/sdql/backend/CppCodegen.scala | 3 +++ src/main/scala/sdql/frontend/Parser.scala | 3 ++- src/main/scala/sdql/ir/Exp.scala | 1 + src/main/scala/sdql/transformations/Rewriter.scala | 6 +++--- src/test/scala/sdql/frontend/ParserTest.scala | 4 ++++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 5deddde2..981fa8d6 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -333,6 +333,9 @@ object CppCodegen { case DictType(rt: RecordType, IntType, SmallVecDicts(size)) => val template = if (noTemplate) "" else s"<$size, ${recordParams(rt)}>" s"smallvecdicts$template" + case DictType(kt, vt, _: SortedDict) => + val template = if (noTemplate) "" else s"<${cppType(kt)}, ${cppType(vt)}>" + s"SortedDict$template" case DictType(IntType, vt, _: Vec) => val template = if (noTemplate) "" else s"<${cppType(vt)}>" s"std::vector$template" diff --git a/src/main/scala/sdql/frontend/Parser.scala b/src/main/scala/sdql/frontend/Parser.scala index 17d8231e..5a0124dd 100644 --- a/src/main/scala/sdql/frontend/Parser.scala +++ b/src/main/scala/sdql/frontend/Parser.scala @@ -155,10 +155,11 @@ object Parser { } private def dictNoHint[$: P] = P("{" ~ keyValue.rep(sep = ","./) ~ space ~ "}").map(DictNode(_)) private def hinted[$: P] = P("@" ~/ hint ~/ space) - private def hint[$: P] = phmap | smallvecdicts | smallvecdict | vec + private def hint[$: P] = phmap | smallvecdicts | smallvecdict | sorteddict | vec private def phmap[$: P] = P("phmap" ~ parens.?).map(PHmap.apply) private def smallvecdict[$: P] = P("smallvecdict" ~ sized).map(SmallVecDict.apply) private def smallvecdicts[$: P] = P("smallvecdicts" ~ sized).map(SmallVecDicts.apply) + private def sorteddict[$: P] = P("st" ~ parens.?).map(SortedDict.apply) private def vec[$: P] = P("vec" ~ sized.?).map(Vec.apply) private def sized[$: P] = P("(" ~/ integral.!.map(_.toInt) ~/ ")") diff --git a/src/main/scala/sdql/ir/Exp.scala b/src/main/scala/sdql/ir/Exp.scala index e15fe50c..789230dd 100644 --- a/src/main/scala/sdql/ir/Exp.scala +++ b/src/main/scala/sdql/ir/Exp.scala @@ -93,6 +93,7 @@ sealed trait DictHint case class PHmap(e: Option[Exp] = None) extends DictHint case class SmallVecDict(size: Int) extends DictHint case class SmallVecDicts(size: Int) extends DictHint +case class SortedDict(e: Option[Exp] = None) extends DictHint case class Vec(size: Option[Int] = None) extends DictHint /** diff --git a/src/main/scala/sdql/transformations/Rewriter.scala b/src/main/scala/sdql/transformations/Rewriter.scala index c87d6cd3..20318f48 100644 --- a/src/main/scala/sdql/transformations/Rewriter.scala +++ b/src/main/scala/sdql/transformations/Rewriter.scala @@ -167,9 +167,9 @@ private object LowerToLLQL extends Transformation { if (isUpdate(e)) Update(e, Aggregation.fromExpression(e), dest) else Modify(e, dest) private def isUpdate(e: Exp)(implicit ctx: TypesCtx) = sumHint(e) match { - case Some(_: PHmap) if cond(e) { case dict: DictNode => checkIsUnique(dict) } => false - case None | Some(_: PHmap | _: SmallVecDict | _: SmallVecDicts) => true - case Some(_: Vec) => false + case Some(_: PHmap) if cond(e) { case dict: DictNode => checkIsUnique(dict) } => false + case None | Some(_: PHmap | _: SortedDict | _: SmallVecDict | _: SmallVecDicts) => true + case Some(_: Vec) => false } private def sumHint(e: Exp)(implicit ctx: TypesCtx) = e match { diff --git a/src/test/scala/sdql/frontend/ParserTest.scala b/src/test/scala/sdql/frontend/ParserTest.scala index 25341f02..482a1f83 100644 --- a/src/test/scala/sdql/frontend/ParserTest.scala +++ b/src/test/scala/sdql/frontend/ParserTest.scala @@ -114,6 +114,10 @@ class ParserTest extends AnyFlatSpec with Matchers { sdql"@phmap {x -> y}" should be(DictNode(Seq(Sym("x") -> Sym("y")), PHmap())) sdql"@phmap(100) {0 -> 1}" should be(DictNode(Seq(Const(0) -> Const(1)), PHmap(Some(Const(100))))) sdql"@phmap(a) {x -> y}" should be(DictNode(Seq(Sym("x") -> Sym("y")), PHmap(Some(Sym("a"))))) + sdql"@st {0 -> 1}" should be(DictNode(Seq(Const(0) -> Const(1)), SortedDict())) + sdql"@st {x -> y}" should be(DictNode(Seq(Sym("x") -> Sym("y")), SortedDict())) + sdql"@st(100) {0 -> 1}" should be(DictNode(Seq(Const(0) -> Const(1)), SortedDict(Some(Const(100))))) + sdql"@st(a) {x -> y}" should be(DictNode(Seq(Sym("x") -> Sym("y")), SortedDict(Some(Sym("a"))))) sdql"@smallvecdict(4) {0 -> 1}" should be(DictNode(Seq(Const(0) -> Const(1)), SmallVecDict(4))) sdql"@smallvecdict(4) {x -> y}" should be(DictNode(Seq(Sym("x") -> Sym("y")), SmallVecDict(4))) sdql"@smallvecdicts(4) {< foo = 1 > -> 1}" should be( From 509b50f3f34afb71a793c4e48b6a668d225ba609 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:36:28 +0100 Subject: [PATCH 09/80] Integrated Range in parser --- src/main/scala/sdql/backend/CppCodegen.scala | 24 ++++++++++--------- src/main/scala/sdql/frontend/Parser.scala | 3 ++- src/main/scala/sdql/ir/Exp.scala | 1 + .../scala/sdql/transformations/Rewriter.scala | 6 ++--- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 981fa8d6..0f232c41 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -287,40 +287,41 @@ object CppCodegen { private def initialise(tpe: Type)(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean): String = tpe match { - case DictType(_, _, PHmap(Some(e))) => CppCodegen.run(e) - case DictType(_, _, PHmap(None) | _: SmallVecDict) => "{}" - case DictType(_, _, Vec(size)) => + case DictType(_, _, PHmap(Some(e))) => CppCodegen.run(e) + case DictType(_, _, SortedDict(Some(e))) => CppCodegen.run(e) + case DictType(_, _, PHmap(None) | SortedDict(None) | _: SmallVecDict) => "{}" + case DictType(_, _, Vec(size)) => size match { case None => "" case Some(size) => (size + 1).toString } - case DictType(_, _, _: SmallVecDicts) => "" - case RecordType(attrs) => attrs.map(_.tpe).map(initialise).mkString(", ") - case BoolType => + case DictType(_, _, _: SmallVecDicts) => "" + case RecordType(attrs) => attrs.map(_.tpe).map(initialise).mkString(", ") + case BoolType => agg match { case SumAgg | MaxAgg => "false" case ProdAgg | MinAgg => "true" } - case RealType => + case RealType => agg match { case SumAgg | MaxAgg => "0.0" case ProdAgg => "1.0" case MinAgg => s"std::numeric_limits<${cppType(RealType)}>::max()" } - case IntType | DateType => + case IntType | DateType => agg match { case SumAgg | MaxAgg => "0" case ProdAgg => "1" case MinAgg => s"std::numeric_limits<${cppType(IntType)}>::max()" } - case StringType(None) => + case StringType(None) => agg match { case SumAgg | MaxAgg => "\"\"" case ProdAgg => raise("undefined") case MinAgg => s"STRING_MAX" } - case StringType(Some(_)) => raise("initialising VarChars shouldn't be needed") - case tpe => raise(s"unimplemented type: $tpe") + case StringType(Some(_)) => raise("initialising VarChars shouldn't be needed") + case tpe => raise(s"unimplemented type: $tpe") } private def cppType(tpe: Type, noTemplate: Boolean = false): String = tpe match { @@ -342,6 +343,7 @@ object CppCodegen { case rt: RecordType => val template = if (noTemplate) "" else s"<${recordParams(rt)}>" s"std::tuple$template" + case DictType(_, _, Range) => "Range" case BoolType => "bool" case RealType => "double" case IntType | DateType => "int" diff --git a/src/main/scala/sdql/frontend/Parser.scala b/src/main/scala/sdql/frontend/Parser.scala index 5a0124dd..2b71c642 100644 --- a/src/main/scala/sdql/frontend/Parser.scala +++ b/src/main/scala/sdql/frontend/Parser.scala @@ -155,8 +155,9 @@ object Parser { } private def dictNoHint[$: P] = P("{" ~ keyValue.rep(sep = ","./) ~ space ~ "}").map(DictNode(_)) private def hinted[$: P] = P("@" ~/ hint ~/ space) - private def hint[$: P] = phmap | smallvecdicts | smallvecdict | sorteddict | vec + private def hint[$: P] = phmap | range_ | smallvecdicts | smallvecdict | sorteddict | vec private def phmap[$: P] = P("phmap" ~ parens.?).map(PHmap.apply) + private def range_[$: P] = P("range").map(_ => Range) private def smallvecdict[$: P] = P("smallvecdict" ~ sized).map(SmallVecDict.apply) private def smallvecdicts[$: P] = P("smallvecdicts" ~ sized).map(SmallVecDicts.apply) private def sorteddict[$: P] = P("st" ~ parens.?).map(SortedDict.apply) diff --git a/src/main/scala/sdql/ir/Exp.scala b/src/main/scala/sdql/ir/Exp.scala index 789230dd..6b832d90 100644 --- a/src/main/scala/sdql/ir/Exp.scala +++ b/src/main/scala/sdql/ir/Exp.scala @@ -91,6 +91,7 @@ case class DictNode(map: Seq[(Exp, Exp)], hint: DictHint = PHmap()) extends Exp } sealed trait DictHint case class PHmap(e: Option[Exp] = None) extends DictHint +case object Range extends DictHint case class SmallVecDict(size: Int) extends DictHint case class SmallVecDicts(size: Int) extends DictHint case class SortedDict(e: Option[Exp] = None) extends DictHint diff --git a/src/main/scala/sdql/transformations/Rewriter.scala b/src/main/scala/sdql/transformations/Rewriter.scala index 20318f48..5feacddc 100644 --- a/src/main/scala/sdql/transformations/Rewriter.scala +++ b/src/main/scala/sdql/transformations/Rewriter.scala @@ -167,9 +167,9 @@ private object LowerToLLQL extends Transformation { if (isUpdate(e)) Update(e, Aggregation.fromExpression(e), dest) else Modify(e, dest) private def isUpdate(e: Exp)(implicit ctx: TypesCtx) = sumHint(e) match { - case Some(_: PHmap) if cond(e) { case dict: DictNode => checkIsUnique(dict) } => false - case None | Some(_: PHmap | _: SortedDict | _: SmallVecDict | _: SmallVecDicts) => true - case Some(_: Vec) => false + case Some(_: PHmap) if cond(e) { case dict: DictNode => checkIsUnique(dict) } => false + case None | Some(_: PHmap | Range | _: SortedDict | _: SmallVecDict | _: SmallVecDicts) => true + case Some(_: Vec) => false } private def sumHint(e: Exp)(implicit ctx: TypesCtx) = e match { From b5ef787c217adf98c7ff4e3a39ee6fdde704cdad Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:43:36 +0100 Subject: [PATCH 10/80] SortedDict::contains --- runtime/sorted_dict.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 245e49fa..5dcb9d5b 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -108,4 +108,9 @@ class SortedDict { inline typename vector>::const_iterator end() const { return data_.end(); } + + // TODO convenience method - get rid of this + inline bool contains(const KT &key) { + return this->find(key) != this->end(); + } }; \ No newline at end of file From 4323d0b19605ea21a59a6c8b7fc627df9ecf2b3b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 17:34:40 +0100 Subject: [PATCH 11/80] Correct accessors for SortedDict/Range --- src/main/scala/sdql/backend/CppCodegen.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 0f232c41..3d1a0067 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -276,13 +276,13 @@ object CppCodegen { private def cppAccessors(exps: Iterable[Exp])(implicit typesCtx: TypesCtx, isTernary: Boolean) = exps.map(e => s"[${CppCodegen.run(e)}]").mkString("") private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { - case DictNode(Seq((k, v @ DictNode(_, _: PHmap | _: SmallVecDict | _: SmallVecDicts))), _) => + case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => val (lhs, rhs) = splitNested(v) (Seq(k) ++ lhs, rhs) - case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) - case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) - case DictNode(map, _) if map.length != 1 => raise(s"unsupported: $e") - case _ => (Seq(), e) + case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) + case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) + case DictNode(map, _) if map.length != 1 => raise(s"unsupported: $e") + case _ => (Seq(), e) } private def initialise(tpe: Type)(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean): String = From a5d76f86305b6040144b2d341588562749212ea2 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 17:35:22 +0100 Subject: [PATCH 12/80] Sorted indices external function --- runtime/csv_helper.h | 9 +++++++++ src/main/scala/sdql/analysis/TypeInference.scala | 7 +++++++ src/main/scala/sdql/backend/CppCodegen.scala | 1 + src/main/scala/sdql/ir/ExternalFunctions.scala | 1 + 4 files changed, 18 insertions(+) diff --git a/runtime/csv_helper.h b/runtime/csv_helper.h index 30929944..1e68fb58 100644 --- a/runtime/csv_helper.h +++ b/runtime/csv_helper.h @@ -51,3 +51,12 @@ inline std::string print_date(const int yyyymmdd) { ss << yyyy << "-" << mm_str << "-" << dd_str; return ss.str(); } + +template +std::vector sorted_indices(const std::vector &vec) +{ + vector v(vec.size()); + iota(v.begin(), v.end(), 0); + sort(v.begin(), v.end(), [&](const int i, const int j) { return vec[i] < vec[j]; }); + return v; +} diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 190bd3f5..0b5a9136 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -106,6 +106,13 @@ object TypeInference { } case External(StrIndexOf.SYMBOL | FirstIndex.SYMBOL | LastIndex.SYMBOL | Year.SYMBOL, _) => IntType case External(ParseDate.SYMBOL, _) => DateType + case External(name @ SortedIndices.SYMBOL, args) => + val arg = args match { case Seq(e) => e } + val size = run(arg) match { + case DictType(IntType, _, Vec(size)) => size + case tpe => raise(s"$name unexpect arg ${tpe.simpleName}") + } + DictType(IntType, IntType, Vec(size)) case External(Inv.SYMBOL, args) => val arg = args match { case Seq(e) => e } run(arg) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 3d1a0067..635de644 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -186,6 +186,7 @@ object CppCodegen { s"${CppCodegen.run(on)}.firstIndex(${CppCodegen.run(patt)})" case External(LastIndex.SYMBOL, Seq(on, patt)) => s"${CppCodegen.run(on)}.lastIndex(${CppCodegen.run(patt)})" + case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${CppCodegen.run(arg)})" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") case External(Size.SYMBOL, Seq(arg)) => diff --git a/src/main/scala/sdql/ir/ExternalFunctions.scala b/src/main/scala/sdql/ir/ExternalFunctions.scala index 765e5a65..799e9246 100644 --- a/src/main/scala/sdql/ir/ExternalFunctions.scala +++ b/src/main/scala/sdql/ir/ExternalFunctions.scala @@ -20,6 +20,7 @@ object ExternalFunctions { object StrIndexOf extends ExternalFactory("StrIndexOf") object FirstIndex extends ExternalFactory("FirstIndex") object LastIndex extends ExternalFactory("LastIndex") + object SortedIndices extends ExternalFactory("SortedIndices") object Year extends ExternalFactory("Year") object CStore extends ExternalFactory("CStore") object ParseDate extends ExternalFactory("ParseDate") From 729e80385e35d6d0c2ff83a60a0f755eef4d54cc Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 19:36:51 +0100 Subject: [PATCH 13/80] Range iterator and better error message --- runtime/sorted_dict.h | 28 ++++++++++++++++++++ src/main/scala/sdql/backend/CppCodegen.scala | 9 ++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 5dcb9d5b..c623d5bc 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -38,6 +38,34 @@ class Range { inline size_t right() const { return rr_; } + + class Iterator { + public: + explicit Iterator(const size_t current) : current_(current) {} + + bool operator!=(const Iterator& other) const { + return current_ != other.current_; + } + + size_t operator*() const { + return current_; + } + + Iterator& operator++() { + ++current_; + return *this; + } + + private: + size_t current_; + }; + + Iterator begin() { return Iterator(ll_); } + Iterator end() { return Iterator(rr_); } + + Iterator begin() const { return Iterator(ll_); } + Iterator end() const { return Iterator(rr_); } + }; template diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 635de644..d5664e7e 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -70,10 +70,11 @@ object CppCodegen { case _: RangeNode => s"${cppType(IntType)} ${k.name} = 0; ${k.name} < ${CppCodegen.run(e1)}; ${k.name}++" case _ => val lhs = TypeInference.run(e1)(typesLocal) match { - case DictType(_, _, _: PHmap) => s"&[${k.name}, ${v.name}]" - case DictType(_, _, _: SmallVecDict) => s"&${k.name}" - case DictType(_, _, _: SmallVecDicts) => s"${k.name}" - case t => raise(s"unexpected: ${t.prettyPrint}") + case DictType(_, _, _: PHmap) => s"&[${k.name}, ${v.name}]" + case DictType(_, _, _: SmallVecDict) => s"&${k.name}" + case DictType(_, _, _: SmallVecDicts | Range) => s"${k.name}" + case DictType(_, _, hint) => raise(s"unexpected dictionary hint: $hint") + case t => raise(s"unexpected: ${t.prettyPrint}") } val rhs = CppCodegen.run(e1)(typesLocal, isTernary) s"auto $lhs : $rhs" From 5d4f1e48d921e49b9d4052f1302b7ef585d4e24e Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 20:24:38 +0100 Subject: [PATCH 14/80] Special case for vec --- src/main/scala/sdql/analysis/TypeInference.scala | 7 +++++-- src/main/scala/sdql/backend/CppCodegen.scala | 8 +++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 0b5a9136..93172635 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -39,8 +39,11 @@ object TypeInference { case None => raise(s"unknown name: $name") } - case DictNode(Nil, _) => raise("Type inference needs backtracking to infer empty type { }") - case DictNode(seq, hint) => + case DictNode(Nil, _) => raise("Type inference needs backtracking to infer empty type { }") + // TODO remove special case + // @vec { <...> -> 1 } treats the relational form <...> -> 1 it as a mapping i -> <...> + case DictNode(Seq((r: RecNode, Const(1))), hint @ Vec(_)) => DictType(IntType, run(r), hint) + case DictNode(seq, hint) => DictType(seq.map(_._1).map(run).reduce(promote), seq.map(_._2).map(run).reduce(promote), hint) case RecNode(values) => RecordType(values.map(v => Attribute(name = v._1, tpe = run(v._2)))) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index d5664e7e..0048eee9 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -235,7 +235,12 @@ object CppCodegen { case Modify(e, destination) => val (lhs, rhs) = cppLhsRhs(e, destination) - s"$lhs = $rhs;" + TypeInference.run(e) match { + // TODO remove special case + // TODO emplace_back without constructing tuple + case DictType(IntType, _: RecordType, Vec(None)) => s"$lhs.push_back($rhs);" + case _ => s"$lhs = $rhs;" + } case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } @@ -282,6 +287,7 @@ object CppCodegen { val (lhs, rhs) = splitNested(v) (Seq(k) ++ lhs, rhs) case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) + case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => (Seq(), k) // TODO remove special case case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) case DictNode(map, _) if map.length != 1 => raise(s"unsupported: $e") case _ => (Seq(), e) From 52ecd8a7016259b292ddbbcd15b491b49112fd85 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 22:13:56 +0100 Subject: [PATCH 15/80] Sort C++ utilities --- runtime/csv_helper.h | 9 --------- runtime/headers.h | 1 + runtime/sort_helper.h | 20 ++++++++++++++++++++ 3 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 runtime/sort_helper.h diff --git a/runtime/csv_helper.h b/runtime/csv_helper.h index 1e68fb58..30929944 100644 --- a/runtime/csv_helper.h +++ b/runtime/csv_helper.h @@ -51,12 +51,3 @@ inline std::string print_date(const int yyyymmdd) { ss << yyyy << "-" << mm_str << "-" << dd_str; return ss.str(); } - -template -std::vector sorted_indices(const std::vector &vec) -{ - vector v(vec.size()); - iota(v.begin(), v.end(), 0); - sort(v.begin(), v.end(), [&](const int i, const int j) { return vec[i] < vec[j]; }); - return v; -} diff --git a/runtime/headers.h b/runtime/headers.h index e52bc2af..cf928ec6 100644 --- a/runtime/headers.h +++ b/runtime/headers.h @@ -21,3 +21,4 @@ #include "sorted_dict.h" #include "smallvecdict.h" #include "smallvecdicts.h" +#include "sort_helper.h" \ No newline at end of file diff --git a/runtime/sort_helper.h b/runtime/sort_helper.h new file mode 100644 index 00000000..22374173 --- /dev/null +++ b/runtime/sort_helper.h @@ -0,0 +1,20 @@ +#pragma once + +template +std::vector sorted_indices(const std::vector &vec) +{ + vector v(vec.size()); + iota(v.begin(), v.end(), 0); + sort(v.begin(), v.end(), [&](const int i, const int j) { return vec[i] < vec[j]; }); + return v; +} + +template +bool tuple_cmp(const std::tuple& a, const std::tuple& b) { + return std::get(a) < std::get(b); +} + +template +void sort_vec(std::vector>& vec) { + std::sort(vec.begin(), vec.end(), tuple_cmp); +} From e5528be2502c2e8422a6b6a8dd0a882250520d16 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 22:42:35 +0100 Subject: [PATCH 16/80] Added support for sort_vec external function --- runtime/sort_helper.h | 3 ++- src/main/scala/sdql/analysis/TypeInference.scala | 4 ++++ src/main/scala/sdql/backend/CppCodegen.scala | 2 ++ src/main/scala/sdql/ir/ExternalFunctions.scala | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/sort_helper.h b/runtime/sort_helper.h index 22374173..3bd4d53c 100644 --- a/runtime/sort_helper.h +++ b/runtime/sort_helper.h @@ -15,6 +15,7 @@ bool tuple_cmp(const std::tuple& a, const std::tuple& b) { } template -void sort_vec(std::vector>& vec) { +std::vector> sort_vec(std::vector> vec) { std::sort(vec.begin(), vec.end(), tuple_cmp); + return vec; } diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 93172635..3fc9be9f 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -116,6 +116,10 @@ object TypeInference { case tpe => raise(s"$name unexpect arg ${tpe.simpleName}") } DictType(IntType, IntType, Vec(size)) + // TODO + case External(SortVec.SYMBOL, args) => + val (_, arg) = args match { case Seq(Const(n: Int), arg) => (n, arg) } + run(arg) case External(Inv.SYMBOL, args) => val arg = args match { case Seq(e) => e } run(arg) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 0048eee9..535e3053 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -188,6 +188,8 @@ object CppCodegen { case External(LastIndex.SYMBOL, Seq(on, patt)) => s"${CppCodegen.run(on)}.lastIndex(${CppCodegen.run(patt)})" case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${CppCodegen.run(arg)})" + // TODO + case External(SortVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${CppCodegen.run(n)}>(${CppCodegen.run(arg)})" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") case External(Size.SYMBOL, Seq(arg)) => diff --git a/src/main/scala/sdql/ir/ExternalFunctions.scala b/src/main/scala/sdql/ir/ExternalFunctions.scala index 799e9246..fc02f9b4 100644 --- a/src/main/scala/sdql/ir/ExternalFunctions.scala +++ b/src/main/scala/sdql/ir/ExternalFunctions.scala @@ -21,6 +21,7 @@ object ExternalFunctions { object FirstIndex extends ExternalFactory("FirstIndex") object LastIndex extends ExternalFactory("LastIndex") object SortedIndices extends ExternalFactory("SortedIndices") + object SortVec extends ExternalFactory("SortVec") object Year extends ExternalFactory("Year") object CStore extends ExternalFactory("CStore") object ParseDate extends ExternalFactory("ParseDate") From 69f0677682c4592fab448bbcc46a48f4cd66557a Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 24 Oct 2024 22:42:56 +0100 Subject: [PATCH 17/80] FJ 3a sorting (almost works) --- progs/job/fj_sorting/3a.sdql | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 progs/job/fj_sorting/3a.sdql diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql new file mode 100644 index 00000000..5ef5bd87 --- /dev/null +++ b/progs/job/fj_sorting/3a.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") + +// TODO sort before timer +let t_offsets = ext(`SortedIndices`, t.id) +let k_offsets = ext(`SortedIndices`, k.id) + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in // TODO codegen at instead of [] + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in +let interm0 = ext(`SortVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) + @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { unique(k.id(k_offsets(i))) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in // TODO codegen at instead of [] + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() From a8ac1458ad42a729498fa3f90678eedf23afebc2 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:07:35 +0100 Subject: [PATCH 18/80] Cleanup --- src/main/scala/sdql/backend/CppCodegen.scala | 42 ++++++++++---------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 535e3053..59c3fe16 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -65,9 +65,9 @@ object CppCodegen { case Sum(k, v, e1, e2) => val (_, typesLocal) = TypeInference.sumInferTypeAndCtx(k, v, e1, e2) - val body = CppCodegen.run(e2)(typesLocal, isTernary) + val body = run(e2)(typesLocal, isTernary) val head = e1 match { - case _: RangeNode => s"${cppType(IntType)} ${k.name} = 0; ${k.name} < ${CppCodegen.run(e1)}; ${k.name}++" + case _: RangeNode => s"${cppType(IntType)} ${k.name} = 0; ${k.name} < ${run(e1)}; ${k.name}++" case _ => val lhs = TypeInference.run(e1)(typesLocal) match { case DictType(_, _, _: PHmap) => s"&[${k.name}, ${v.name}]" @@ -76,7 +76,7 @@ object CppCodegen { case DictType(_, _, hint) => raise(s"unexpected dictionary hint: $hint") case t => raise(s"unexpected: ${t.prettyPrint}") } - val rhs = CppCodegen.run(e1)(typesLocal, isTernary) + val rhs = run(e1)(typesLocal, isTernary) s"auto $lhs : $rhs" } s"for ($head) { $body }" @@ -161,43 +161,45 @@ object CppCodegen { case (StringType(None), StringType(Some(_))) | (StringType(Some(_)), StringType(None)) => raise(s"${StrContains.SYMBOL} doesn't support fixed and variable length strings together") } - s"${CppCodegen.run(str)}.$func(${CppCodegen.run(subStr)})" + s"${run(str)}.$func(${run(subStr)})" case External(StrStartsWith.SYMBOL, Seq(str, prefix)) => val startsWith = (TypeInference.run(str): @unchecked) match { case StringType(None) => "starts_with" case StringType(Some(_)) => "startsWith" } - s"${CppCodegen.run(str)}.$startsWith(${CppCodegen.run(prefix)})" + s"${run(str)}.$startsWith(${run(prefix)})" case External(StrEndsWith.SYMBOL, Seq(str, suffix)) => val endsWith = (TypeInference.run(str): @unchecked) match { case StringType(None) => "ends_with" case StringType(Some(_)) => "endsWith" } - s"${CppCodegen.run(str)}.$endsWith(${CppCodegen.run(suffix)})" + s"${run(str)}.$endsWith(${run(suffix)})" case External(SubString.SYMBOL, Seq(str, Const(start: Int), Const(end: Int))) => val subStr = (TypeInference.run(str): @unchecked) match { case StringType(None) => "substr" case StringType(Some(_)) => s"substr<${end - start}>" } - s"${CppCodegen.run(str)}.$subStr($start, $end)" + s"${run(str)}.$subStr($start, $end)" case External(StrIndexOf.SYMBOL, Seq(field: FieldNode, elem, from)) => assert(cond(TypeInference.run(field)) { case StringType(None) => true }) - s"${CppCodegen.run(field)}.find(${CppCodegen.run(elem)}, ${CppCodegen.run(from)})" + s"${run(field)}.find(${run(elem)}, ${run(from)})" case External(FirstIndex.SYMBOL, Seq(on, patt)) => - s"${CppCodegen.run(on)}.firstIndex(${CppCodegen.run(patt)})" + s"${run(on)}.firstIndex(${run(patt)})" case External(LastIndex.SYMBOL, Seq(on, patt)) => - s"${CppCodegen.run(on)}.lastIndex(${CppCodegen.run(patt)})" - case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${CppCodegen.run(arg)})" - // TODO - case External(SortVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${CppCodegen.run(n)}>(${CppCodegen.run(arg)})" + s"${run(on)}.lastIndex(${run(patt)})" + case External(SortedIndices.SYMBOL, Seq(arg)) => + s"sorted_indices(${run(arg)})" + case External(SortVec.SYMBOL, Seq(n, arg)) => + s"sort_vec<${run(n)}>(${run(arg)})" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") case External(Size.SYMBOL, Seq(arg)) => TypeInference.run(arg) match { - case _: DictType => s"static_cast<${cppType(IntType)}>(${CppCodegen.run(arg)}.size())" + case _: DictType => s"static_cast<${cppType(IntType)}>(${run(arg)}.size())" case t => raise(s"unexpected: ${t.prettyPrint}") } - case External(name, _) => raise(s"unhandled function name: $name") + case External(name, _) => + raise(s"unhandled function name: $name") case Concat(e1: RecNode, e2: RecNode) => run(e1.concat(e2)) case Concat(e1: Sym, e2: Sym) => s"std::tuple_cat(${run(e1)}, ${run(e2)})" @@ -224,7 +226,7 @@ object CppCodegen { val unpacked = TropicalSemiRingType.unpack(tpe) val agg = Aggregation.fromType(tpe) val initialiseCpp = initialise(unpacked)(agg, typesCtx, isTernary) - s"${cppType(unpacked)}($initialiseCpp); ${CppCodegen.run(e)}" + s"${cppType(unpacked)}($initialiseCpp); ${run(e)}" case Update(e, agg, destination) => val (lhs, rhs) = cppLhsRhs(e, destination) @@ -279,11 +281,11 @@ object CppCodegen { val (accessors, inner) = splitNested(e) val bracketed = cppAccessors(accessors)(typesCtx, isTernary = true) val lhs = s"${destination.name}$bracketed" - val rhs = CppCodegen.run(inner)(typesCtx, isTernary = true) + val rhs = run(inner)(typesCtx, isTernary = true) (lhs, rhs) } private def cppAccessors(exps: Iterable[Exp])(implicit typesCtx: TypesCtx, isTernary: Boolean) = - exps.map(e => s"[${CppCodegen.run(e)}]").mkString("") + exps.map(e => s"[${run(e)}]").mkString("") private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => val (lhs, rhs) = splitNested(v) @@ -297,8 +299,8 @@ object CppCodegen { private def initialise(tpe: Type)(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean): String = tpe match { - case DictType(_, _, PHmap(Some(e))) => CppCodegen.run(e) - case DictType(_, _, SortedDict(Some(e))) => CppCodegen.run(e) + case DictType(_, _, PHmap(Some(e))) => run(e) + case DictType(_, _, SortedDict(Some(e))) => run(e) case DictType(_, _, PHmap(None) | SortedDict(None) | _: SmallVecDict) => "{}" case DictType(_, _, Vec(size)) => size match { From 5c5fa56167bce684c8b1fdea9e87c1ee2c20d9c7 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:22:48 +0100 Subject: [PATCH 19/80] Handled SortedDict read access --- progs/job/fj_sorting/3a.sdql | 4 ++-- src/main/scala/sdql/backend/CppCodegen.scala | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index 5ef5bd87..69bd66cc 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -11,7 +11,7 @@ let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @ let interm0_unsort = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in if (x0 ∈ t_trie0) then - let t_trie1 = t_trie0(x0) in // TODO codegen at instead of [] + let t_trie1 = t_trie0(x0) in sum( <- t_trie1) let t_off = t_offsets(t_i) @vec { -> 1 } @@ -25,7 +25,7 @@ let k_trie0 = sum( <- range(k.size)) @st(k.size) { unique(k.id(k_offsets(i sum( <- range(mi.size)) let x0 = mi.movie_id(mi_off) in if (x0 ∈ interm0_trie0) then - let interm0_trie1 = interm0_trie0(x0) in // TODO codegen at instead of [] + let interm0_trie1 = interm0_trie0(x0) in sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) let x1 = interm0_tuple.col1 in diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 59c3fe16..e44be987 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -147,8 +147,9 @@ object CppCodegen { case Get(e1, e2) => (TypeInference.run(e1): @unchecked) match { - case _: RecordType => s"std::get<${run(e2)}>(${run(e1)})" - case _: DictType => s"${run(e1)}[${run(e2)}]" + case _: RecordType => s"std::get<${run(e2)}>(${run(e1)})" + case DictType(_, _, _: SortedDict) => s"${run(e1)}.at(${run(e2)})" + case _: DictType => s"${run(e1)}[${run(e2)}]" } case External(ConstantString.SYMBOL, Seq(Const(str: String), Const(maxLen: Int))) => From f6e9eb753cbbeaa9fc1ca981c791da86ec926dc4 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:11:09 +0100 Subject: [PATCH 20/80] Sorting outside main --- progs/job/fj_sorting/3a.sdql | 1 - src/main/scala/sdql/backend/CppCodegen.scala | 32 +++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index 69bd66cc..e807462d 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -3,7 +3,6 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") -// TODO sort before timer let t_offsets = ext(`SortedIndices`, t.id) let k_offsets = ext(`SortedIndices`, k.id) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index e44be987..399c4b68 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -13,6 +13,7 @@ object CppCodegen { /** Generates C++ from an expression transformed to LLQL */ def apply(e: Exp, benchmarkRuns: Int = 0): String = { val csvBody = cppCsvs(e) + val sortBody = if (benchmarkRuns == 0) "" else cppSort(e) val queryBody = run(e)(Map(), isTernary = false) val benchStart = if (benchmarkRuns == 0) "" @@ -33,6 +34,7 @@ object CppCodegen { |""".stripMargin s"""#include "../runtime/headers.h" |$csvBody + |$sortBody |int main() { |$benchStart |$queryBody @@ -45,12 +47,13 @@ object CppCodegen { case LetBinding(x @ Sym(name), e1, e2) => val isTernary = !cond(e1) { case _: Sum | _: Initialise => true } val e1Cpp = e1 match { - // codegen for loads was handled in a separate tree traversal - case _: Load => "" - case e1 @ External(ConstantString.SYMBOL, _) => + // codegen for loads / sorting was handled in a separate tree traversal + case _: Load | External(SortedIndices.SYMBOL, _) => "" + case e1 @ External(ConstantString.SYMBOL, _) => s"const auto $name = ${run(e1)(typesCtx, isTernary)};" - case e1: Const => s"constexpr auto $name = ${run(e1)(Map(), isTernary = false)};" - case _ => + case e1: Const => + s"constexpr auto $name = ${run(e1)(Map(), isTernary = false)};" + case _ => val isRetrieval = cond(e1) { case _: FieldNode | _: Get => true } def isDict = cond(TypeInference.run(e1)) { case _: DictType => true } val cppName = if (isRetrieval && isDict) s"&$name" else name @@ -188,8 +191,8 @@ object CppCodegen { s"${run(on)}.firstIndex(${run(patt)})" case External(LastIndex.SYMBOL, Seq(on, patt)) => s"${run(on)}.lastIndex(${run(patt)})" - case External(SortedIndices.SYMBOL, Seq(arg)) => - s"sorted_indices(${run(arg)})" + case External(name @ SortedIndices.SYMBOL, _) => + raise(s"$name should have been handled in separate tree traversal") case External(SortVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${run(n)}>(${run(arg)})" case External(name @ Inv.SYMBOL, _) => @@ -377,7 +380,7 @@ object CppCodegen { // let same_varname = load[...]("foo.csv") // else // let same_varname = load[...]("bar.csv") - private def cppCsvs(e: Exp): String = { + private def cppCsvs(e: Exp) = { val pathNameTypeSkip = iterExps(e).flatMap(extract).toSeq.distinct.sortBy(_._2) val csvConsts = pathNameTypeSkip.zipWithIndex.map { case ((path, name, _, _), i) => makeCsvConst(name, path, i) } @@ -425,6 +428,19 @@ object CppCodegen { case Restage(cs, _) => cs.flatMap(iterExps) }) + // Computing sorted offsets of CSVs is also assigned to const variables outside the main function - to avoid timing + private def cppSort(e: Exp) = + iterExps(e) + .filter(e => cond(e) { case LetBinding(_, External(SortedIndices.SYMBOL, _), _) => true }) + .map(e => + (e: @unchecked) match { + case LetBinding(Sym(name), External(_, Seq(FieldNode(Sym(src), _))), _) => + // TODO this assumes we do sorting by column 0 always + s"const auto $name = sorted_indices(std::get<0>($src));" + } + ) + .mkString("", "\n", "\n") + private def cppPrintResult(tpe: Type): String = tpe match { case DictType(kt, vt, _: PHmap) => s"""for (const auto &[key, val] : $resultName) { From ab36c13f22967389a6918b299ea68352b5f1491b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 15:14:57 +0100 Subject: [PATCH 21/80] Use emplace_back --- src/main/scala/sdql/backend/CppCodegen.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 399c4b68..13c4f240 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -245,8 +245,8 @@ object CppCodegen { val (lhs, rhs) = cppLhsRhs(e, destination) TypeInference.run(e) match { // TODO remove special case - // TODO emplace_back without constructing tuple - case DictType(IntType, _: RecordType, Vec(None)) => s"$lhs.push_back($rhs);" + // TODO don't construct tuple + case DictType(IntType, _: RecordType, Vec(None)) => s"$lhs.emplace_back($rhs);" case _ => s"$lhs = $rhs;" } From e62713feb926dff53c280cc0f34f8386ff4c315c Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 19:48:17 +0100 Subject: [PATCH 22/80] Benchmark timer scope now determined by SDQL program --- progs/job/fj_sorting/3a.sdql | 2 + .../scala/sdql/analysis/TypeInference.scala | 2 + src/main/scala/sdql/backend/CppCodegen.scala | 98 ++++++++++--------- src/main/scala/sdql/frontend/Parser.scala | 7 +- src/main/scala/sdql/ir/Exp.scala | 3 + src/main/scala/sdql/ir/Restage.scala | 2 + .../scala/sdql/transformations/Rewriter.scala | 1 + .../sdql/transformations/RewriterTest.scala | 10 ++ 8 files changed, 77 insertions(+), 48 deletions(-) diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index e807462d..e311831e 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -6,6 +6,7 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let t_offsets = ext(`SortedIndices`, t.id) let k_offsets = ext(`SortedIndices`, k.id) +timer( let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let interm0_unsort = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in @@ -32,3 +33,4 @@ sum( <- range(mi.size)) let k_trie1 = k_trie0(x1) in let mn_interm0 = in promote[min_sum]() +) \ No newline at end of file diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 3fc9be9f..756ea04d 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -167,6 +167,8 @@ object TypeInference { case Update(e, _, _) => run(e) case Modify(e, _) => run(e) + case Timer(e) => run(e) + case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 13c4f240..8ecd5ac6 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -12,37 +12,18 @@ object CppCodegen { /** Generates C++ from an expression transformed to LLQL */ def apply(e: Exp, benchmarkRuns: Int = 0): String = { - val csvBody = cppCsvs(e) - val sortBody = if (benchmarkRuns == 0) "" else cppSort(e) - val queryBody = run(e)(Map(), isTernary = false) - val benchStart = - if (benchmarkRuns == 0) "" - // note: first benchmark run is warmup - else - s"""HighPrecisionTimer timer; - |for (${cppType(IntType)} iter = 0; iter <= $benchmarkRuns; iter++) { - |timer.Reset(); - |""".stripMargin - val benchStop = - if (benchmarkRuns == 0) cppPrintResult(TypeInference(e)) - else - s"""timer.StoreElapsedTime(0); - |doNotOptimiseAway($resultName); - |std::cerr << "*" << " " << std::flush; - |} - |std::cout << std::endl << timer.GetMean(0) << " ms"; - |""".stripMargin + val csvBody = cppCsvs(e) + val sortBody = if (benchmarkRuns == 0) "" else cppSort(e) + val queryBody = run(e)(Map(), isTernary = false, benchmarkRuns) s"""#include "../runtime/headers.h" |$csvBody |$sortBody |int main() { - |$benchStart |$queryBody - |$benchStop |}""".stripMargin } - def run(e: Exp)(implicit typesCtx: TypesCtx, isTernary: Boolean): String = + private def run(e: Exp)(implicit typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int): String = e match { case LetBinding(x @ Sym(name), e1, e2) => val isTernary = !cond(e1) { case _: Sum | _: Initialise => true } @@ -50,25 +31,25 @@ object CppCodegen { // codegen for loads / sorting was handled in a separate tree traversal case _: Load | External(SortedIndices.SYMBOL, _) => "" case e1 @ External(ConstantString.SYMBOL, _) => - s"const auto $name = ${run(e1)(typesCtx, isTernary)};" + s"const auto $name = ${run(e1)(typesCtx, isTernary, benchmarkRuns)};" case e1: Const => - s"constexpr auto $name = ${run(e1)(Map(), isTernary = false)};" + s"constexpr auto $name = ${run(e1)(Map(), isTernary = false, benchmarkRuns)};" case _ => val isRetrieval = cond(e1) { case _: FieldNode | _: Get => true } def isDict = cond(TypeInference.run(e1)) { case _: DictType => true } val cppName = if (isRetrieval && isDict) s"&$name" else name val semicolon = if (cond(e1) { case _: Initialise => true }) "" else ";" - s"auto $cppName = ${run(e1)(typesCtx, isTernary)}$semicolon" + s"auto $cppName = ${run(e1)(typesCtx, isTernary, benchmarkRuns)}$semicolon" } val e2Cpp = e2 match { case DictNode(Nil, _) => "" - case _ => run(e2)(typesCtx ++ Map(x -> TypeInference.run(e1)), isTernary = false) + case _ => run(e2)(typesCtx ++ Map(x -> TypeInference.run(e1)), isTernary = false, benchmarkRuns) } e1Cpp + e2Cpp case Sum(k, v, e1, e2) => val (_, typesLocal) = TypeInference.sumInferTypeAndCtx(k, v, e1, e2) - val body = run(e2)(typesLocal, isTernary) + val body = run(e2)(typesLocal, isTernary, benchmarkRuns) val head = e1 match { case _: RangeNode => s"${cppType(IntType)} ${k.name} = 0; ${k.name} < ${run(e1)}; ${k.name}++" case _ => @@ -79,7 +60,7 @@ object CppCodegen { case DictType(_, _, hint) => raise(s"unexpected dictionary hint: $hint") case t => raise(s"unexpected: ${t.prettyPrint}") } - val rhs = run(e1)(typesLocal, isTernary) + val rhs = run(e1)(typesLocal, isTernary, benchmarkRuns) s"auto $lhs : $rhs" } s"for ($head) { $body }" @@ -138,15 +119,15 @@ object CppCodegen { case DictNode(Nil, _) => "" case DictNode(seq, _) => seq.map { case (e1, e2) => - val e1Cpp = run(e1)(typesCtx, isTernary = true) - val e2Cpp = run(e2)(typesCtx, isTernary = true) + val e1Cpp = run(e1)(typesCtx, isTernary = true, benchmarkRuns) + val e2Cpp = run(e2)(typesCtx, isTernary = true, benchmarkRuns) s"{$e1Cpp, $e2Cpp}" } .mkString(s"${cppType(TypeInference.run(e))}({", ", ", "})") case RecNode(values) => val tpe = TypeInference.run(e) - values.map(e => run(e._2)(typesCtx, isTernary = true)).mkString(s"${cppType(tpe)}(", ", ", ")") + values.map(e => run(e._2)(typesCtx, isTernary = true, benchmarkRuns)).mkString(s"${cppType(tpe)}(", ", ", ")") case Get(e1, e2) => (TypeInference.run(e1): @unchecked) match { @@ -229,7 +210,7 @@ object CppCodegen { case Initialise(tpe, e) => val unpacked = TropicalSemiRingType.unpack(tpe) val agg = Aggregation.fromType(tpe) - val initialiseCpp = initialise(unpacked)(agg, typesCtx, isTernary) + val initialiseCpp = initialise(unpacked)(agg, typesCtx, isTernary, benchmarkRuns) s"${cppType(unpacked)}($initialiseCpp); ${run(e)}" case Update(e, agg, destination) => @@ -250,19 +231,42 @@ object CppCodegen { case _ => s"$lhs = $rhs;" } + case Timer(e) => + val benchStart = + if (benchmarkRuns == 0) "" + else + // note: first benchmark run is warmup + s"""HighPrecisionTimer timer; + |for (${cppType(IntType)} iter = 0; iter <= $benchmarkRuns; iter++) { + |timer.Reset(); + |""".stripMargin + val benchStop = + if (benchmarkRuns == 0) cppPrintResult(TypeInference(e)) + else + s"""timer.StoreElapsedTime(0); + |doNotOptimiseAway($resultName); + |std::cerr << "*" << " " << std::flush; + |} + |std::cout << std::endl << timer.GetMean(0) << " ms"; + |""".stripMargin + s"""$benchStart + |${run(e)} + |$benchStop + |""".stripMargin + case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } - private def ternary(e: IfThenElse)(implicit typesCtx: TypesCtx) = e match { + private def ternary(e: IfThenElse)(implicit typesCtx: TypesCtx, benchmarkRuns: Int) = e match { case IfThenElse(cond, e1, e2) => - val condBody = run(cond)(typesCtx, isTernary = true) - val ifBody = run(e1)(typesCtx, isTernary = true) - val elseBody = run(e2)(typesCtx, isTernary = true) + val condBody = run(cond)(typesCtx, isTernary = true, benchmarkRuns) + val ifBody = run(e1)(typesCtx, isTernary = true, benchmarkRuns) + val elseBody = run(e2)(typesCtx, isTernary = true, benchmarkRuns) s"($condBody) ? $ifBody : $elseBody" } - private def default(e: IfThenElse)(implicit typesCtx: TypesCtx, isTernary: Boolean) = e match { + private def default(e: IfThenElse)(implicit typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int) = e match { case IfThenElse(cond, e1, e2) => - val condBody = run(cond)(typesCtx, isTernary) + val condBody = run(cond)(typesCtx, isTernary, benchmarkRuns) val ifBody = run(e1) val elseBody = e2 match { case DictNode(Nil, _) | Update(DictNode(Nil, _), _, _) | Const(0) | Const(0.0) => "" @@ -275,22 +279,22 @@ object CppCodegen { case Get(e1, e2) => cond(TypeInference.run(e1)) { case DictType(kt, _, _) => TypeInference.run(e2) == kt } } - private def dictCmpNil(e1: Exp, e2: Exp)(implicit typesCtx: TypesCtx, isTernary: Boolean) = + private def dictCmpNil(e1: Exp, e2: Exp)(implicit typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int) = TypeInference.run(e1) match { case DictType(IntType, _, _: Vec) => s"${run(e1)}[${run(e2)}] != 0" case _ => s"${run(e1)}.contains(${run(e2)})" } - private def cppLhsRhs(e: Exp, destination: Sym)(implicit typesCtx: TypesCtx) = { + private def cppLhsRhs(e: Exp, destination: Sym)(implicit typesCtx: TypesCtx, benchmarkRuns: Int) = { val (accessors, inner) = splitNested(e) - val bracketed = cppAccessors(accessors)(typesCtx, isTernary = true) + val bracketed = cppAccessors(accessors)(typesCtx, isTernary = true, benchmarkRuns) val lhs = s"${destination.name}$bracketed" - val rhs = run(inner)(typesCtx, isTernary = true) + val rhs = run(inner)(typesCtx, isTernary = true, benchmarkRuns) (lhs, rhs) } - private def cppAccessors(exps: Iterable[Exp])(implicit typesCtx: TypesCtx, isTernary: Boolean) = + private def cppAccessors(exps: Iterable[Exp])(implicit typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int) = exps.map(e => s"[${run(e)}]").mkString("") - private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { + private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => val (lhs, rhs) = splitNested(v) (Seq(k) ++ lhs, rhs) @@ -301,7 +305,9 @@ object CppCodegen { case _ => (Seq(), e) } - private def initialise(tpe: Type)(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean): String = + private def initialise( + tpe: Type + )(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int): String = tpe match { case DictType(_, _, PHmap(Some(e))) => run(e) case DictType(_, _, SortedDict(Some(e))) => run(e) diff --git a/src/main/scala/sdql/frontend/Parser.scala b/src/main/scala/sdql/frontend/Parser.scala index 2b71c642..bff472ae 100644 --- a/src/main/scala/sdql/frontend/Parser.scala +++ b/src/main/scala/sdql/frontend/Parser.scala @@ -41,7 +41,8 @@ object Parser { "min_sum", "max_sum", "enum", - "nullable" + "nullable", + "timer" ) ~ !idRest ) @@ -169,7 +170,7 @@ object Parser { space ~ (const | neg | not | dictOrSet | rec | ifThenElse | range | load | concat | promote | unique | letBinding | sum | variable | - ext | parens) ~ space + ext | parens | timer) ~ space ) private def neg[$: P]: P[Neg] = P("-" ~ !(">") ~ factor).map(Neg.apply) @@ -233,4 +234,6 @@ object Parser { } value } + + private def timer(implicit ctx: P[?]) = P("timer" ~ parens).map(e => Timer(e)) } diff --git a/src/main/scala/sdql/ir/Exp.scala b/src/main/scala/sdql/ir/Exp.scala index 6b832d90..14032c56 100644 --- a/src/main/scala/sdql/ir/Exp.scala +++ b/src/main/scala/sdql/ir/Exp.scala @@ -224,3 +224,6 @@ sealed trait LLQL case class Initialise(tpe: Type, e: Exp) extends Exp with LLQL case class Update(e: Exp, agg: Aggregation, dest: Sym) extends Exp with LLQL case class Modify(e: Exp, dest: Sym) extends Exp with LLQL + +/** Marks which section of the program to time in benchmarks */ +case class Timer(exp: Exp) extends Exp diff --git a/src/main/scala/sdql/ir/Restage.scala b/src/main/scala/sdql/ir/Restage.scala index 86b4257e..aa178a36 100644 --- a/src/main/scala/sdql/ir/Restage.scala +++ b/src/main/scala/sdql/ir/Restage.scala @@ -51,6 +51,7 @@ object Restage { case Initialise(_, e) => Seq(e) case Update(e, _, _) => Seq(e) case Modify(e, _) => Seq(e) + case Timer(e) => Seq(e) case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } def factory(e: Exp): Seq[Exp] => Exp = e match { @@ -85,6 +86,7 @@ object Restage { case Initialise(tpe, _) => seq => Initialise(tpe, seq(0)) case Update(_, agg, dest) => seq => Update(seq(0), agg, dest) case Modify(_, dest) => seq => Modify(seq(0), dest) + case Timer(_) => seq => Timer(seq(0)) case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } } diff --git a/src/main/scala/sdql/transformations/Rewriter.scala b/src/main/scala/sdql/transformations/Rewriter.scala index 5feacddc..cbe170cc 100644 --- a/src/main/scala/sdql/transformations/Rewriter.scala +++ b/src/main/scala/sdql/transformations/Rewriter.scala @@ -139,6 +139,7 @@ private object BindFreeExpression extends Transformation { def apply(e: Exp): Exp = e match { case DictNode(Nil, _) => e // just in case of repeated applications case LetBinding(x, e1, e2) => LetBinding(x, e1, apply(e2)) + case Timer(e) => Timer(apply(e)) case e => LetBinding(Sym(resultName), e, DictNode(Nil)) } } diff --git a/src/test/scala/sdql/transformations/RewriterTest.scala b/src/test/scala/sdql/transformations/RewriterTest.scala index 33395cf1..200e2ba3 100644 --- a/src/test/scala/sdql/transformations/RewriterTest.scala +++ b/src/test/scala/sdql/transformations/RewriterTest.scala @@ -188,6 +188,16 @@ class BindFreeExpressionTest extends AnyFlatSpec with Matchers { val rewrite = sdql"let x = y in let ${Sym(resultName)} = z in {}" BindFreeExpression(e) should be(rewrite) } + it should "bind free expression idempotent" in { + val e = sdql"let x = y in z" + val rewrite = BindFreeExpression(e) + BindFreeExpression(rewrite) should be(rewrite) + } + it should "bind free expression without timer" in { + val e = sdql"let x = y in timer(z)" + val rewrite = sdql"let x = y in timer(let ${Sym(resultName)} = z in {})" + BindFreeExpression(e) should be(rewrite) + } } class LowerToLLQLTest extends AnyFlatSpec with Matchers { From 7929206d93f45f5c76f07c774af0cafe59242a6e Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:11:23 +0100 Subject: [PATCH 23/80] Sorted indices external function no longer a special case --- src/main/scala/sdql/backend/CppCodegen.scala | 29 +++++--------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 8ecd5ac6..db4b080c 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -13,11 +13,9 @@ object CppCodegen { /** Generates C++ from an expression transformed to LLQL */ def apply(e: Exp, benchmarkRuns: Int = 0): String = { val csvBody = cppCsvs(e) - val sortBody = if (benchmarkRuns == 0) "" else cppSort(e) val queryBody = run(e)(Map(), isTernary = false, benchmarkRuns) s"""#include "../runtime/headers.h" |$csvBody - |$sortBody |int main() { |$queryBody |}""".stripMargin @@ -28,13 +26,13 @@ object CppCodegen { case LetBinding(x @ Sym(name), e1, e2) => val isTernary = !cond(e1) { case _: Sum | _: Initialise => true } val e1Cpp = e1 match { - // codegen for loads / sorting was handled in a separate tree traversal - case _: Load | External(SortedIndices.SYMBOL, _) => "" - case e1 @ External(ConstantString.SYMBOL, _) => + // codegen for loads was handled in a separate tree traversal + case _: Load => "" + case e1 @ External(ConstantString.SYMBOL, _) => s"const auto $name = ${run(e1)(typesCtx, isTernary, benchmarkRuns)};" - case e1: Const => + case e1: Const => s"constexpr auto $name = ${run(e1)(Map(), isTernary = false, benchmarkRuns)};" - case _ => + case _ => val isRetrieval = cond(e1) { case _: FieldNode | _: Get => true } def isDict = cond(TypeInference.run(e1)) { case _: DictType => true } val cppName = if (isRetrieval && isDict) s"&$name" else name @@ -172,8 +170,8 @@ object CppCodegen { s"${run(on)}.firstIndex(${run(patt)})" case External(LastIndex.SYMBOL, Seq(on, patt)) => s"${run(on)}.lastIndex(${run(patt)})" - case External(name @ SortedIndices.SYMBOL, _) => - raise(s"$name should have been handled in separate tree traversal") + case External(SortedIndices.SYMBOL, Seq(arg)) => + s"sorted_indices(${run(arg)})" case External(SortVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${run(n)}>(${run(arg)})" case External(name @ Inv.SYMBOL, _) => @@ -434,19 +432,6 @@ object CppCodegen { case Restage(cs, _) => cs.flatMap(iterExps) }) - // Computing sorted offsets of CSVs is also assigned to const variables outside the main function - to avoid timing - private def cppSort(e: Exp) = - iterExps(e) - .filter(e => cond(e) { case LetBinding(_, External(SortedIndices.SYMBOL, _), _) => true }) - .map(e => - (e: @unchecked) match { - case LetBinding(Sym(name), External(_, Seq(FieldNode(Sym(src), _))), _) => - // TODO this assumes we do sorting by column 0 always - s"const auto $name = sorted_indices(std::get<0>($src));" - } - ) - .mkString("", "\n", "\n") - private def cppPrintResult(tpe: Type): String = tpe match { case DictType(kt, vt, _: PHmap) => s"""for (const auto &[key, val] : $resultName) { From 8b5bc9775ce6fc9f8e26243ade6435731c3ff89e Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 25 Oct 2024 20:16:50 +0100 Subject: [PATCH 24/80] Timer no parentheses --- progs/job/fj_sorting/3a.sdql | 4 ++-- src/main/scala/sdql/frontend/Parser.scala | 2 +- src/test/scala/sdql/transformations/RewriterTest.scala | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index e311831e..b4a126d2 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -6,7 +6,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let t_offsets = ext(`SortedIndices`, t.id) let k_offsets = ext(`SortedIndices`, k.id) -timer( +timer + let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let interm0_unsort = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in @@ -33,4 +34,3 @@ sum( <- range(mi.size)) let k_trie1 = k_trie0(x1) in let mn_interm0 = in promote[min_sum]() -) \ No newline at end of file diff --git a/src/main/scala/sdql/frontend/Parser.scala b/src/main/scala/sdql/frontend/Parser.scala index bff472ae..142010a3 100644 --- a/src/main/scala/sdql/frontend/Parser.scala +++ b/src/main/scala/sdql/frontend/Parser.scala @@ -235,5 +235,5 @@ object Parser { value } - private def timer(implicit ctx: P[?]) = P("timer" ~ parens).map(e => Timer(e)) + private def timer(implicit ctx: P[?]) = P("timer" ~ expr).map(e => Timer(e)) } diff --git a/src/test/scala/sdql/transformations/RewriterTest.scala b/src/test/scala/sdql/transformations/RewriterTest.scala index 200e2ba3..4b484d10 100644 --- a/src/test/scala/sdql/transformations/RewriterTest.scala +++ b/src/test/scala/sdql/transformations/RewriterTest.scala @@ -194,8 +194,8 @@ class BindFreeExpressionTest extends AnyFlatSpec with Matchers { BindFreeExpression(rewrite) should be(rewrite) } it should "bind free expression without timer" in { - val e = sdql"let x = y in timer(z)" - val rewrite = sdql"let x = y in timer(let ${Sym(resultName)} = z in {})" + val e = sdql"let x = y in timer z" + val rewrite = sdql"let x = y in timer let ${Sym(resultName)} = z in {}" BindFreeExpression(e) should be(rewrite) } } From d7b821de9837e80165357976c6edd4be0007fff7 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:56:03 +0100 Subject: [PATCH 25/80] Load no long treated as special case --- src/main/scala/sdql/backend/CppCodegen.scala | 146 +++++++++---------- 1 file changed, 65 insertions(+), 81 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index db4b080c..905f5a3b 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -5,17 +5,15 @@ import sdql.ir.* import sdql.ir.ExternalFunctions.* import sdql.raise -import scala.PartialFunction.{ cond, condOpt } +import scala.PartialFunction.cond object CppCodegen { type TypesCtx = TypeInference.Ctx /** Generates C++ from an expression transformed to LLQL */ def apply(e: Exp, benchmarkRuns: Int = 0): String = { - val csvBody = cppCsvs(e) val queryBody = run(e)(Map(), isTernary = false, benchmarkRuns) - s"""#include "../runtime/headers.h" - |$csvBody + s"""#include "../runtime/headers.h"\n |int main() { |$queryBody |}""".stripMargin @@ -26,8 +24,7 @@ object CppCodegen { case LetBinding(x @ Sym(name), e1, e2) => val isTernary = !cond(e1) { case _: Sum | _: Initialise => true } val e1Cpp = e1 match { - // codegen for loads was handled in a separate tree traversal - case _: Load => "" + case e: Load => load(e, name) case e1 @ External(ConstantString.SYMBOL, _) => s"const auto $name = ${run(e1)(typesCtx, isTernary, benchmarkRuns)};" case e1: Const => @@ -234,14 +231,16 @@ object CppCodegen { if (benchmarkRuns == 0) "" else // note: first benchmark run is warmup - s"""HighPrecisionTimer timer; - |for (${cppType(IntType)} iter = 0; iter <= $benchmarkRuns; iter++) { - |timer.Reset(); - |""".stripMargin + s"""|\n + |HighPrecisionTimer timer; + |for (${cppType(IntType)} iter = 0; iter <= $benchmarkRuns; iter++) { + |timer.Reset(); + |""".stripMargin val benchStop = if (benchmarkRuns == 0) cppPrintResult(TypeInference(e)) else - s"""timer.StoreElapsedTime(0); + s"""\n + |timer.StoreElapsedTime(0); |doNotOptimiseAway($resultName); |std::cerr << "*" << " " << std::flush; |} @@ -255,6 +254,37 @@ object CppCodegen { case _ => raise(f"unhandled ${e.simpleName} in\n${e.prettyPrint}") } + private def load(e: Load, name: String) = (e: @unchecked) match { + case Load(path, tp: RecordType, skipCols) => + // TODO don't hardcode 0 + // NaN handling for LSQB queries (different value in each table avoids joining them) + val document = + s"""const rapidcsv::Document ${name.toUpperCase}_CSV("../$path", NO_HEADERS, SEPARATOR, IntNanConverter(0));""" + val skipColsSet = skipCols.toSkipColsSet + assert(tp.attrs.last.name == "size") + val attrs = tp.attrs + .dropRight(1) + .map(attr => (attr.tpe: @unchecked) match { case DictType(IntType, vt, Vec(None)) => Attribute(attr.name, vt) }) + val readCols = attrs.zipWithIndex.filter { case (attr, _) => !skipColsSet.contains(attr.name) }.map { + case (Attribute(attr_name, tpe), i) => + s"/* $attr_name */" ++ (tpe match { + case DateType => + s"dates_to_numerics(" + s"${name.toUpperCase}_CSV.GetColumn<${cppType(StringType())}>($i)" + ")" + case StringType(Some(maxLen)) => + s"strings_to_varchars<$maxLen>(" + s"${name.toUpperCase}_CSV.GetColumn<${cppType(StringType())}>($i)" + ")" + case _ => + s"${name.toUpperCase}_CSV.GetColumn<${cppType(tpe)}>($i)" + }) + } + val readSize = + if (skipColsSet.contains("size")) Seq() + else Seq(s"/* size */static_cast<${cppType(IntType)}>(${name.toUpperCase}_CSV.GetRowCount())") + val init = (readCols ++ readSize).mkString(",\n") + s"""$document + |auto ${name.toLowerCase} = ${cppType(tp, noTemplate = true)}($init); + |\n""".stripMargin + } + private def ternary(e: IfThenElse)(implicit typesCtx: TypesCtx, benchmarkRuns: Int) = e match { case IfThenElse(cond, e1, e2) => val condBody = run(cond)(typesCtx, isTernary = true, benchmarkRuns) @@ -292,16 +322,22 @@ object CppCodegen { } private def cppAccessors(exps: Iterable[Exp])(implicit typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int) = exps.map(e => s"[${run(e)}]").mkString("") - private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { - case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => - val (lhs, rhs) = splitNested(v) - (Seq(k) ++ lhs, rhs) - case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) - case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => (Seq(), k) // TODO remove special case - case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) - case DictNode(map, _) if map.length != 1 => raise(s"unsupported: $e") - case _ => (Seq(), e) - } + private def splitNested(e: Exp): (Seq[Exp], Exp) = + e match { + case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => + val (lhs, rhs) = splitNested(v) + (Seq(k) ++ lhs, rhs) + case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => + (Seq(k), rhs) + case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => + (Seq(), k) // TODO remove special case + case DictNode(Seq((k, rhs)), _) => + (Seq(k), rhs) + case DictNode(map, _) if map.length != 1 => + raise(s"unsupported: $e") + case _ => + (Seq(), e) + } private def initialise( tpe: Type @@ -315,8 +351,10 @@ object CppCodegen { case None => "" case Some(size) => (size + 1).toString } - case DictType(_, _, _: SmallVecDicts) => "" - case RecordType(attrs) => attrs.map(_.tpe).map(initialise).mkString(", ") + case DictType(_, _, _: SmallVecDicts) => + "" + case RecordType(attrs) => + attrs.map(_.tpe).map(initialise).mkString(", ") case BoolType => agg match { case SumAgg | MaxAgg => "false" @@ -340,8 +378,10 @@ object CppCodegen { case ProdAgg => raise("undefined") case MinAgg => s"STRING_MAX" } - case StringType(Some(_)) => raise("initialising VarChars shouldn't be needed") - case tpe => raise(s"unimplemented type: $tpe") + case StringType(Some(_)) => + raise("initialising VarChars shouldn't be needed") + case tpe => + raise(s"unimplemented type: $tpe") } private def cppType(tpe: Type, noTemplate: Boolean = false): String = tpe match { @@ -376,62 +416,6 @@ object CppCodegen { case RecordType(attrs) => attrs.map(_.tpe).map(cppType(_)).mkString(", ") } - // In the generated C++ program, CSVs are loaded into const variables outside the main function. - // This is convenient so we can just time everything inside main for benchmarks (which shouldn't include load times). - // Though it assumes loads expressions are bound to global variables (always holds for all of our queries). - // E.g. we currently don't support cases like this one: - // if (...) then - // let same_varname = load[...]("foo.csv") - // else - // let same_varname = load[...]("bar.csv") - private def cppCsvs(e: Exp) = { - val pathNameTypeSkip = iterExps(e).flatMap(extract).toSeq.distinct.sortBy(_._2) - val csvConsts = - pathNameTypeSkip.zipWithIndex.map { case ((path, name, _, _), i) => makeCsvConst(name, path, i) } - .mkString("\n", "\n", "\n") - val tuples = pathNameTypeSkip.map { case (_, name, recordType, skipCols) => - val init = makeTupleInit(name, recordType, skipCols) - s"auto ${name.toLowerCase} = ${cppType(recordType, noTemplate = true)}($init);\n" - } - .mkString("\n") - Seq(csvConsts, tuples).mkString("\n") - } - private def extract(e: Exp) = condOpt(e) { - case LetBinding(Sym(name), load @ Load(path, tp: RecordType, _), _) if TypeInference.isColumnStore(tp) => - val recordType = (load: @unchecked) match { case Load(_, recordType: RecordType, _) => recordType } - val skipCols: Set[String] = - (load: @unchecked) match { case Load(_, _, skipCols) => skipCols.toSkipColsSet } - (path, name, recordType, skipCols) - } - private def makeCsvConst(name: String, path: String, i: Int) = - // NaN handling for LSQB queries (different value in each table avoids joining them) - s"""const rapidcsv::Document ${name.toUpperCase}_CSV("../$path", NO_HEADERS, SEPARATOR, IntNanConverter($i));""" - private def makeTupleInit(name: String, recordType: RecordType, skipCols: Set[String]) = { - assert(recordType.attrs.last.name == "size") - val attrs = recordType.attrs - .dropRight(1) - .map(attr => (attr.tpe: @unchecked) match { case DictType(IntType, vt, Vec(None)) => Attribute(attr.name, vt) }) - val readCols = attrs.zipWithIndex.filter { case (attr, _) => !skipCols.contains(attr.name) }.map { - case (Attribute(attr_name, tpe), i) => - s"/* $attr_name */" ++ (tpe match { - case DateType => - s"dates_to_numerics(" + s"${name.toUpperCase}_CSV.GetColumn<${cppType(StringType())}>($i)" + ")" - case StringType(Some(maxLen)) => - s"strings_to_varchars<$maxLen>(" + s"${name.toUpperCase}_CSV.GetColumn<${cppType(StringType())}>($i)" + ")" - case _ => - s"${name.toUpperCase}_CSV.GetColumn<${cppType(tpe)}>($i)" - }) - } - val readSize = - if (skipCols.contains("size")) Seq() - else Seq(s"/* size */static_cast<${cppType(IntType)}>(${name.toUpperCase}_CSV.GetRowCount())") - (readCols ++ readSize).mkString(",\n") - } - private def iterExps(e: Exp): Iterator[Exp] = - Iterator(e) ++ (e match { - case Restage(cs, _) => cs.flatMap(iterExps) - }) - private def cppPrintResult(tpe: Type): String = tpe match { case DictType(kt, vt, _: PHmap) => s"""for (const auto &[key, val] : $resultName) { From 96cc6c8a526fb0825c9d8706d8864546a8db0b65 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:14:35 +0100 Subject: [PATCH 26/80] Added timer to SDQL programs --- progs/job/fj/10a.sdql | 2 ++ progs/job/fj/10c.sdql | 2 ++ progs/job/fj/11a.sdql | 2 ++ progs/job/fj/11b.sdql | 2 ++ progs/job/fj/11c.sdql | 2 ++ progs/job/fj/11d.sdql | 2 ++ progs/job/fj/12a.sdql | 2 ++ progs/job/fj/12b.sdql | 2 ++ progs/job/fj/12c.sdql | 2 ++ progs/job/fj/13a.sdql | 2 ++ progs/job/fj/13b.sdql | 2 ++ progs/job/fj/13c.sdql | 2 ++ progs/job/fj/13d.sdql | 2 ++ progs/job/fj/14a.sdql | 2 ++ progs/job/fj/14b.sdql | 2 ++ progs/job/fj/14c.sdql | 2 ++ progs/job/fj/15a.sdql | 2 ++ progs/job/fj/15b.sdql | 2 ++ progs/job/fj/15c.sdql | 2 ++ progs/job/fj/15d.sdql | 2 ++ progs/job/fj/16a.sdql | 2 ++ progs/job/fj/16b.sdql | 2 ++ progs/job/fj/16c.sdql | 2 ++ progs/job/fj/16d.sdql | 2 ++ progs/job/fj/17a.sdql | 2 ++ progs/job/fj/17b.sdql | 2 ++ progs/job/fj/17c.sdql | 2 ++ progs/job/fj/17d.sdql | 2 ++ progs/job/fj/17e.sdql | 2 ++ progs/job/fj/17f.sdql | 2 ++ progs/job/fj/18a.sdql | 2 ++ progs/job/fj/18b.sdql | 2 ++ progs/job/fj/18c.sdql | 2 ++ progs/job/fj/19a.sdql | 2 ++ progs/job/fj/19b.sdql | 2 ++ progs/job/fj/19c.sdql | 2 ++ progs/job/fj/19d.sdql | 2 ++ progs/job/fj/1a.sdql | 2 ++ progs/job/fj/1b.sdql | 2 ++ progs/job/fj/1c.sdql | 2 ++ progs/job/fj/1d.sdql | 2 ++ progs/job/fj/20a.sdql | 2 ++ progs/job/fj/20b.sdql | 2 ++ progs/job/fj/20c.sdql | 2 ++ progs/job/fj/21a.sdql | 2 ++ progs/job/fj/21b.sdql | 2 ++ progs/job/fj/21c.sdql | 2 ++ progs/job/fj/22a.sdql | 2 ++ progs/job/fj/22b.sdql | 2 ++ progs/job/fj/22c.sdql | 2 ++ progs/job/fj/22d.sdql | 2 ++ progs/job/fj/23a.sdql | 2 ++ progs/job/fj/23b.sdql | 2 ++ progs/job/fj/23c.sdql | 2 ++ progs/job/fj/24a.sdql | 2 ++ progs/job/fj/24b.sdql | 2 ++ progs/job/fj/25a.sdql | 2 ++ progs/job/fj/25b.sdql | 2 ++ progs/job/fj/25c.sdql | 2 ++ progs/job/fj/26a.sdql | 2 ++ progs/job/fj/26b.sdql | 2 ++ progs/job/fj/26c.sdql | 2 ++ progs/job/fj/27a.sdql | 2 ++ progs/job/fj/27b.sdql | 2 ++ progs/job/fj/27c.sdql | 2 ++ progs/job/fj/28a.sdql | 2 ++ progs/job/fj/28b.sdql | 2 ++ progs/job/fj/28c.sdql | 2 ++ progs/job/fj/29a.sdql | 2 ++ progs/job/fj/29b.sdql | 2 ++ progs/job/fj/29c.sdql | 2 ++ progs/job/fj/2a.sdql | 2 ++ progs/job/fj/2b.sdql | 2 ++ progs/job/fj/2d.sdql | 2 ++ progs/job/fj/30a.sdql | 2 ++ progs/job/fj/30b.sdql | 2 ++ progs/job/fj/30c.sdql | 2 ++ progs/job/fj/31a.sdql | 2 ++ progs/job/fj/31b.sdql | 2 ++ progs/job/fj/31c.sdql | 2 ++ progs/job/fj/32b.sdql | 2 ++ progs/job/fj/33a.sdql | 2 ++ progs/job/fj/33b.sdql | 2 ++ progs/job/fj/33c.sdql | 2 ++ progs/job/fj/3a.sdql | 2 ++ progs/job/fj/3b.sdql | 2 ++ progs/job/fj/3c.sdql | 2 ++ progs/job/fj/4a.sdql | 2 ++ progs/job/fj/4b.sdql | 2 ++ progs/job/fj/4c.sdql | 2 ++ progs/job/fj/5c.sdql | 2 ++ progs/job/fj/6a.sdql | 2 ++ progs/job/fj/6b.sdql | 2 ++ progs/job/fj/6c.sdql | 2 ++ progs/job/fj/6d.sdql | 2 ++ progs/job/fj/6e.sdql | 2 ++ progs/job/fj/6f.sdql | 2 ++ progs/job/fj/7a.sdql | 2 ++ progs/job/fj/7b.sdql | 2 ++ progs/job/fj/7c.sdql | 2 ++ progs/job/fj/8a.sdql | 2 ++ progs/job/fj/8b.sdql | 2 ++ progs/job/fj/8c.sdql | 2 ++ progs/job/fj/8d.sdql | 2 ++ progs/job/fj/9a.sdql | 2 ++ progs/job/fj/9b.sdql | 2 ++ progs/job/fj/9c.sdql | 2 ++ progs/job/fj/9d.sdql | 2 ++ progs/job/gj/10a.sdql | 2 ++ progs/job/gj/10c.sdql | 2 ++ progs/job/gj/11a.sdql | 2 ++ progs/job/gj/11b.sdql | 2 ++ progs/job/gj/11c.sdql | 2 ++ progs/job/gj/11d.sdql | 2 ++ progs/job/gj/12a.sdql | 2 ++ progs/job/gj/12b.sdql | 2 ++ progs/job/gj/12c.sdql | 2 ++ progs/job/gj/13a.sdql | 2 ++ progs/job/gj/13b.sdql | 2 ++ progs/job/gj/13c.sdql | 2 ++ progs/job/gj/13d.sdql | 2 ++ progs/job/gj/14a.sdql | 2 ++ progs/job/gj/14b.sdql | 2 ++ progs/job/gj/14c.sdql | 2 ++ progs/job/gj/15a.sdql | 2 ++ progs/job/gj/15b.sdql | 2 ++ progs/job/gj/15c.sdql | 2 ++ progs/job/gj/15d.sdql | 2 ++ progs/job/gj/16a.sdql | 2 ++ progs/job/gj/16b.sdql | 2 ++ progs/job/gj/16c.sdql | 2 ++ progs/job/gj/16d.sdql | 2 ++ progs/job/gj/17a.sdql | 2 ++ progs/job/gj/17b.sdql | 2 ++ progs/job/gj/17c.sdql | 2 ++ progs/job/gj/17d.sdql | 2 ++ progs/job/gj/17e.sdql | 2 ++ progs/job/gj/17f.sdql | 2 ++ progs/job/gj/18a.sdql | 2 ++ progs/job/gj/18b.sdql | 2 ++ progs/job/gj/18c.sdql | 2 ++ progs/job/gj/19a.sdql | 2 ++ progs/job/gj/19b.sdql | 2 ++ progs/job/gj/19c.sdql | 2 ++ progs/job/gj/19d.sdql | 2 ++ progs/job/gj/1a.sdql | 2 ++ progs/job/gj/1b.sdql | 2 ++ progs/job/gj/1c.sdql | 2 ++ progs/job/gj/1d.sdql | 2 ++ progs/job/gj/20a.sdql | 2 ++ progs/job/gj/20b.sdql | 2 ++ progs/job/gj/20c.sdql | 2 ++ progs/job/gj/21a.sdql | 2 ++ progs/job/gj/21b.sdql | 2 ++ progs/job/gj/21c.sdql | 2 ++ progs/job/gj/22a.sdql | 2 ++ progs/job/gj/22b.sdql | 2 ++ progs/job/gj/22c.sdql | 2 ++ progs/job/gj/22d.sdql | 2 ++ progs/job/gj/23a.sdql | 2 ++ progs/job/gj/23b.sdql | 2 ++ progs/job/gj/23c.sdql | 2 ++ progs/job/gj/24a.sdql | 2 ++ progs/job/gj/24b.sdql | 2 ++ progs/job/gj/25a.sdql | 2 ++ progs/job/gj/25b.sdql | 2 ++ progs/job/gj/25c.sdql | 2 ++ progs/job/gj/26a.sdql | 2 ++ progs/job/gj/26b.sdql | 2 ++ progs/job/gj/26c.sdql | 2 ++ progs/job/gj/27a.sdql | 2 ++ progs/job/gj/27b.sdql | 2 ++ progs/job/gj/27c.sdql | 2 ++ progs/job/gj/28a.sdql | 2 ++ progs/job/gj/28b.sdql | 2 ++ progs/job/gj/28c.sdql | 2 ++ progs/job/gj/29a.sdql | 2 ++ progs/job/gj/29b.sdql | 2 ++ progs/job/gj/29c.sdql | 2 ++ progs/job/gj/2a.sdql | 2 ++ progs/job/gj/2b.sdql | 2 ++ progs/job/gj/2d.sdql | 2 ++ progs/job/gj/30a.sdql | 2 ++ progs/job/gj/30b.sdql | 2 ++ progs/job/gj/30c.sdql | 2 ++ progs/job/gj/31a.sdql | 2 ++ progs/job/gj/31b.sdql | 2 ++ progs/job/gj/31c.sdql | 2 ++ progs/job/gj/32b.sdql | 2 ++ progs/job/gj/33a.sdql | 2 ++ progs/job/gj/33b.sdql | 2 ++ progs/job/gj/33c.sdql | 2 ++ progs/job/gj/3a.sdql | 2 ++ progs/job/gj/3b.sdql | 2 ++ progs/job/gj/3c.sdql | 2 ++ progs/job/gj/4a.sdql | 2 ++ progs/job/gj/4b.sdql | 2 ++ progs/job/gj/4c.sdql | 2 ++ progs/job/gj/5c.sdql | 2 ++ progs/job/gj/6a.sdql | 2 ++ progs/job/gj/6b.sdql | 2 ++ progs/job/gj/6c.sdql | 2 ++ progs/job/gj/6d.sdql | 2 ++ progs/job/gj/6e.sdql | 2 ++ progs/job/gj/6f.sdql | 2 ++ progs/job/gj/7a.sdql | 2 ++ progs/job/gj/7b.sdql | 2 ++ progs/job/gj/7c.sdql | 2 ++ progs/job/gj/8a.sdql | 2 ++ progs/job/gj/8b.sdql | 2 ++ progs/job/gj/8c.sdql | 2 ++ progs/job/gj/8d.sdql | 2 ++ progs/job/gj/9a.sdql | 2 ++ progs/job/gj/9b.sdql | 2 ++ progs/job/gj/9c.sdql | 2 ++ progs/job/gj/9d.sdql | 2 ++ progs/tpch/q1.sdql | 2 ++ progs/tpch/q10.sdql | 5 ++--- progs/tpch/q11.sdql | 4 ++-- progs/tpch/q12.sdql | 3 ++- progs/tpch/q13.sdql | 3 ++- progs/tpch/q14.sdql | 3 ++- progs/tpch/q15.sdql | 3 ++- progs/tpch/q16.sdql | 4 ++-- progs/tpch/q17.sdql | 3 ++- progs/tpch/q18.sdql | 4 ++-- progs/tpch/q19.sdql | 3 ++- progs/tpch/q2.sdql | 6 ++---- progs/tpch/q20.sdql | 6 ++---- progs/tpch/q21.sdql | 5 ++--- progs/tpch/q22.sdql | 3 ++- progs/tpch/q3.sdql | 4 ++-- progs/tpch/q4.sdql | 3 ++- progs/tpch/q5.sdql | 8 ++------ progs/tpch/q6.sdql | 2 ++ progs/tpch/q7.sdql | 6 ++---- progs/tpch/q8.sdql | 8 ++------ progs/tpch/q9.sdql | 7 ++----- 238 files changed, 476 insertions(+), 51 deletions(-) diff --git a/progs/job/fj/10a.sdql b/progs/job/fj/10a.sdql index d324d6d3..a32844dc 100644 --- a/progs/job/fj/10a.sdql +++ b/progs/job/fj/10a.sdql @@ -6,6 +6,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let ct_trie0 = sum( <- range(ct.size)) @phmap(ct.size) { unique(ct.id(i)) -> 1 } in let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/10c.sdql b/progs/job/fj/10c.sdql index 146d3812..e63621d5 100644 --- a/progs/job/fj/10c.sdql +++ b/progs/job/fj/10c.sdql @@ -6,6 +6,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/role_type.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let ct_trie0 = sum( <- range(ct.size)) @phmap(ct.size) { unique(ct.id(i)) -> 1 } in let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/11a.sdql b/progs/job/fj/11a.sdql index f99c2dea..458b63cd 100644 --- a/progs/job/fj/11a.sdql +++ b/progs/job/fj/11a.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/11b.sdql b/progs/job/fj/11b.sdql index cb2cbf5f..19c06872 100644 --- a/progs/job/fj/11b.sdql +++ b/progs/job/fj/11b.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/11c.sdql b/progs/job/fj/11c.sdql index 085fb733..14db2d61 100644 --- a/progs/job/fj/11c.sdql +++ b/progs/job/fj/11c.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/11d.sdql b/progs/job/fj/11d.sdql index ec3d9b3a..34c41664 100644 --- a/progs/job/fj/11d.sdql +++ b/progs/job/fj/11d.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11d/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/12a.sdql b/progs/job/fj/12a.sdql index 6bb38899..024e53de 100644 --- a/progs/job/fj/12a.sdql +++ b/progs/job/fj/12a.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/cn.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/12b.sdql b/progs/job/fj/12b.sdql index 0ab2d769..1b109593 100644 --- a/progs/job/fj/12b.sdql +++ b/progs/job/fj/12b.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/cn.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/12c.sdql b/progs/job/fj/12c.sdql index c4eadbe6..b40b5d0e 100644 --- a/progs/job/fj/12c.sdql +++ b/progs/job/fj/12c.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/cn.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/13a.sdql b/progs/job/fj/13a.sdql index d93b3be1..b0b77be3 100644 --- a/progs/job/fj/13a.sdql +++ b/progs/job/fj/13a.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +timer + let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/13b.sdql b/progs/job/fj/13b.sdql index cb41827f..6a9bbd8f 100644 --- a/progs/job/fj/13b.sdql +++ b/progs/job/fj/13b.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/cn.csv") +timer + let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/13c.sdql b/progs/job/fj/13c.sdql index b412b219..37d8bcb3 100644 --- a/progs/job/fj/13c.sdql +++ b/progs/job/fj/13c.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/cn.csv") +timer + let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/13d.sdql b/progs/job/fj/13d.sdql index 2f0a1865..e7fd16b0 100644 --- a/progs/job/fj/13d.sdql +++ b/progs/job/fj/13d.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13d/cn.csv") +timer + let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/14a.sdql b/progs/job/fj/14a.sdql index b4fb3571..93aea760 100644 --- a/progs/job/fj/14a.sdql +++ b/progs/job/fj/14a.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/14b.sdql b/progs/job/fj/14b.sdql index 81453ceb..d6a661cb 100644 --- a/progs/job/fj/14b.sdql +++ b/progs/job/fj/14b.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/14c.sdql b/progs/job/fj/14c.sdql index 1367dbe7..01c6e23b 100644 --- a/progs/job/fj/14c.sdql +++ b/progs/job/fj/14c.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/15a.sdql b/progs/job/fj/15a.sdql index f4352cfc..fe3258ed 100644 --- a/progs/job/fj/15a.sdql +++ b/progs/job/fj/15a.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/15b.sdql b/progs/job/fj/15b.sdql index 03a980ae..3d7a0d72 100644 --- a/progs/job/fj/15b.sdql +++ b/progs/job/fj/15b.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/15c.sdql b/progs/job/fj/15c.sdql index 82bc53b6..253477e5 100644 --- a/progs/job/fj/15c.sdql +++ b/progs/job/fj/15c.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/15d.sdql b/progs/job/fj/15d.sdql index 81b7a41a..9b93f258 100644 --- a/progs/job/fj/15d.sdql +++ b/progs/job/fj/15d.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/16a.sdql b/progs/job/fj/16a.sdql index 425a7033..17ceabf7 100644 --- a/progs/job/fj/16a.sdql +++ b/progs/job/fj/16a.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/16b.sdql b/progs/job/fj/16b.sdql index bc4113da..1d69a573 100644 --- a/progs/job/fj/16b.sdql +++ b/progs/job/fj/16b.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/16c.sdql b/progs/job/fj/16c.sdql index 01d57e86..89495bc0 100644 --- a/progs/job/fj/16c.sdql +++ b/progs/job/fj/16c.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/16d.sdql b/progs/job/fj/16d.sdql index 3cc23882..00876a06 100644 --- a/progs/job/fj/16d.sdql +++ b/progs/job/fj/16d.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17a.sdql b/progs/job/fj/17a.sdql index bdd22262..b71a596a 100644 --- a/progs/job/fj/17a.sdql +++ b/progs/job/fj/17a.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17b.sdql b/progs/job/fj/17b.sdql index cd78fa10..224633c7 100644 --- a/progs/job/fj/17b.sdql +++ b/progs/job/fj/17b.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17c.sdql b/progs/job/fj/17c.sdql index 648e3cbc..0aa39e87 100644 --- a/progs/job/fj/17c.sdql +++ b/progs/job/fj/17c.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17c/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17d.sdql b/progs/job/fj/17d.sdql index e98bc776..b3c946f7 100644 --- a/progs/job/fj/17d.sdql +++ b/progs/job/fj/17d.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17d/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17e.sdql b/progs/job/fj/17e.sdql index 24efb6f9..d7cdd961 100644 --- a/progs/job/fj/17e.sdql +++ b/progs/job/fj/17e.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/17f.sdql b/progs/job/fj/17f.sdql index ce06f8ec..b117fe59 100644 --- a/progs/job/fj/17f.sdql +++ b/progs/job/fj/17f.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17f/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { unique(t.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/18a.sdql b/progs/job/fj/18a.sdql index 4faba209..77be62d6 100644 --- a/progs/job/fj/18a.sdql +++ b/progs/job/fj/18a.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18a/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/18b.sdql b/progs/job/fj/18b.sdql index 7f42723a..051cce86 100644 --- a/progs/job/fj/18b.sdql +++ b/progs/job/fj/18b.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/18c.sdql b/progs/job/fj/18c.sdql index 37d2aad6..f4f4d9dc 100644 --- a/progs/job/fj/18c.sdql +++ b/progs/job/fj/18c.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18c/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/19a.sdql b/progs/job/fj/19a.sdql index c1b0a6a4..d9225e0f 100644 --- a/progs/job/fj/19a.sdql +++ b/progs/job/fj/19a.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19a/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/19b.sdql b/progs/job/fj/19b.sdql index 5940f3a6..df3bbe5f 100644 --- a/progs/job/fj/19b.sdql +++ b/progs/job/fj/19b.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19b/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/19c.sdql b/progs/job/fj/19c.sdql index 5a601cbe..c611b0f7 100644 --- a/progs/job/fj/19c.sdql +++ b/progs/job/fj/19c.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19c/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/19d.sdql b/progs/job/fj/19d.sdql index 6e0bc638..44d12a1d 100644 --- a/progs/job/fj/19d.sdql +++ b/progs/job/fj/19d.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19d/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/1a.sdql b/progs/job/fj/1a.sdql index 39bc5247..991cd130 100644 --- a/progs/job/fj/1a.sdql +++ b/progs/job/fj/1a.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1a/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1a/ct.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/1b.sdql b/progs/job/fj/1b.sdql index ad0d2cb0..33fca25b 100644 --- a/progs/job/fj/1b.sdql +++ b/progs/job/fj/1b.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1b/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1b/ct.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/1c.sdql b/progs/job/fj/1c.sdql index 20f8140e..b7e6b668 100644 --- a/progs/job/fj/1c.sdql +++ b/progs/job/fj/1c.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1c/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1c/ct.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/1d.sdql b/progs/job/fj/1d.sdql index e5e31d1c..968b4572 100644 --- a/progs/job/fj/1d.sdql +++ b/progs/job/fj/1d.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1d/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1d/ct.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/20a.sdql b/progs/job/fj/20a.sdql index 03c93fa3..555600bd 100644 --- a/progs/job/fj/20a.sdql +++ b/progs/job/fj/20a.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/20b.sdql b/progs/job/fj/20b.sdql index 5b0788eb..d7ea127e 100644 --- a/progs/job/fj/20b.sdql +++ b/progs/job/fj/20b.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/n.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/20c.sdql b/progs/job/fj/20c.sdql index 0d408c79..6e010a60 100644 --- a/progs/job/fj/20c.sdql +++ b/progs/job/fj/20c.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/21a.sdql b/progs/job/fj/21a.sdql index a47e96cb..fa740a75 100644 --- a/progs/job/fj/21a.sdql +++ b/progs/job/fj/21a.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/21b.sdql b/progs/job/fj/21b.sdql index eab27623..1a3267e0 100644 --- a/progs/job/fj/21b.sdql +++ b/progs/job/fj/21b.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/21c.sdql b/progs/job/fj/21c.sdql index c8b501d6..b13a460c 100644 --- a/progs/job/fj/21c.sdql +++ b/progs/job/fj/21c.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/cn.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t.size)) let x0 = t.id(t_off) in diff --git a/progs/job/fj/22a.sdql b/progs/job/fj/22a.sdql index 896edff9..f930e2f4 100644 --- a/progs/job/fj/22a.sdql +++ b/progs/job/fj/22a.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it1.csv") +timer + let kt_trie0 = sum( <- range(kt.size)) @phmap(kt.size) { unique(kt.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let it2_trie0 = sum( <- range(it2.size)) @phmap(it2.size) { unique(it2.id(i)) -> 1 } in diff --git a/progs/job/fj/22b.sdql b/progs/job/fj/22b.sdql index 672e74c6..f6b071f4 100644 --- a/progs/job/fj/22b.sdql +++ b/progs/job/fj/22b.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it1.csv") +timer + let kt_trie0 = sum( <- range(kt.size)) @phmap(kt.size) { unique(kt.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let it2_trie0 = sum( <- range(it2.size)) @phmap(it2.size) { unique(it2.id(i)) -> 1 } in diff --git a/progs/job/fj/22c.sdql b/progs/job/fj/22c.sdql index a0f8fb76..520763b5 100644 --- a/progs/job/fj/22c.sdql +++ b/progs/job/fj/22c.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it1.csv") +timer + let kt_trie0 = sum( <- range(kt.size)) @phmap(kt.size) { unique(kt.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let it2_trie0 = sum( <- range(it2.size)) @phmap(it2.size) { unique(it2.id(i)) -> 1 } in diff --git a/progs/job/fj/22d.sdql b/progs/job/fj/22d.sdql index 7a6038ab..a614810e 100644 --- a/progs/job/fj/22d.sdql +++ b/progs/job/fj/22d.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it1.csv") +timer + let kt_trie0 = sum( <- range(kt.size)) @phmap(kt.size) { unique(kt.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let it2_trie0 = sum( <- range(it2.size)) @phmap(it2.size) { unique(it2.id(i)) -> 1 } in diff --git a/progs/job/fj/23a.sdql b/progs/job/fj/23a.sdql index 1e4fb8a3..b7ad829b 100644 --- a/progs/job/fj/23a.sdql +++ b/progs/job/fj/23a.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23a/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) let x0 = cc.status_id(cc_off) in diff --git a/progs/job/fj/23b.sdql b/progs/job/fj/23b.sdql index 525ed41d..48a30b98 100644 --- a/progs/job/fj/23b.sdql +++ b/progs/job/fj/23b.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23b/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) let x0 = cc.status_id(cc_off) in diff --git a/progs/job/fj/23c.sdql b/progs/job/fj/23c.sdql index c0601d1d..7fdd048d 100644 --- a/progs/job/fj/23c.sdql +++ b/progs/job/fj/23c.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23c/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) let x0 = cc.status_id(cc_off) in diff --git a/progs/job/fj/24a.sdql b/progs/job/fj/24a.sdql index 3b2f5186..58cc95c9 100644 --- a/progs/job/fj/24a.sdql +++ b/progs/job/fj/24a.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24a/rt.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/24b.sdql b/progs/job/fj/24b.sdql index a57165cc..83d0979d 100644 --- a/progs/job/fj/24b.sdql +++ b/progs/job/fj/24b.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24b/rt.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/25a.sdql b/progs/job/fj/25a.sdql index 47d9b7f3..ad08d455 100644 --- a/progs/job/fj/25a.sdql +++ b/progs/job/fj/25a.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25a/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/25b.sdql b/progs/job/fj/25b.sdql index 16f09b36..798d043d 100644 --- a/progs/job/fj/25b.sdql +++ b/progs/job/fj/25b.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/n.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/25c.sdql b/progs/job/fj/25c.sdql index 2511af83..900f6d37 100644 --- a/progs/job/fj/25c.sdql +++ b/progs/job/fj/25c.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25c/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/26a.sdql b/progs/job/fj/26a.sdql index 8d41f320..45fcace8 100644 --- a/progs/job/fj/26a.sdql +++ b/progs/job/fj/26a.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/26b.sdql b/progs/job/fj/26b.sdql index 389d7c81..c051553d 100644 --- a/progs/job/fj/26b.sdql +++ b/progs/job/fj/26b.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/26c.sdql b/progs/job/fj/26c.sdql index a32256a9..6562269b 100644 --- a/progs/job/fj/26c.sdql +++ b/progs/job/fj/26c.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/chn.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/27a.sdql b/progs/job/fj/27a.sdql index 7d62bde2..b8f82b3a 100644 --- a/progs/job/fj/27a.sdql +++ b/progs/job/fj/27a.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27a/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mi.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/27b.sdql b/progs/job/fj/27b.sdql index 87519a3f..a673b39c 100644 --- a/progs/job/fj/27b.sdql +++ b/progs/job/fj/27b.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27b/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mi.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/27c.sdql b/progs/job/fj/27c.sdql index dd0eb991..4f22ce29 100644 --- a/progs/job/fj/27c.sdql +++ b/progs/job/fj/27c.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27c/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mi.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/28a.sdql b/progs/job/fj/28a.sdql index 02adfef5..5cb9245e 100644 --- a/progs/job/fj/28a.sdql +++ b/progs/job/fj/28a.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/28b.sdql b/progs/job/fj/28b.sdql index 9cddf901..f36e6056 100644 --- a/progs/job/fj/28b.sdql +++ b/progs/job/fj/28b.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/28c.sdql b/progs/job/fj/28c.sdql index d57a028a..cb45d787 100644 --- a/progs/job/fj/28c.sdql +++ b/progs/job/fj/28c.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it1.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/29a.sdql b/progs/job/fj/29a.sdql index cb8d71f6..67cdcf6d 100644 --- a/progs/job/fj/29a.sdql +++ b/progs/job/fj/29a.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/chn.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29a/rt.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/29b.sdql b/progs/job/fj/29b.sdql index c9ede857..8345ba28 100644 --- a/progs/job/fj/29b.sdql +++ b/progs/job/fj/29b.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/chn.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29b/rt.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/29c.sdql b/progs/job/fj/29c.sdql index 1849a8aa..e04ecfa0 100644 --- a/progs/job/fj/29c.sdql +++ b/progs/job/fj/29c.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29c/rt.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/2a.sdql b/progs/job/fj/2a.sdql index 70781793..43117e88 100644 --- a/progs/job/fj/2a.sdql +++ b/progs/job/fj/2a.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2a/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2a/cn.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/2b.sdql b/progs/job/fj/2b.sdql index 611aa871..3d092df5 100644 --- a/progs/job/fj/2b.sdql +++ b/progs/job/fj/2b.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2b/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2b/cn.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/2d.sdql b/progs/job/fj/2d.sdql index 09b5640d..5d167069 100644 --- a/progs/job/fj/2d.sdql +++ b/progs/job/fj/2d.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2d/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2d/cn.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/30a.sdql b/progs/job/fj/30a.sdql index 5ff1e3c4..4bff486a 100644 --- a/progs/job/fj/30a.sdql +++ b/progs/job/fj/30a.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/n.csv") +timer + let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/30b.sdql b/progs/job/fj/30b.sdql index f56bee1f..d4fad52e 100644 --- a/progs/job/fj/30b.sdql +++ b/progs/job/fj/30b.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/n.csv") +timer + let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/30c.sdql b/progs/job/fj/30c.sdql index a993f089..55e3c374 100644 --- a/progs/job/fj/30c.sdql +++ b/progs/job/fj/30c.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30c/n.csv") +timer + let cct1_trie0 = sum( <- range(cct1.size)) @phmap(cct1.size) { unique(cct1.id(i)) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) @phmap(cct2.size) { unique(cct2.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(cc.size)) diff --git a/progs/job/fj/31a.sdql b/progs/job/fj/31a.sdql index a3381172..7354019c 100644 --- a/progs/job/fj/31a.sdql +++ b/progs/job/fj/31a.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/n.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/31b.sdql b/progs/job/fj/31b.sdql index 3d7b286f..896ba0ed 100644 --- a/progs/job/fj/31b.sdql +++ b/progs/job/fj/31b.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/n.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/31c.sdql b/progs/job/fj/31c.sdql index da4688fa..3f9bb7ed 100644 --- a/progs/job/fj/31c.sdql +++ b/progs/job/fj/31c.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/32b.sdql b/progs/job/fj/32b.sdql index 57349d93..fff6fb04 100644 --- a/progs/job/fj/32b.sdql +++ b/progs/job/fj/32b.sdql @@ -5,6 +5,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32b/k.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t2_trie0 = sum( <- range(t2.size)) @phmap(t2.size) { t2.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(t1.size)) diff --git a/progs/job/fj/33a.sdql b/progs/job/fj/33a.sdql index 6692ef2c..ccd467bd 100644 --- a/progs/job/fj/33a.sdql +++ b/progs/job/fj/33a.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { unique(lt.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/33b.sdql b/progs/job/fj/33b.sdql index a5900802..6e7ec66d 100644 --- a/progs/job/fj/33b.sdql +++ b/progs/job/fj/33b.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { unique(lt.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/33c.sdql b/progs/job/fj/33c.sdql index e33839a4..a881f098 100644 --- a/progs/job/fj/33c.sdql +++ b/progs/job/fj/33c.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { unique(lt.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(ml.size)) let x0 = ml.link_type_id(ml_off) in diff --git a/progs/job/fj/3a.sdql b/progs/job/fj/3a.sdql index bcae57d1..b010a3c2 100644 --- a/progs/job/fj/3a.sdql +++ b/progs/job/fj/3a.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/3b.sdql b/progs/job/fj/3b.sdql index 7a9e568a..15ee9722 100644 --- a/progs/job/fj/3b.sdql +++ b/progs/job/fj/3b.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/3c.sdql b/progs/job/fj/3c.sdql index 440bdfce..6be9b8f5 100644 --- a/progs/job/fj/3c.sdql +++ b/progs/job/fj/3c.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3c/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3c/k.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) let x0 = mk.movie_id(mk_off) in diff --git a/progs/job/fj/4a.sdql b/progs/job/fj/4a.sdql index 9fa118ad..57747430 100644 --- a/progs/job/fj/4a.sdql +++ b/progs/job/fj/4a.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4a/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4a/it.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/4b.sdql b/progs/job/fj/4b.sdql index 8a7da0c5..b07fb097 100644 --- a/progs/job/fj/4b.sdql +++ b/progs/job/fj/4b.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4b/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4b/it.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/4c.sdql b/progs/job/fj/4c.sdql index 4927f6cb..d0677129 100644 --- a/progs/job/fj/4c.sdql +++ b/progs/job/fj/4c.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4c/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4c/it.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/5c.sdql b/progs/job/fj/5c.sdql index e70b399a..068b2e8b 100644 --- a/progs/job/fj/5c.sdql +++ b/progs/job/fj/5c.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/info_type.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/5c/ct.csv") +timer + let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/fj/6a.sdql b/progs/job/fj/6a.sdql index 3e4866a0..93348950 100644 --- a/progs/job/fj/6a.sdql +++ b/progs/job/fj/6a.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/6b.sdql b/progs/job/fj/6b.sdql index a3c8fc22..0d25cef2 100644 --- a/progs/job/fj/6b.sdql +++ b/progs/job/fj/6b.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/6c.sdql b/progs/job/fj/6c.sdql index 5721e83b..39ebdf73 100644 --- a/progs/job/fj/6c.sdql +++ b/progs/job/fj/6c.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/6d.sdql b/progs/job/fj/6d.sdql index 7e742423..c8b95c0a 100644 --- a/progs/job/fj/6d.sdql +++ b/progs/job/fj/6d.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/6e.sdql b/progs/job/fj/6e.sdql index fec3ce90..31e2452c 100644 --- a/progs/job/fj/6e.sdql +++ b/progs/job/fj/6e.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/n.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/6f.sdql b/progs/job/fj/6f.sdql index 289a9ac0..2aa234ae 100644 --- a/progs/job/fj/6f.sdql +++ b/progs/job/fj/6f.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) diff --git a/progs/job/fj/7a.sdql b/progs/job/fj/7a.sdql index 33330863..525619e9 100644 --- a/progs/job/fj/7a.sdql +++ b/progs/job/fj/7a.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/an.csv") +timer + let pi_trie0 = sum( <- range(pi.size)) @phmap(pi.size) { pi.person_id(i) -> @smallvecdict(4) { i -> 1 } } in let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(n.size)) diff --git a/progs/job/fj/7b.sdql b/progs/job/fj/7b.sdql index 18f17a16..2c9c5242 100644 --- a/progs/job/fj/7b.sdql +++ b/progs/job/fj/7b.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/an.csv") +timer + let pi_trie0 = sum( <- range(pi.size)) @phmap(pi.size) { pi.person_id(i) -> @smallvecdict(4) { i -> 1 } } in let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(n.size)) diff --git a/progs/job/fj/7c.sdql b/progs/job/fj/7c.sdql index a135c01a..89c35ff8 100644 --- a/progs/job/fj/7c.sdql +++ b/progs/job/fj/7c.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/an.csv") +timer + let pi_trie0 = sum( <- range(pi.size)) @phmap(pi.size) { pi.person_id(i) -> @smallvecdict(4) { i -> 1 } } in let it_trie0 = sum( <- range(it.size)) @phmap(it.size) { unique(it.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(n.size)) diff --git a/progs/job/fj/8a.sdql b/progs/job/fj/8a.sdql index 2c02fb0e..0cd156e5 100644 --- a/progs/job/fj/8a.sdql +++ b/progs/job/fj/8a.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/8b.sdql b/progs/job/fj/8b.sdql index 7ef96bcb..468c4664 100644 --- a/progs/job/fj/8b.sdql +++ b/progs/job/fj/8b.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/t.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/8c.sdql b/progs/job/fj/8c.sdql index 7e8d86ec..0350bbdb 100644 --- a/progs/job/fj/8c.sdql +++ b/progs/job/fj/8c.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let a1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/8d.sdql b/progs/job/fj/8d.sdql index d1eb182f..ca1f7f47 100644 --- a/progs/job/fj/8d.sdql +++ b/progs/job/fj/8d.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/9a.sdql b/progs/job/fj/9a.sdql index 7dd702e3..ab3c3127 100644 --- a/progs/job/fj/9a.sdql +++ b/progs/job/fj/9a.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/9b.sdql b/progs/job/fj/9b.sdql index 78f75086..764b2841 100644 --- a/progs/job/fj/9b.sdql +++ b/progs/job/fj/9b.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/9c.sdql b/progs/job/fj/9c.sdql index 7fbf2a11..bb1b6cc9 100644 --- a/progs/job/fj/9c.sdql +++ b/progs/job/fj/9c.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/fj/9d.sdql b/progs/job/fj/9d.sdql index c0ebbdca..62994fec 100644 --- a/progs/job/fj/9d.sdql +++ b/progs/job/fj/9d.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in let interm0_trie0 = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in diff --git a/progs/job/gj/10a.sdql b/progs/job/gj/10a.sdql index 2b140e03..5310b468 100644 --- a/progs/job/gj/10a.sdql +++ b/progs/job/gj/10a.sdql @@ -6,6 +6,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_type_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ct_trie0 = sum( <- range(ct.size)) { ct.id(i) -> 1 } in diff --git a/progs/job/gj/10c.sdql b/progs/job/gj/10c.sdql index f6e4c9a6..7f4f31ad 100644 --- a/progs/job/gj/10c.sdql +++ b/progs/job/gj/10c.sdql @@ -6,6 +6,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/role_type.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_type_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ct_trie0 = sum( <- range(ct.size)) { ct.id(i) -> 1 } in diff --git a/progs/job/gj/11a.sdql b/progs/job/gj/11a.sdql index 7f7d494c..ad30492d 100644 --- a/progs/job/gj/11a.sdql +++ b/progs/job/gj/11a.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/11b.sdql b/progs/job/gj/11b.sdql index 150383a2..100f30aa 100644 --- a/progs/job/gj/11b.sdql +++ b/progs/job/gj/11b.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/11c.sdql b/progs/job/gj/11c.sdql index 42085508..4aff4e3b 100644 --- a/progs/job/gj/11c.sdql +++ b/progs/job/gj/11c.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/11d.sdql b/progs/job/gj/11d.sdql index 9c9141d2..a9704bab 100644 --- a/progs/job/gj/11d.sdql +++ b/progs/job/gj/11d.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11d/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/12a.sdql b/progs/job/gj/12a.sdql index 89a20010..312ce60c 100644 --- a/progs/job/gj/12a.sdql +++ b/progs/job/gj/12a.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/12b.sdql b/progs/job/gj/12b.sdql index 44f72fd8..71018a08 100644 --- a/progs/job/gj/12b.sdql +++ b/progs/job/gj/12b.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/12c.sdql b/progs/job/gj/12c.sdql index 82c7668f..de07ebe2 100644 --- a/progs/job/gj/12c.sdql +++ b/progs/job/gj/12c.sdql @@ -7,6 +7,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/13a.sdql b/progs/job/gj/13a.sdql index 83b88492..70d47450 100644 --- a/progs/job/gj/13a.sdql +++ b/progs/job/gj/13a.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/13b.sdql b/progs/job/gj/13b.sdql index 599d62bc..0d9e2246 100644 --- a/progs/job/gj/13b.sdql +++ b/progs/job/gj/13b.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/13c.sdql b/progs/job/gj/13c.sdql index 8c4f57a4..54a6fe74 100644 --- a/progs/job/gj/13c.sdql +++ b/progs/job/gj/13c.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/13d.sdql b/progs/job/gj/13d.sdql index 8ef0b6d9..a987fdd5 100644 --- a/progs/job/gj/13d.sdql +++ b/progs/job/gj/13d.sdql @@ -8,6 +8,8 @@ let it = load[ int}, info: @vec {int -> string}, size: int>]("d let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13d/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let miidx_trie0 = sum( <- range(miidx.size)) @phmap(miidx.size) { miidx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/14a.sdql b/progs/job/gj/14a.sdql index d52e20e4..a788265c 100644 --- a/progs/job/gj/14a.sdql +++ b/progs/job/gj/14a.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/14b.sdql b/progs/job/gj/14b.sdql index 297156a4..4fbd21fd 100644 --- a/progs/job/gj/14b.sdql +++ b/progs/job/gj/14b.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it1.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/14c.sdql b/progs/job/gj/14c.sdql index cbd14b06..fc350df6 100644 --- a/progs/job/gj/14c.sdql +++ b/progs/job/gj/14c.sdql @@ -7,6 +7,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it2.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it1.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/15a.sdql b/progs/job/gj/15a.sdql index 386b9558..85712118 100644 --- a/progs/job/gj/15a.sdql +++ b/progs/job/gj/15a.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/15b.sdql b/progs/job/gj/15b.sdql index b8625300..6f158d2b 100644 --- a/progs/job/gj/15b.sdql +++ b/progs/job/gj/15b.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/15c.sdql b/progs/job/gj/15c.sdql index 641ef84f..c6581033 100644 --- a/progs/job/gj/15c.sdql +++ b/progs/job/gj/15c.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/15d.sdql b/progs/job/gj/15d.sdql index 9bd48a44..704b5ec5 100644 --- a/progs/job/gj/15d.sdql +++ b/progs/job/gj/15d.sdql @@ -8,6 +8,8 @@ let ct = load[ int}, kind: @vec {int -> string}, size: int>]("d let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/cn.csv") let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/16a.sdql b/progs/job/gj/16a.sdql index d9aa6a13..d89966cf 100644 --- a/progs/job/gj/16a.sdql +++ b/progs/job/gj/16a.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/16b.sdql b/progs/job/gj/16b.sdql index 70903fd3..eaa72853 100644 --- a/progs/job/gj/16b.sdql +++ b/progs/job/gj/16b.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/16c.sdql b/progs/job/gj/16c.sdql index 1660e1f1..d5787acb 100644 --- a/progs/job/gj/16c.sdql +++ b/progs/job/gj/16c.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/16d.sdql b/progs/job/gj/16d.sdql index d80ce743..ee8c5e9f 100644 --- a/progs/job/gj/16d.sdql +++ b/progs/job/gj/16d.sdql @@ -7,6 +7,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17a.sdql b/progs/job/gj/17a.sdql index c685edfe..91a18388 100644 --- a/progs/job/gj/17a.sdql +++ b/progs/job/gj/17a.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17b.sdql b/progs/job/gj/17b.sdql index 06a6c3eb..62320db3 100644 --- a/progs/job/gj/17b.sdql +++ b/progs/job/gj/17b.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17c.sdql b/progs/job/gj/17c.sdql index 6a890875..5fbddf5a 100644 --- a/progs/job/gj/17c.sdql +++ b/progs/job/gj/17c.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17c/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17d.sdql b/progs/job/gj/17d.sdql index cfe3c52f..1009d507 100644 --- a/progs/job/gj/17d.sdql +++ b/progs/job/gj/17d.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17d/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17e.sdql b/progs/job/gj/17e.sdql index 86950d9c..753aca7b 100644 --- a/progs/job/gj/17e.sdql +++ b/progs/job/gj/17e.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/17f.sdql b/progs/job/gj/17f.sdql index 5f00f650..59104d99 100644 --- a/progs/job/gj/17f.sdql +++ b/progs/job/gj/17f.sdql @@ -6,6 +6,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17f/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) { t.id(i) -> 1 } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/18a.sdql b/progs/job/gj/18a.sdql index 2aeecdd9..4616fa40 100644 --- a/progs/job/gj/18a.sdql +++ b/progs/job/gj/18a.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18a/n.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/18b.sdql b/progs/job/gj/18b.sdql index 46b7fefc..24b72e05 100644 --- a/progs/job/gj/18b.sdql +++ b/progs/job/gj/18b.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/n.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/18c.sdql b/progs/job/gj/18c.sdql index dfed3fd8..5cffbdcd 100644 --- a/progs/job/gj/18c.sdql +++ b/progs/job/gj/18c.sdql @@ -6,6 +6,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18c/n.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/19a.sdql b/progs/job/gj/19a.sdql index f6dfb145..e4955c1a 100644 --- a/progs/job/gj/19a.sdql +++ b/progs/job/gj/19a.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19a/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(i) -> { mi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/19b.sdql b/progs/job/gj/19b.sdql index 8b54e0eb..b54b8f1a 100644 --- a/progs/job/gj/19b.sdql +++ b/progs/job/gj/19b.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19b/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(i) -> { mi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/19c.sdql b/progs/job/gj/19c.sdql index 467789d5..73380292 100644 --- a/progs/job/gj/19c.sdql +++ b/progs/job/gj/19c.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19c/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(i) -> { mi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/19d.sdql b/progs/job/gj/19d.sdql index 6b91dfa1..f48c9c8c 100644 --- a/progs/job/gj/19d.sdql +++ b/progs/job/gj/19d.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19d/rt.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +timer + let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(i) -> { mi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/1a.sdql b/progs/job/gj/1a.sdql index 2059b6c6..230a23d0 100644 --- a/progs/job/gj/1a.sdql +++ b/progs/job/gj/1a.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1a/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1a/ct.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/1b.sdql b/progs/job/gj/1b.sdql index af09efb8..e24e98dc 100644 --- a/progs/job/gj/1b.sdql +++ b/progs/job/gj/1b.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1b/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1b/ct.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/1c.sdql b/progs/job/gj/1c.sdql index 23a839a8..03c7df53 100644 --- a/progs/job/gj/1c.sdql +++ b/progs/job/gj/1c.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1c/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1c/ct.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/1d.sdql b/progs/job/gj/1d.sdql index d5ff5741..a6ad32df 100644 --- a/progs/job/gj/1d.sdql +++ b/progs/job/gj/1d.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1d/it.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1d/ct.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/20a.sdql b/progs/job/gj/20a.sdql index daaded6f..39def8a9 100644 --- a/progs/job/gj/20a.sdql +++ b/progs/job/gj/20a.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/20b.sdql b/progs/job/gj/20b.sdql index 0fb83400..3087b6ff 100644 --- a/progs/job/gj/20b.sdql +++ b/progs/job/gj/20b.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/n.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/20c.sdql b/progs/job/gj/20c.sdql index 30be4163..5f46a1ea 100644 --- a/progs/job/gj/20c.sdql +++ b/progs/job/gj/20c.sdql @@ -9,6 +9,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/21a.sdql b/progs/job/gj/21a.sdql index 59272598..a9166c94 100644 --- a/progs/job/gj/21a.sdql +++ b/progs/job/gj/21a.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21a/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/21b.sdql b/progs/job/gj/21b.sdql index d2a547f6..6bd60db0 100644 --- a/progs/job/gj/21b.sdql +++ b/progs/job/gj/21b.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21b/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/21c.sdql b/progs/job/gj/21c.sdql index 40e19756..dbea00d6 100644 --- a/progs/job/gj/21c.sdql +++ b/progs/job/gj/21c.sdql @@ -8,6 +8,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21c/ct.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/cn.csv") +timer + let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj/22a.sdql b/progs/job/gj/22a.sdql index 0ef8709e..c7a66413 100644 --- a/progs/job/gj/22a.sdql +++ b/progs/job/gj/22a.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) { t.id(i) -> { t.kind_id(i) -> @smallvecdict(0) { i -> 1 } } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) { kt.id(i) -> 1 } in diff --git a/progs/job/gj/22b.sdql b/progs/job/gj/22b.sdql index e6f95806..408afd02 100644 --- a/progs/job/gj/22b.sdql +++ b/progs/job/gj/22b.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) { t.id(i) -> { t.kind_id(i) -> @smallvecdict(0) { i -> 1 } } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) { kt.id(i) -> 1 } in diff --git a/progs/job/gj/22c.sdql b/progs/job/gj/22c.sdql index a154a3d7..e97c0cdf 100644 --- a/progs/job/gj/22c.sdql +++ b/progs/job/gj/22c.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) { t.id(i) -> { t.kind_id(i) -> @smallvecdict(0) { i -> 1 } } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) { kt.id(i) -> 1 } in diff --git a/progs/job/gj/22d.sdql b/progs/job/gj/22d.sdql index a8bf8da5..e0de2aa7 100644 --- a/progs/job/gj/22d.sdql +++ b/progs/job/gj/22d.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it1.csv") +timer + let t_trie0 = sum( <- range(t.size)) { t.id(i) -> { t.kind_id(i) -> @smallvecdict(0) { i -> 1 } } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) { kt.id(i) -> 1 } in diff --git a/progs/job/gj/23a.sdql b/progs/job/gj/23a.sdql index c17b3663..ec4bcd06 100644 --- a/progs/job/gj/23a.sdql +++ b/progs/job/gj/23a.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23a/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) @phmap(cc.size) { cc.status_id(i) -> @smallvecdict(4) { i -> 1 } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let interm0_trie0 = sum( <- cc_trie0) diff --git a/progs/job/gj/23b.sdql b/progs/job/gj/23b.sdql index ffaf6f82..272d609e 100644 --- a/progs/job/gj/23b.sdql +++ b/progs/job/gj/23b.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23b/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) @phmap(cc.size) { cc.status_id(i) -> @smallvecdict(4) { i -> 1 } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let interm0_trie0 = sum( <- cc_trie0) diff --git a/progs/job/gj/23c.sdql b/progs/job/gj/23c.sdql index fa27f72c..d7cdb50b 100644 --- a/progs/job/gj/23c.sdql +++ b/progs/job/gj/23c.sdql @@ -10,6 +10,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23c/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) @phmap(cc.size) { cc.status_id(i) -> @smallvecdict(4) { i -> 1 } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let interm0_trie0 = sum( <- cc_trie0) diff --git a/progs/job/gj/24a.sdql b/progs/job/gj/24a.sdql index 50cd9022..a5e2dbf7 100644 --- a/progs/job/gj/24a.sdql +++ b/progs/job/gj/24a.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24a/rt.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/24b.sdql b/progs/job/gj/24b.sdql index a7f5d521..7535f59d 100644 --- a/progs/job/gj/24b.sdql +++ b/progs/job/gj/24b.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24b/rt.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/25a.sdql b/progs/job/gj/25a.sdql index 4b0ff127..219d8bfd 100644 --- a/progs/job/gj/25a.sdql +++ b/progs/job/gj/25a.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25a/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/25b.sdql b/progs/job/gj/25b.sdql index 9f660458..3eaef025 100644 --- a/progs/job/gj/25b.sdql +++ b/progs/job/gj/25b.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/25c.sdql b/progs/job/gj/25c.sdql index 7b48f42e..20a7ce24 100644 --- a/progs/job/gj/25c.sdql +++ b/progs/job/gj/25c.sdql @@ -8,6 +8,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25c/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/26a.sdql b/progs/job/gj/26a.sdql index 699b23ee..cd98546c 100644 --- a/progs/job/gj/26a.sdql +++ b/progs/job/gj/26a.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/26b.sdql b/progs/job/gj/26b.sdql index 1724bc9f..7fda5e06 100644 --- a/progs/job/gj/26b.sdql +++ b/progs/job/gj/26b.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/26c.sdql b/progs/job/gj/26c.sdql index 8fb568bf..0fc46e84 100644 --- a/progs/job/gj/26c.sdql +++ b/progs/job/gj/26c.sdql @@ -11,6 +11,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/chn.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/27a.sdql b/progs/job/gj/27a.sdql index a5cca101..b3f58aee 100644 --- a/progs/job/gj/27a.sdql +++ b/progs/job/gj/27a.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27a/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mi.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/27b.sdql b/progs/job/gj/27b.sdql index 2399f872..1e469ee2 100644 --- a/progs/job/gj/27b.sdql +++ b/progs/job/gj/27b.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27b/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mi.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/27c.sdql b/progs/job/gj/27c.sdql index 8c2bd76c..b78d4602 100644 --- a/progs/job/gj/27c.sdql +++ b/progs/job/gj/27c.sdql @@ -11,6 +11,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27c/k.csv") let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mi.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/28a.sdql b/progs/job/gj/28a.sdql index 2af2abf0..38297b43 100644 --- a/progs/job/gj/28a.sdql +++ b/progs/job/gj/28a.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/28b.sdql b/progs/job/gj/28b.sdql index 6d627cd6..5a7851a0 100644 --- a/progs/job/gj/28b.sdql +++ b/progs/job/gj/28b.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/28c.sdql b/progs/job/gj/28c.sdql index c6f7e7c4..5090e5e0 100644 --- a/progs/job/gj/28c.sdql +++ b/progs/job/gj/28c.sdql @@ -13,6 +13,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi.csv") let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it1.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/29a.sdql b/progs/job/gj/29a.sdql index 74dd70c3..3fe634cd 100644 --- a/progs/job/gj/29a.sdql +++ b/progs/job/gj/29a.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/chn.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29a/rt.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/29b.sdql b/progs/job/gj/29b.sdql index d56e5e7c..0bd0c74f 100644 --- a/progs/job/gj/29b.sdql +++ b/progs/job/gj/29b.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/chn.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29b/rt.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/29c.sdql b/progs/job/gj/29c.sdql index a12ef1bc..5fac1e7e 100644 --- a/progs/job/gj/29c.sdql +++ b/progs/job/gj/29c.sdql @@ -16,6 +16,8 @@ let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29c/rt.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/2a.sdql b/progs/job/gj/2a.sdql index fbe3e048..73184ea1 100644 --- a/progs/job/gj/2a.sdql +++ b/progs/job/gj/2a.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2a/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2a/cn.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> 1 } } in diff --git a/progs/job/gj/2b.sdql b/progs/job/gj/2b.sdql index 3ca92f22..18293e49 100644 --- a/progs/job/gj/2b.sdql +++ b/progs/job/gj/2b.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2b/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2b/cn.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> 1 } } in diff --git a/progs/job/gj/2d.sdql b/progs/job/gj/2d.sdql index f35cbada..ce6a5fa2 100644 --- a/progs/job/gj/2d.sdql +++ b/progs/job/gj/2d.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2d/k.csv") let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2d/cn.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_id(i) -> 1 } } in diff --git a/progs/job/gj/30a.sdql b/progs/job/gj/30a.sdql index fc68ac2e..8867a8aa 100644 --- a/progs/job/gj/30a.sdql +++ b/progs/job/gj/30a.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/n.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/30b.sdql b/progs/job/gj/30b.sdql index 3901aaf2..8e7b3004 100644 --- a/progs/job/gj/30b.sdql +++ b/progs/job/gj/30b.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/n.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/30c.sdql b/progs/job/gj/30c.sdql index 8d8e2598..648dd223 100644 --- a/progs/job/gj/30c.sdql +++ b/progs/job/gj/30c.sdql @@ -11,6 +11,8 @@ let it1 = load[ int}, info: @vec {int -> string}, size: int>](" let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30c/n.csv") +timer + let cc_trie0 = sum( <- range(cc.size)) { cc.subject_id(i) -> { cc.status_id(i) -> @smallvecdict(0) { i -> 1 } } } in let cct1_trie0 = sum( <- range(cct1.size)) { cct1.id(i) -> 1 } in let cct2_trie0 = sum( <- range(cct2.size)) { cct2.id(i) -> 1 } in diff --git a/progs/job/gj/31a.sdql b/progs/job/gj/31a.sdql index 8de2f1d5..d6000786 100644 --- a/progs/job/gj/31a.sdql +++ b/progs/job/gj/31a.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31a/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/31b.sdql b/progs/job/gj/31b.sdql index b7f4d9e8..1d362681 100644 --- a/progs/job/gj/31b.sdql +++ b/progs/job/gj/31b.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31b/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/31c.sdql b/progs/job/gj/31c.sdql index 7771211b..146e73e5 100644 --- a/progs/job/gj/31c.sdql +++ b/progs/job/gj/31c.sdql @@ -10,6 +10,8 @@ let cn = load[ int}, name: @vec {int -> string}, country_code: let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31c/ci.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @phmap(mi_idx.size) { mi_idx.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/32b.sdql b/progs/job/gj/32b.sdql index 2188a76c..0f770bf5 100644 --- a/progs/job/gj/32b.sdql +++ b/progs/job/gj/32b.sdql @@ -5,6 +5,8 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @ let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32b/k.csv") +timer + let t1_trie0 = sum( <- range(t1.size)) @phmap(t1.size) { t1.id(i) -> @smallvecdict(4) { i -> 1 } } in let ml_trie0 = sum( <- range(ml.size)) { ml.movie_id(i) -> { ml.linked_movie_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t2_trie0 = sum( <- range(t2.size)) @phmap(t2.size) { t2.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/33a.sdql b/progs/job/gj/33a.sdql index 7bdc57d4..6c8a5ecb 100644 --- a/progs/job/gj/33a.sdql +++ b/progs/job/gj/33a.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) { lt.id(i) -> 1 } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/33b.sdql b/progs/job/gj/33b.sdql index 504f96f4..1e445003 100644 --- a/progs/job/gj/33b.sdql +++ b/progs/job/gj/33b.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) { lt.id(i) -> 1 } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/33c.sdql b/progs/job/gj/33c.sdql index 68b5d698..cd6cfa12 100644 --- a/progs/job/gj/33c.sdql +++ b/progs/job/gj/33c.sdql @@ -13,6 +13,8 @@ let cn1 = load[ int}, name: @vec {int -> string}, country_code: let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +timer + let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.link_type_id(i) -> @smallvecdict(4) { i -> 1 } } in let lt_trie0 = sum( <- range(lt.size)) { lt.id(i) -> 1 } in let interm0_trie0 = sum( <- ml_trie0) diff --git a/progs/job/gj/3a.sdql b/progs/job/gj/3a.sdql index bcc20fa7..4e3e9b81 100644 --- a/progs/job/gj/3a.sdql +++ b/progs/job/gj/3a.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/3b.sdql b/progs/job/gj/3b.sdql index e2d84d51..83dfcac7 100644 --- a/progs/job/gj/3b.sdql +++ b/progs/job/gj/3b.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/3c.sdql b/progs/job/gj/3c.sdql index d5a62a48..f807151c 100644 --- a/progs/job/gj/3c.sdql +++ b/progs/job/gj/3c.sdql @@ -3,6 +3,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3c/mi.csv") let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3c/k.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) @phmap(mk.size) { mk.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/job/gj/4a.sdql b/progs/job/gj/4a.sdql index 719a13e3..7eb1bbab 100644 --- a/progs/job/gj/4a.sdql +++ b/progs/job/gj/4a.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4a/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4a/it.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/4b.sdql b/progs/job/gj/4b.sdql index 84eec673..d1fb1fe0 100644 --- a/progs/job/gj/4b.sdql +++ b/progs/job/gj/4b.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4b/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4b/it.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/4c.sdql b/progs/job/gj/4c.sdql index 247e20a4..d1652a25 100644 --- a/progs/job/gj/4c.sdql +++ b/progs/job/gj/4c.sdql @@ -4,6 +4,8 @@ let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4c/k.csv") let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4c/it.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) { mi_idx.movie_id(i) -> { mi_idx.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in diff --git a/progs/job/gj/5c.sdql b/progs/job/gj/5c.sdql index 54d59d6e..b34c522b 100644 --- a/progs/job/gj/5c.sdql +++ b/progs/job/gj/5c.sdql @@ -4,6 +4,8 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @ let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/info_type.csv") let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/5c/ct.csv") +timer + let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(i) -> { mi.info_type_id(i) -> 1 } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) { mc.movie_id(i) -> { mc.company_type_id(i) -> 1 } } in diff --git a/progs/job/gj/6a.sdql b/progs/job/gj/6a.sdql index 3145e55f..66d36197 100644 --- a/progs/job/gj/6a.sdql +++ b/progs/job/gj/6a.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/6b.sdql b/progs/job/gj/6b.sdql index 476680d4..524e8877 100644 --- a/progs/job/gj/6b.sdql +++ b/progs/job/gj/6b.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/6c.sdql b/progs/job/gj/6c.sdql index a95dfa18..7026fb5f 100644 --- a/progs/job/gj/6c.sdql +++ b/progs/job/gj/6c.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/6d.sdql b/progs/job/gj/6d.sdql index e6019931..21ab5789 100644 --- a/progs/job/gj/6d.sdql +++ b/progs/job/gj/6d.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/6e.sdql b/progs/job/gj/6e.sdql index 983f9f88..ade35afd 100644 --- a/progs/job/gj/6e.sdql +++ b/progs/job/gj/6e.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/n.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/6f.sdql b/progs/job/gj/6f.sdql index 292c6d7d..207582ac 100644 --- a/progs/job/gj/6f.sdql +++ b/progs/job/gj/6f.sdql @@ -4,6 +4,8 @@ let k = load[ int}, keyword: @vec {int -> string}, phonetic_cod let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +timer + let mk_trie0 = sum( <- range(mk.size)) { mk.movie_id(i) -> { mk.keyword_id(i) -> @smallvecdict(0) { i -> 1 } } } in let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { k.id(i) -> @smallvecdict(4) { i -> 1 } } in diff --git a/progs/job/gj/7a.sdql b/progs/job/gj/7a.sdql index 318c8d0d..b7665c3e 100644 --- a/progs/job/gj/7a.sdql +++ b/progs/job/gj/7a.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/an.csv") +timer + let n_trie0 = sum( <- range(n.size)) @phmap(n.size) { n.id(i) -> @smallvecdict(4) { i -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) { pi.person_id(i) -> { pi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let it_trie0 = sum( <- range(it.size)) { it.id(i) -> 1 } in diff --git a/progs/job/gj/7b.sdql b/progs/job/gj/7b.sdql index 088f5395..62322dd8 100644 --- a/progs/job/gj/7b.sdql +++ b/progs/job/gj/7b.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/an.csv") +timer + let n_trie0 = sum( <- range(n.size)) @phmap(n.size) { n.id(i) -> @smallvecdict(4) { i -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) { pi.person_id(i) -> { pi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let it_trie0 = sum( <- range(it.size)) { it.id(i) -> 1 } in diff --git a/progs/job/gj/7c.sdql b/progs/job/gj/7c.sdql index 61d67cfb..bbd2e8c5 100644 --- a/progs/job/gj/7c.sdql +++ b/progs/job/gj/7c.sdql @@ -7,6 +7,8 @@ let lt = load[ int}, link: @vec {int -> string}, size: int>]("d let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/an.csv") +timer + let n_trie0 = sum( <- range(n.size)) @phmap(n.size) { n.id(i) -> @smallvecdict(4) { i -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) { pi.person_id(i) -> { pi.info_type_id(i) -> @smallvecdict(0) { i -> 1 } } } in let it_trie0 = sum( <- range(it.size)) { it.id(i) -> 1 } in diff --git a/progs/job/gj/8a.sdql b/progs/job/gj/8a.sdql index 0930298d..67bb7d07 100644 --- a/progs/job/gj/8a.sdql +++ b/progs/job/gj/8a.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/8b.sdql b/progs/job/gj/8b.sdql index 3312f457..984a4bad 100644 --- a/progs/job/gj/8b.sdql +++ b/progs/job/gj/8b.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/t.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/8c.sdql b/progs/job/gj/8c.sdql index a081e9dc..7b857ec2 100644 --- a/progs/job/gj/8c.sdql +++ b/progs/job/gj/8c.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let a1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/8d.sdql b/progs/job/gj/8d.sdql index 1f9353ae..d004ed14 100644 --- a/progs/job/gj/8d.sdql +++ b/progs/job/gj/8d.sdql @@ -6,6 +6,8 @@ let rt = load[ int}, role: @vec {int -> string}, size: int>]("d let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/9a.sdql b/progs/job/gj/9a.sdql index e7c10af1..f4fab3f7 100644 --- a/progs/job/gj/9a.sdql +++ b/progs/job/gj/9a.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/9b.sdql b/progs/job/gj/9b.sdql index 974f807d..caf2ecca 100644 --- a/progs/job/gj/9b.sdql +++ b/progs/job/gj/9b.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/9c.sdql b/progs/job/gj/9c.sdql index f6fee57f..1268579c 100644 --- a/progs/job/gj/9c.sdql +++ b/progs/job/gj/9c.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/job/gj/9d.sdql b/progs/job/gj/9d.sdql index de155ee8..61484b31 100644 --- a/progs/job/gj/9d.sdql +++ b/progs/job/gj/9d.sdql @@ -7,6 +7,8 @@ let t = load[ int}, title: @vec {int -> string}, imdb_index: @v let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +timer + let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.company_id(i) -> @smallvecdict(4) { i -> 1 } } in let cn_trie0 = sum( <- range(cn.size)) { cn.id(i) -> 1 } in let interm0_trie0 = sum( <- mc_trie0) diff --git a/progs/tpch/q1.sdql b/progs/tpch/q1.sdql index 1b8096a6..4af5d426 100644 --- a/progs/tpch/q1.sdql +++ b/progs/tpch/q1.sdql @@ -1,5 +1,7 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let l_h = sum( <- range(lineitem.size)) let l = < diff --git a/progs/tpch/q10.sdql b/progs/tpch/q10.sdql index 562af08e..aff7e364 100644 --- a/progs/tpch/q10.sdql +++ b/progs/tpch/q10.sdql @@ -1,11 +1,10 @@ let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") +timer + let r = ext(`ConstantString`,"R", 2) let n_h = diff --git a/progs/tpch/q11.sdql b/progs/tpch/q11.sdql index 3d6b3671..fc6d041c 100644 --- a/progs/tpch/q11.sdql +++ b/progs/tpch/q11.sdql @@ -1,9 +1,9 @@ let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let partsupp = load[ int}, ps_suppkey: @vec {int -> int}, ps_availqty: @vec {int -> double}, ps_supplycost: @vec {int -> double}, ps_comment: @vec {int -> varchar(199)}, size: int>]("datasets/tpch/partsupp.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") +timer + let germany = ext(`ConstantString`,"GERMANY", 8) let n_h = diff --git a/progs/tpch/q12.sdql b/progs/tpch/q12.sdql index a5f7fa6f..9c5a5cad 100644 --- a/progs/tpch/q12.sdql +++ b/progs/tpch/q12.sdql @@ -1,7 +1,8 @@ let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let mail = ext(`ConstantString`, "MAIL", 5) let ship = ext(`ConstantString`, "SHIP", 5) let urgent = ext(`ConstantString`, "1-URGENT", 9) diff --git a/progs/tpch/q13.sdql b/progs/tpch/q13.sdql index 48e3d4da..c66d9bca 100644 --- a/progs/tpch/q13.sdql +++ b/progs/tpch/q13.sdql @@ -1,7 +1,8 @@ let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") +timer + let special = ext(`ConstantString`, "special", 8) let requests = ext(`ConstantString`, "requests", 9) let nchars_special = 7 diff --git a/progs/tpch/q14.sdql b/progs/tpch/q14.sdql index be77e9b9..74e3ffdf 100644 --- a/progs/tpch/q14.sdql +++ b/progs/tpch/q14.sdql @@ -1,7 +1,8 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") +timer + let promo = ext(`ConstantString`, "PROMO", 6) let p_h = diff --git a/progs/tpch/q15.sdql b/progs/tpch/q15.sdql index 1277108a..c23ccceb 100644 --- a/progs/tpch/q15.sdql +++ b/progs/tpch/q15.sdql @@ -1,7 +1,8 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") +timer + let suppkey_to_revenue = sum( <- range(lineitem.size)) let l = < diff --git a/progs/tpch/q16.sdql b/progs/tpch/q16.sdql index 711a3f5d..91d87f55 100644 --- a/progs/tpch/q16.sdql +++ b/progs/tpch/q16.sdql @@ -1,9 +1,9 @@ let partsupp = load[ int}, ps_suppkey: @vec {int -> int}, ps_availqty: @vec {int -> double}, ps_supplycost: @vec {int -> double}, ps_comment: @vec {int -> varchar(199)}, size: int>]("datasets/tpch/partsupp.tbl") - let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") +timer + let brand = ext(`ConstantString`, "Brand#45", 9) let medpol = ext(`ConstantString`, "MEDIUM POLISHED", 16) let _customer = ext(`ConstantString`, "Customer", 9) diff --git a/progs/tpch/q17.sdql b/progs/tpch/q17.sdql index 1f9bd940..7104f53d 100644 --- a/progs/tpch/q17.sdql +++ b/progs/tpch/q17.sdql @@ -1,7 +1,8 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") +timer + let brand = ext(`ConstantString`, "Brand#23", 9) let medbox = ext(`ConstantString`, "MED BOX", 8) diff --git a/progs/tpch/q18.sdql b/progs/tpch/q18.sdql index 25b271ff..86b48065 100644 --- a/progs/tpch/q18.sdql +++ b/progs/tpch/q18.sdql @@ -1,9 +1,9 @@ let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let l_h = sum( <- range(lineitem.size)) let l = < diff --git a/progs/tpch/q19.sdql b/progs/tpch/q19.sdql index 1646a63f..5a5086b5 100644 --- a/progs/tpch/q19.sdql +++ b/progs/tpch/q19.sdql @@ -1,7 +1,8 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") +timer + let brand12 = ext(`ConstantString`, "Brand#12", 9) let brand23 = ext(`ConstantString`, "Brand#23", 9) let brand34 = ext(`ConstantString`, "Brand#34", 9) diff --git a/progs/tpch/q2.sdql b/progs/tpch/q2.sdql index 249556f7..624b650c 100644 --- a/progs/tpch/q2.sdql +++ b/progs/tpch/q2.sdql @@ -1,13 +1,11 @@ let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let partsupp = load[ int}, ps_suppkey: @vec {int -> int}, ps_availqty: @vec {int -> double}, ps_supplycost: @vec {int -> double}, ps_comment: @vec {int -> varchar(199)}, size: int>]("datasets/tpch/partsupp.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") - let region = load[ int}, r_name: @vec {int -> varchar(25)}, r_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/region.tbl") +timer + let brass = ext(`ConstantString`,"BRASS", 6) let europe = ext(`ConstantString`,"EUROPE", 7) diff --git a/progs/tpch/q20.sdql b/progs/tpch/q20.sdql index 527fa3c7..7dc24edc 100644 --- a/progs/tpch/q20.sdql +++ b/progs/tpch/q20.sdql @@ -1,13 +1,11 @@ let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") - let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") - let partsupp = load[ int}, ps_suppkey: @vec {int -> int}, ps_availqty: @vec {int -> double}, ps_supplycost: @vec {int -> double}, ps_comment: @vec {int -> varchar(199)}, size: int>]("datasets/tpch/partsupp.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let forest = ext(`ConstantString`, "forest", 7) let canada = ext(`ConstantString`, "CANADA", 7) diff --git a/progs/tpch/q21.sdql b/progs/tpch/q21.sdql index e53e264a..3901fc13 100644 --- a/progs/tpch/q21.sdql +++ b/progs/tpch/q21.sdql @@ -1,11 +1,10 @@ let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") +timer + let saudi = ext(`ConstantString`, "SAUDI ARABIA", 13) let f = ext(`ConstantString`, "F", 2) diff --git a/progs/tpch/q22.sdql b/progs/tpch/q22.sdql index 8ed96778..993f1b9b 100644 --- a/progs/tpch/q22.sdql +++ b/progs/tpch/q22.sdql @@ -1,7 +1,8 @@ let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") +timer + let _13 = ext(`ConstantString`, "13", 3) let _31 = ext(`ConstantString`, "31", 3) let _23 = ext(`ConstantString`, "23", 3) diff --git a/progs/tpch/q3.sdql b/progs/tpch/q3.sdql index aa910332..c6043994 100644 --- a/progs/tpch/q3.sdql +++ b/progs/tpch/q3.sdql @@ -1,9 +1,9 @@ let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let building = ext(`ConstantString`,"BUILDING", 9) let c_h = diff --git a/progs/tpch/q4.sdql b/progs/tpch/q4.sdql index 31e08200..7e1c8d51 100644 --- a/progs/tpch/q4.sdql +++ b/progs/tpch/q4.sdql @@ -1,7 +1,8 @@ let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + let l_h = sum( <- range(lineitem.size)) let l = < diff --git a/progs/tpch/q5.sdql b/progs/tpch/q5.sdql index f3a81a48..7e11cbf0 100644 --- a/progs/tpch/q5.sdql +++ b/progs/tpch/q5.sdql @@ -1,17 +1,13 @@ let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") - let region = load[ int}, r_name: @vec {int -> varchar(25)}, r_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/region.tbl") - let asia = ext(`ConstantString`,"ASIA", 5) +timer + let r_h = sum( <- range(region.size)) let r = < diff --git a/progs/tpch/q6.sdql b/progs/tpch/q6.sdql index 8d31f4eb..65162ecd 100644 --- a/progs/tpch/q6.sdql +++ b/progs/tpch/q6.sdql @@ -1,5 +1,7 @@ let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") +timer + sum( <- range(lineitem.size)) let l = < l_orderkey=lineitem.l_orderkey(i), diff --git a/progs/tpch/q7.sdql b/progs/tpch/q7.sdql index e41e1d95..c5c70f94 100644 --- a/progs/tpch/q7.sdql +++ b/progs/tpch/q7.sdql @@ -1,13 +1,11 @@ let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") +timer + let france = ext(`ConstantString`,"FRANCE", 7) let germany = ext(`ConstantString`,"GERMANY", 8) diff --git a/progs/tpch/q8.sdql b/progs/tpch/q8.sdql index 80801650..832f1b80 100644 --- a/progs/tpch/q8.sdql +++ b/progs/tpch/q8.sdql @@ -1,17 +1,13 @@ let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let customer = load[ int}, c_name: @vec {int -> varchar(25)}, c_address: @vec {int -> varchar(40)}, c_nationkey: @vec {int -> int}, c_phone: @vec {int -> varchar(15)}, c_acctbal: @vec {int -> double}, c_mktsegment: @vec {int -> varchar(10)}, c_comment: @vec {int -> varchar(117)}, size: int>]("datasets/tpch/customer.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") - let region = load[ int}, r_name: @vec {int -> varchar(25)}, r_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/region.tbl") +timer + let steel = ext(`ConstantString`,"ECONOMY ANODIZED STEEL", 23) let america = ext(`ConstantString`,"AMERICA", 8) let brazil = ext(`ConstantString`,"BRAZIL", 7) diff --git a/progs/tpch/q9.sdql b/progs/tpch/q9.sdql index a9c9f167..3af1b625 100644 --- a/progs/tpch/q9.sdql +++ b/progs/tpch/q9.sdql @@ -1,15 +1,12 @@ let part = load[ int}, p_name: @vec {int -> varchar(55)}, p_mfgr: @vec {int -> varchar(25)}, p_brand: @vec {int -> varchar(10)}, p_type: @vec {int -> varchar(25)}, p_size: @vec {int -> int}, p_container: @vec {int -> varchar(10)}, p_retailprice: @vec {int -> double}, p_comment: @vec {int -> varchar(23)}, size: int>]("datasets/tpch/part.tbl") - let supplier = load[ int}, s_name: @vec {int -> varchar(25)}, s_address: @vec {int -> varchar(40)}, s_nationkey: @vec {int -> int}, s_phone: @vec {int -> varchar(15)}, s_acctbal: @vec {int -> double}, s_comment: @vec {int -> varchar(101)}, size: int>]("datasets/tpch/supplier.tbl") - let lineitem = load[ int}, l_partkey: @vec {int -> int}, l_suppkey: @vec {int -> int}, l_linenumber: @vec {int -> int}, l_quantity: @vec {int -> double}, l_extendedprice: @vec {int -> double}, l_discount: @vec {int -> double}, l_tax: @vec {int -> double}, l_returnflag: @vec {int -> varchar(1)}, l_linestatus: @vec {int -> varchar(1)}, l_shipdate: @vec {int -> date}, l_commitdate: @vec {int -> date}, l_receiptdate: @vec {int -> date}, l_shipinstruct: @vec {int -> varchar(25)}, l_shipmode: @vec {int -> varchar(10)}, l_comment: @vec {int -> varchar(44)}, size: int>]("datasets/tpch/lineitem.tbl") - let partsupp = load[ int}, ps_suppkey: @vec {int -> int}, ps_availqty: @vec {int -> double}, ps_supplycost: @vec {int -> double}, ps_comment: @vec {int -> varchar(199)}, size: int>]("datasets/tpch/partsupp.tbl") - let orders = load[ int}, o_custkey: @vec {int -> int}, o_orderstatus: @vec {int -> varchar(1)}, o_totalprice: @vec {int -> double}, o_orderdate: @vec {int -> date}, o_orderpriority: @vec {int -> varchar(15)}, o_clerk: @vec {int -> varchar(15)}, o_shippriority: @vec {int -> int}, o_comment: @vec {int -> varchar(79)}, size: int>]("datasets/tpch/orders.tbl") - let nation = load[ int}, n_name: @vec {int -> varchar(25)}, n_regionkey: @vec {int -> int}, n_comment: @vec {int -> varchar(152)}, size: int>]("datasets/tpch/nation.tbl") +timer + let green = ext(`ConstantString`,"green", 6) let n_h = From 466b4ed099a24d6f736328232f55c2ab39800443 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 19:46:05 +0000 Subject: [PATCH 27/80] Added SortedDict cache, so we can call 'at' after 'contains' without calling 'find' twice --- runtime/sorted_dict.h | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index c623d5bc..e29d4abe 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -71,6 +71,7 @@ class Range { template class SortedDict { vector> data_; + std::optional>> last_found; public: SortedDict() = default; @@ -91,6 +92,9 @@ class SortedDict { } inline VT &at(const KT &key) { + if(last_found.has_value() && last_found.value().first == key) { + return last_found.value().second; + } auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -98,17 +102,24 @@ class SortedDict { data_.emplace_back(key, VT()); return data_.back().second; } - if (it->first != key) - data_.emplace(it, key, VT()); + if (it->first != key) { + data_.emplace(it, key, VT()); + } return it->second; } + inline bool contains(const KT &key) { + return this->find(key) != this->end(); + } + inline typename vector>::iterator find(const KT &key) { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); - if (it != data_.end() && it->first == key) - return it; + if (it != data_.end() && it->first == key) { + last_found = std::pair(key, std::ref(it->second)); + return it; + } return data_.end(); } @@ -116,8 +127,10 @@ class SortedDict { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); - if (it != data_.end() && it->first == key) - return it; + if (it != data_.end() && it->first == key) { + last_found = std::pair(key, std::ref(it->second)); + return it; + } return data_.end(); } @@ -136,9 +149,4 @@ class SortedDict { inline typename vector>::const_iterator end() const { return data_.end(); } - - // TODO convenience method - get rid of this - inline bool contains(const KT &key) { - return this->find(key) != this->end(); - } }; \ No newline at end of file From 70b8fc748daf6149ed5c1098b00f0bf73690fb77 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 20:30:48 +0000 Subject: [PATCH 28/80] Fixed sorting performance --- runtime/sort_helper.h | 10 ++++------ src/main/scala/sdql/backend/CppCodegen.scala | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/runtime/sort_helper.h b/runtime/sort_helper.h index 3bd4d53c..092bb4d3 100644 --- a/runtime/sort_helper.h +++ b/runtime/sort_helper.h @@ -9,13 +9,11 @@ std::vector sorted_indices(const std::vector &vec) return v; } -template -bool tuple_cmp(const std::tuple& a, const std::tuple& b) { - return std::get(a) < std::get(b); -} - template std::vector> sort_vec(std::vector> vec) { - std::sort(vec.begin(), vec.end(), tuple_cmp); + std::sort(vec.begin(), vec.end(), [](const std::tuple& a, const std::tuple& b) + { + return get(a) < get(b); + }); return vec; } diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 905f5a3b..dba8ab14 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -170,7 +170,7 @@ object CppCodegen { case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${run(arg)})" case External(SortVec.SYMBOL, Seq(n, arg)) => - s"sort_vec<${run(n)}>(${run(arg)})" + s"sort_vec<${run(n)}>(std::move(${run(arg)}))" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") case External(Size.SYMBOL, Seq(arg)) => From 23223821c69a94f5d33b7f73dd457a38edca3fe0 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 20:32:23 +0000 Subject: [PATCH 29/80] Removed unnecessary inline for class methods (clang-tidy) --- runtime/sorted_dict.h | 26 ++++++++++---------- src/main/scala/sdql/backend/CppCodegen.scala | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index e29d4abe..8b05d660 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -23,7 +23,7 @@ class Range { } }; - inline Proxy operator[](size_t const idx) { + Proxy operator[](size_t const idx) { if (ll_ == -1) { ll_ = idx; rr_ = idx; @@ -31,11 +31,11 @@ class Range { return Proxy(*this); } - inline size_t left() const { + size_t left() const { return ll_; } - inline size_t right() const { + size_t right() const { return rr_; } @@ -80,18 +80,18 @@ class SortedDict { data_.reserve(n); } - inline size_t size() const { + size_t size() const { return data_.size(); } - inline VT &operator[](const KT &key) { + VT &operator[](const KT &key) { if (data_.empty() || key != data_.back().first) { data_.emplace_back(key, VT()); } return data_.back().second; } - inline VT &at(const KT &key) { + VT &at(const KT &key) { if(last_found.has_value() && last_found.value().first == key) { return last_found.value().second; } @@ -108,11 +108,11 @@ class SortedDict { return it->second; } - inline bool contains(const KT &key) { + bool contains(const KT &key) { return this->find(key) != this->end(); } - inline typename vector>::iterator find(const KT &key) { + typename vector>::iterator find(const KT &key) { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -123,7 +123,7 @@ class SortedDict { return data_.end(); } - inline typename vector>::const_iterator find(const KT &key) const { + typename vector>::const_iterator find(const KT &key) const { auto it = lower_bound(data_.begin(), data_.end(), key, [](const pair& a, const KT& cmp_key) { return a.first < cmp_key; }); @@ -134,19 +134,19 @@ class SortedDict { return data_.end(); } - inline typename vector>::iterator begin() { + typename vector>::iterator begin() { return data_.begin(); } - inline typename vector>::iterator end() { + typename vector>::iterator end() { return data_.end(); } - inline typename vector>::const_iterator begin() const { + typename vector>::const_iterator begin() const { return data_.begin(); } - inline typename vector>::const_iterator end() const { + typename vector>::const_iterator end() const { return data_.end(); } }; \ No newline at end of file diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index dba8ab14..7ecf07aa 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -221,7 +221,7 @@ object CppCodegen { val (lhs, rhs) = cppLhsRhs(e, destination) TypeInference.run(e) match { // TODO remove special case - // TODO don't construct tuple + // avoiding tuple construction in emplace_back has negligible performance gains case DictType(IntType, _: RecordType, Vec(None)) => s"$lhs.emplace_back($rhs);" case _ => s"$lhs = $rhs;" } From 085bb54392b25c37c482bd3fbf70746c75460b1b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 20:42:22 +0000 Subject: [PATCH 30/80] Removed TODOs --- src/main/scala/sdql/analysis/TypeInference.scala | 1 - src/main/scala/sdql/backend/CppCodegen.scala | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 756ea04d..a2fe3c58 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -40,7 +40,6 @@ object TypeInference { } case DictNode(Nil, _) => raise("Type inference needs backtracking to infer empty type { }") - // TODO remove special case // @vec { <...> -> 1 } treats the relational form <...> -> 1 it as a mapping i -> <...> case DictNode(Seq((r: RecNode, Const(1))), hint @ Vec(_)) => DictType(IntType, run(r), hint) case DictNode(seq, hint) => diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 7ecf07aa..c25a4f41 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -220,7 +220,6 @@ object CppCodegen { case Modify(e, destination) => val (lhs, rhs) = cppLhsRhs(e, destination) TypeInference.run(e) match { - // TODO remove special case // avoiding tuple construction in emplace_back has negligible performance gains case DictType(IntType, _: RecordType, Vec(None)) => s"$lhs.emplace_back($rhs);" case _ => s"$lhs = $rhs;" @@ -330,7 +329,7 @@ object CppCodegen { case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => - (Seq(), k) // TODO remove special case + (Seq(), k) case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) case DictNode(map, _) if map.length != 1 => From a4369dafb7a5ec634725ee55febf058bdc7273ba Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 21:01:55 +0000 Subject: [PATCH 31/80] Renamed 'SortVec' -> 'SortedVec' for consistency --- progs/job/fj_sorting/3a.sdql | 2 +- src/main/scala/sdql/analysis/TypeInference.scala | 2 +- src/main/scala/sdql/backend/CppCodegen.scala | 2 +- src/main/scala/sdql/ir/ExternalFunctions.scala | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index b4a126d2..1388bdc4 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -17,7 +17,7 @@ let interm0_unsort = sum( <- range(mk.size)) let t_off = t_offsets(t_i) @vec { -> 1 } in -let interm0 = ext(`SortVec`, 0, interm0_unsort) +let interm0 = ext(`SortedVec`, 0, interm0_unsort) let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index a2fe3c58..a39c1b45 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -116,7 +116,7 @@ object TypeInference { } DictType(IntType, IntType, Vec(size)) // TODO - case External(SortVec.SYMBOL, args) => + case External(SortedVec.SYMBOL, args) => val (_, arg) = args match { case Seq(Const(n: Int), arg) => (n, arg) } run(arg) case External(Inv.SYMBOL, args) => diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index c25a4f41..1361acb0 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -169,7 +169,7 @@ object CppCodegen { s"${run(on)}.lastIndex(${run(patt)})" case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${run(arg)})" - case External(SortVec.SYMBOL, Seq(n, arg)) => + case External(SortedVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${run(n)}>(std::move(${run(arg)}))" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") diff --git a/src/main/scala/sdql/ir/ExternalFunctions.scala b/src/main/scala/sdql/ir/ExternalFunctions.scala index fc02f9b4..d1fce3e5 100644 --- a/src/main/scala/sdql/ir/ExternalFunctions.scala +++ b/src/main/scala/sdql/ir/ExternalFunctions.scala @@ -21,7 +21,7 @@ object ExternalFunctions { object FirstIndex extends ExternalFactory("FirstIndex") object LastIndex extends ExternalFactory("LastIndex") object SortedIndices extends ExternalFactory("SortedIndices") - object SortVec extends ExternalFactory("SortVec") + object SortedVec extends ExternalFactory("SortedVec") object Year extends ExternalFactory("Year") object CStore extends ExternalFactory("CStore") object ParseDate extends ExternalFactory("ParseDate") From daf3354e427d4461ac76b02e3004b1d3aab7abe5 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 27 Oct 2024 21:17:19 +0000 Subject: [PATCH 32/80] Typo --- src/main/scala/sdql/analysis/TypeInference.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index a39c1b45..ad5f073c 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -116,7 +116,7 @@ object TypeInference { } DictType(IntType, IntType, Vec(size)) // TODO - case External(SortedVec.SYMBOL, args) => + case External(SortedVec.SYMBOL, args) => val (_, arg) = args match { case Seq(Const(n: Int), arg) => (n, arg) } run(arg) case External(Inv.SYMBOL, args) => From a3fa391a63265897bb56aea829b0158a5eeef6bf Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:20:49 +0000 Subject: [PATCH 33/80] Auto-generated sorting 3a & 10a --- progs/job/fj_sorting/10a.sdql | 54 +++++++++++++++++++++++++++++++++++ progs/job/fj_sorting/3a.sdql | 17 +++++------ 2 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 progs/job/fj_sorting/10a.sdql diff --git a/progs/job/fj_sorting/10a.sdql b/progs/job/fj_sorting/10a.sdql new file mode 100644 index 00000000..b42e625c --- /dev/null +++ b/progs/job/fj_sorting/10a.sdql @@ -0,0 +1,54 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + let x2 = mc.movie_id(mc_off) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_role_id(ci_off) in + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_sorting/3a.sdql index 1388bdc4..4cb51f94 100644 --- a/progs/job/fj_sorting/3a.sdql +++ b/progs/job/fj_sorting/3a.sdql @@ -1,9 +1,10 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.id) let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.id) let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") - -let t_offsets = ext(`SortedIndices`, t.id) let k_offsets = ext(`SortedIndices`, k.id) timer @@ -14,23 +15,23 @@ let interm0_unsort = sum( <- range(mk.size)) if (x0 ∈ t_trie0) then let t_trie1 = t_trie0(x0) in sum( <- t_trie1) - let t_off = t_offsets(t_i) + let t_off = t_offsets(t_i) @vec { -> 1 } in + let interm0 = ext(`SortedVec`, 0, interm0_unsort) -let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) - @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } -in +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in -let k_trie0 = sum( <- range(k.size)) @st(k.size) { unique(k.id(k_offsets(i))) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in sum( <- range(mi.size)) let x0 = mi.movie_id(mi_off) in if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in sum( <- interm0_trie1) - let interm0_tuple = interm0(interm0_off) + let interm0_tuple = interm0(interm0_off) let x1 = interm0_tuple.col1 in if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in let mn_interm0 = in promote[min_sum]() + From f3d31f11de9f579c5e189d76b800533e1e13a215 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 6 Nov 2024 12:25:38 +0000 Subject: [PATCH 34/80] Removed leftover TODO comment --- src/main/scala/sdql/analysis/TypeInference.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index ad5f073c..cd7a5aac 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -115,7 +115,6 @@ object TypeInference { case tpe => raise(s"$name unexpect arg ${tpe.simpleName}") } DictType(IntType, IntType, Vec(size)) - // TODO case External(SortedVec.SYMBOL, args) => val (_, arg) = args match { case Seq(Const(n: Int), arg) => (n, arg) } run(arg) From 840121b02bf3fb35394fdbe58b90f757999bc38f Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 6 Nov 2024 14:43:58 +0000 Subject: [PATCH 35/80] Added timer to LSQB queries --- progs/lsqb/fj/q1.sdql | 2 ++ progs/lsqb/fj/q2.sdql | 2 ++ progs/lsqb/fj/q4.sdql | 2 ++ progs/lsqb/fj/q5.sdql | 2 ++ progs/lsqb/gj/q1.sdql | 2 ++ progs/lsqb/gj/q2.sdql | 2 ++ progs/lsqb/gj/q4.sdql | 2 ++ progs/lsqb/gj/q5.sdql | 2 ++ 8 files changed, 16 insertions(+) diff --git a/progs/lsqb/fj/q1.sdql b/progs/lsqb/fj/q1.sdql index abef5b5f..f5b8aeb2 100644 --- a/progs/lsqb/fj/q1.sdql +++ b/progs/lsqb/fj/q1.sdql @@ -9,6 +9,8 @@ let person = load[ long}, isLocatedIn_CityId: @vec {int - let city = load[ long}, isPartOf_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/City.csv") in let country = load[ long}, isPartOf_ContinentId: @vec {int -> long}, size: int>]("datasets/lsqb/Country.csv") in +timer + let tagclass_trie0 = sum( <- range(tagclass.size)) @phmap(tagclass.size) { tagclass.TagClassId(i) -> 1 } in let interm0_trie0 = sum( <- range(tag.size)) let x0 = tag.hasType_TagClassId(tag_off) in diff --git a/progs/lsqb/fj/q2.sdql b/progs/lsqb/fj/q2.sdql index b48837bf..fde84d9b 100644 --- a/progs/lsqb/fj/q2.sdql +++ b/progs/lsqb/fj/q2.sdql @@ -2,6 +2,8 @@ let comment = load[ long}, hasCreator_PersonId: @vec {in let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in let pkp = load[ long}, Person2Id: @vec {int -> long}, size: int>]("datasets/lsqb/Person_knows_Person.csv") in +timer + let post_trie0 = sum( <- range(post.size)) @phmap(post.size) { post.PostId(i) -> @smallvecdict(4) { i -> 1 } } in let pkp_trie0 = sum( <- range(pkp.size)) { pkp.Person2Id(i) -> { pkp.Person1Id(i) -> 1 } } in sum( <- range(comment.size)) diff --git a/progs/lsqb/fj/q4.sdql b/progs/lsqb/fj/q4.sdql index b0565f52..3dbc8ed9 100644 --- a/progs/lsqb/fj/q4.sdql +++ b/progs/lsqb/fj/q4.sdql @@ -3,6 +3,8 @@ let post = load[ long}, hasCreator_PersonId: @vec {int -> l let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in let plp = load[ long}, PostId: @vec {int -> long}, size: int>]("datasets/lsqb/Person_likes_Post.csv") in +timer + let pht_trie0 = sum( <- range(pht.size)) @phmap(pht.size) { pht.PostId(i) -> 1 } in let interm0_trie0 = sum( <- range(post.size)) let x0 = post.PostId(post_off) in diff --git a/progs/lsqb/fj/q5.sdql b/progs/lsqb/fj/q5.sdql index 7f0f9d53..f39e0156 100644 --- a/progs/lsqb/fj/q5.sdql +++ b/progs/lsqb/fj/q5.sdql @@ -2,6 +2,8 @@ let comment = load[ long}, hasCreator_PersonId: @vec {in let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +timer + let comment_trie0 = sum( <- range(comment.size)) @phmap(comment.size) { comment.CommentId(i) -> @smallvecdict(4) { i -> 1 } } in let pht_trie0 = sum( <- range(pht.size)) @phmap(pht.size) { pht.PostId(i) -> 1 } in sum( <- range(cht.size)) diff --git a/progs/lsqb/gj/q1.sdql b/progs/lsqb/gj/q1.sdql index 6db3c138..68aa75c8 100644 --- a/progs/lsqb/gj/q1.sdql +++ b/progs/lsqb/gj/q1.sdql @@ -9,6 +9,8 @@ let person = load[ long}, isLocatedIn_CityId: @vec {int - let city = load[ long}, isPartOf_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/City.csv") in let country = load[ long}, isPartOf_ContinentId: @vec {int -> long}, size: int>]("datasets/lsqb/Country.csv") in +timer + let tag_trie0 = sum( <- range(tag.size)) @phmap(tag.size) { tag.hasType_TagClassId(i) -> @smallvecdict(4) { i -> 1 } } in let tagclass_trie0 = sum( <- range(tagclass.size)) { tagclass.TagClassId(i) -> 1 } in let interm0_trie0 = sum( <- tag_trie0) diff --git a/progs/lsqb/gj/q2.sdql b/progs/lsqb/gj/q2.sdql index c4a12c99..defb859f 100644 --- a/progs/lsqb/gj/q2.sdql +++ b/progs/lsqb/gj/q2.sdql @@ -2,6 +2,8 @@ let comment = load[ long}, hasCreator_PersonId: @vec {in let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in let pkp = load[ long}, Person2Id: @vec {int -> long}, size: int>]("datasets/lsqb/Person_knows_Person.csv") in +timer + let comment_trie0 = sum( <- range(comment.size)) { comment.replyOf_PostId(i) -> { comment.hasCreator_PersonId(i) -> 1 } } in let post_trie0 = sum( <- range(post.size)) { post.PostId(i) -> { post.hasCreator_PersonId(i) -> 1 } } in let pkp_trie0 = sum( <- range(pkp.size)) { pkp.Person2Id(i) -> { pkp.Person1Id(i) -> 1 } } in diff --git a/progs/lsqb/gj/q4.sdql b/progs/lsqb/gj/q4.sdql index 88128010..f9a4825a 100644 --- a/progs/lsqb/gj/q4.sdql +++ b/progs/lsqb/gj/q4.sdql @@ -3,6 +3,8 @@ let post = load[ long}, hasCreator_PersonId: @vec {int -> l let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in let plp = load[ long}, PostId: @vec {int -> long}, size: int>]("datasets/lsqb/Person_likes_Post.csv") in +timer + let post_trie0 = sum( <- range(post.size)) { post.PostId(i) -> 1 } in let pht_trie0 = sum( <- range(pht.size)) { pht.PostId(i) -> 1 } in let interm0_trie0 = sum( <- post_trie0) diff --git a/progs/lsqb/gj/q5.sdql b/progs/lsqb/gj/q5.sdql index e239f8d0..aba185e6 100644 --- a/progs/lsqb/gj/q5.sdql +++ b/progs/lsqb/gj/q5.sdql @@ -2,6 +2,8 @@ let comment = load[ long}, hasCreator_PersonId: @vec {in let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +timer + let comment_trie0 = sum( <- range(comment.size)) { comment.CommentId(i) -> { comment.replyOf_PostId(i) -> 1 } } in let cht_trie0 = sum( <- range(cht.size)) { cht.CommentId(i) -> 1 } in let pht_trie0 = sum( <- range(pht.size)) { pht.PostId(i) -> 1 } in From 7a9c5cf105c602d425058d55e2ef8061ef27482a Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 6 Nov 2024 14:56:53 +0000 Subject: [PATCH 36/80] Removed TODO for fancier LSQB NaN handling and added comment explaining why --- src/main/scala/sdql/backend/CppCodegen.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 1361acb0..2e743087 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -169,7 +169,7 @@ object CppCodegen { s"${run(on)}.lastIndex(${run(patt)})" case External(SortedIndices.SYMBOL, Seq(arg)) => s"sorted_indices(${run(arg)})" - case External(SortedVec.SYMBOL, Seq(n, arg)) => + case External(SortedVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${run(n)}>(std::move(${run(arg)}))" case External(name @ Inv.SYMBOL, _) => raise(s"$name should have been handled by ${Mult.getClass.getSimpleName.init}") @@ -255,8 +255,8 @@ object CppCodegen { private def load(e: Load, name: String) = (e: @unchecked) match { case Load(path, tp: RecordType, skipCols) => - // TODO don't hardcode 0 - // NaN handling for LSQB queries (different value in each table avoids joining them) + // note: NaN handling is required for LSQB queries - we replace NaN with the same value in every table, this works + // a more robust approach would assign a different NaN value to each table, in case NaNs get joined - but no need val document = s"""const rapidcsv::Document ${name.toUpperCase}_CSV("../$path", NO_HEADERS, SEPARATOR, IntNanConverter(0));""" val skipColsSet = skipCols.toSkipColsSet From 4234ba4a4626272c9d3e29d49f4145ec31806631 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:13:23 +0000 Subject: [PATCH 37/80] Smallvecdict: const fix + equality with bag semantics --- runtime/smallvecdict.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/runtime/smallvecdict.h b/runtime/smallvecdict.h index d5ae7c39..5bfaa063 100644 --- a/runtime/smallvecdict.h +++ b/runtime/smallvecdict.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include using namespace std; @@ -54,21 +55,21 @@ class smallvec { }; class const_iterator { - T *ptr_; + const T *ptr_; public: - explicit const_iterator(T *ptr) : ptr_(ptr) {} + explicit const_iterator(const T *ptr) : ptr_(ptr) {} const_iterator &operator++() { ++ptr_; return *this; } - const T &operator*() { return *ptr_; } + const T &operator*() const { return *ptr_; } - bool operator==(const const_iterator &rhs) { return ptr_ == rhs.ptr_; } + bool operator==(const const_iterator &rhs) const { return ptr_ == rhs.ptr_; } - bool operator!=(const const_iterator &rhs) { return ptr_ != rhs.ptr_; } + bool operator!=(const const_iterator &rhs) const { return ptr_ != rhs.ptr_; } }; iterator begin() { @@ -140,4 +141,16 @@ class smallvecdict { typename Container::const_iterator begin() const { return svec_.begin(); } typename Container::const_iterator end() const { return svec_.end(); } + + bool operator==(smallvecdict &other) { + return size() == other.size() + && std::multiset(svec_.begin(), svec_.end()) + == std::multiset(other.svec_.begin(), other.svec_.end()); + } + + bool operator==(const smallvecdict &other) const { + return size() == other.size() + && std::multiset(svec_.begin(), svec_.end()) + == std::multiset(other.svec_.begin(), other.svec_.end()); + } }; From 3eab5601a93336cd93c242f124cf4615d15c9dbe Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:13:50 +0000 Subject: [PATCH 38/80] Helper functions for debugging --- runtime/debug_helper.h | 17 +++++++++++++++++ runtime/headers.h | 1 + 2 files changed, 18 insertions(+) create mode 100644 runtime/debug_helper.h diff --git a/runtime/debug_helper.h b/runtime/debug_helper.h new file mode 100644 index 00000000..fbc862d7 --- /dev/null +++ b/runtime/debug_helper.h @@ -0,0 +1,17 @@ +#pragma once + +#include "vector" +#include "smallvecdict.h" +#include "sorted_dict.h" + +// compares trie with one level of nesting to unsorted version +template +auto to_unsorted(const SortedDict & trie0, const vector& offsets) { + phmap::flat_hash_map> unsorted(trie0.size()); + for (const auto& [x0, trie1] : trie0) { + for (auto i = trie1.left(); i < trie1.right(); ++i) { + unsorted[x0][offsets[i]] += 1; + } + } + return unsorted; +} diff --git a/runtime/headers.h b/runtime/headers.h index cf928ec6..de81be08 100644 --- a/runtime/headers.h +++ b/runtime/headers.h @@ -18,6 +18,7 @@ #include "agg_helper.h" #include "bench_helper.h" #include "csv_helper.h" +#include "debug_helper.h" #include "sorted_dict.h" #include "smallvecdict.h" #include "smallvecdicts.h" From 2ebac761e2874a7a0f1748e62cd74f50d8bf22e5 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:20:37 +0000 Subject: [PATCH 39/80] More debugging utilities --- runtime/debug_helper.h | 28 ++++++++++++++++++++++++---- runtime/sorted_dict.h | 7 +++++++ 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/runtime/debug_helper.h b/runtime/debug_helper.h index fbc862d7..0839da49 100644 --- a/runtime/debug_helper.h +++ b/runtime/debug_helper.h @@ -1,17 +1,37 @@ #pragma once +#include "set" #include "vector" #include "smallvecdict.h" #include "sorted_dict.h" // compares trie with one level of nesting to unsorted version template -auto to_unsorted(const SortedDict & trie0, const vector& offsets) { - phmap::flat_hash_map> unsorted(trie0.size()); - for (const auto& [x0, trie1] : trie0) { +auto to_unsorted(const SortedDict & trie, const vector& offsets) { + phmap::flat_hash_map> unsorted(trie.size()); + for (const auto& [x, trie1] : trie) { for (auto i = trie1.left(); i < trie1.right(); ++i) { - unsorted[x0][offsets[i]] += 1; + unsorted[x][offsets[i]] += 1; } } return unsorted; } + +// compares trie with two levels of nesting to unsorted version +template +auto to_unsorted(const SortedDict>& trie, const std::vector& offsets) { + using InnerMapType = phmap::flat_hash_map>; + phmap::flat_hash_map unsorted(trie.size()); + for (const auto& [x, inner_trie] : trie) { + unsorted[x] = to_unsorted(inner_trie, offsets); + } + return unsorted; +} + +template +auto keys_to_set(const phmap::flat_hash_map& map) { + std::set kset; + std::transform(map.begin(), map.end(), std::inserter(kset, kset.end()), + [](const auto& pair) { return pair.first; }); + return kset; +} diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 8b05d660..ef290e12 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -149,4 +149,11 @@ class SortedDict { typename vector>::const_iterator end() const { return data_.end(); } + + auto keys_to_set() const { + std::set kset; + std::transform(data_.begin(), data_.end(), std::inserter(kset, kset.end()), + [](const auto& pair) { return pair.first; }); + return kset; + } }; \ No newline at end of file From bc77d783af9601153ffea514b3b0949edcfbca25 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:22:43 +0000 Subject: [PATCH 40/80] Arbitrary levels of nesting --- runtime/debug_helper.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/runtime/debug_helper.h b/runtime/debug_helper.h index 0839da49..d038c2a6 100644 --- a/runtime/debug_helper.h +++ b/runtime/debug_helper.h @@ -5,7 +5,7 @@ #include "smallvecdict.h" #include "sorted_dict.h" -// compares trie with one level of nesting to unsorted version +// compares trie with 1 level of nesting to unsorted version template auto to_unsorted(const SortedDict & trie, const vector& offsets) { phmap::flat_hash_map> unsorted(trie.size()); @@ -16,11 +16,10 @@ auto to_unsorted(const SortedDict & trie, const vector& offsets } return unsorted; } - -// compares trie with two levels of nesting to unsorted version -template -auto to_unsorted(const SortedDict>& trie, const std::vector& offsets) { - using InnerMapType = phmap::flat_hash_map>; +// compares trie with > 1 level of nesting to unsorted version +template +auto to_unsorted(const SortedDict& trie, const std::vector& offsets) { + using InnerMapType = decltype(to_unsorted(std::declval(), offsets)); phmap::flat_hash_map unsorted(trie.size()); for (const auto& [x, inner_trie] : trie) { unsorted[x] = to_unsorted(inner_trie, offsets); From 1cdd1509c5f9521c03ce2d3a04fdf1a7dba7175a Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:46:40 +0000 Subject: [PATCH 41/80] Simplified + added case --- runtime/debug_helper.h | 32 +++++++++++++++++--------------- runtime/sorted_dict.h | 7 ------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/runtime/debug_helper.h b/runtime/debug_helper.h index d038c2a6..695cf6be 100644 --- a/runtime/debug_helper.h +++ b/runtime/debug_helper.h @@ -1,36 +1,38 @@ #pragma once -#include "set" #include "vector" #include "smallvecdict.h" #include "sorted_dict.h" -// compares trie with 1 level of nesting to unsorted version +// base case: convert trie with Range values to unsorted hashmap template auto to_unsorted(const SortedDict & trie, const vector& offsets) { phmap::flat_hash_map> unsorted(trie.size()); - for (const auto& [x, trie1] : trie) { - for (auto i = trie1.left(); i < trie1.right(); ++i) { + for (const auto& [x, trie1] : trie) + for (auto i = trie1.left(); i < trie1.right(); ++i) unsorted[x][offsets[i]] += 1; - } - } return unsorted; } -// compares trie with > 1 level of nesting to unsorted version +// recursive case: convert trie with Range values to unsorted hashmap template auto to_unsorted(const SortedDict& trie, const std::vector& offsets) { using InnerMapType = decltype(to_unsorted(std::declval(), offsets)); phmap::flat_hash_map unsorted(trie.size()); - for (const auto& [x, inner_trie] : trie) { + for (const auto& [x, inner_trie] : trie) unsorted[x] = to_unsorted(inner_trie, offsets); - } return unsorted; } -template -auto keys_to_set(const phmap::flat_hash_map& map) { - std::set kset; - std::transform(map.begin(), map.end(), std::inserter(kset, kset.end()), - [](const auto& pair) { return pair.first; }); - return kset; +// base case: convert trie with int values to unsorted hashmap +inline auto to_unsorted(const SortedDict& dict) { + return phmap::flat_hash_map(dict.begin(), dict.end()); +} +// recursive case: convert trie with int values to unsorted hashmap +template +auto to_unsorted(const SortedDict& sorted_dict) { + using InnerMapType = decltype(to_unsorted(std::declval())); + phmap::flat_hash_map unsorted_map; + for (const auto& [key, nested_dict] : sorted_dict) + unsorted_map[key] = to_unsorted(nested_dict); + return unsorted_map; } diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index ef290e12..8b05d660 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -149,11 +149,4 @@ class SortedDict { typename vector>::const_iterator end() const { return data_.end(); } - - auto keys_to_set() const { - std::set kset; - std::transform(data_.begin(), data_.end(), std::inserter(kset, kset.end()), - [](const auto& pair) { return pair.first; }); - return kset; - } }; \ No newline at end of file From 600b63dcbaf4f0fce8bc57299f7a980ebf8987b6 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 11 Nov 2024 17:56:06 +0000 Subject: [PATCH 42/80] Codegen: added missing case for iterating over SortedDict --- src/main/scala/sdql/backend/CppCodegen.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 2e743087..bf32a954 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -49,7 +49,7 @@ object CppCodegen { case _: RangeNode => s"${cppType(IntType)} ${k.name} = 0; ${k.name} < ${run(e1)}; ${k.name}++" case _ => val lhs = TypeInference.run(e1)(typesLocal) match { - case DictType(_, _, _: PHmap) => s"&[${k.name}, ${v.name}]" + case DictType(_, _, _: PHmap | SortedDict(_)) => s"&[${k.name}, ${v.name}]" case DictType(_, _, _: SmallVecDict) => s"&${k.name}" case DictType(_, _, _: SmallVecDicts | Range) => s"${k.name}" case DictType(_, _, hint) => raise(s"unexpected dictionary hint: $hint") From 51adf34f4b83df1b3395b7f460d97401793e8214 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 10:46:42 +0000 Subject: [PATCH 43/80] Codegen: added const qualifiers + fixed newline --- src/main/scala/sdql/backend/CppCodegen.scala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index bf32a954..2d0a9ecb 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -24,12 +24,12 @@ object CppCodegen { case LetBinding(x @ Sym(name), e1, e2) => val isTernary = !cond(e1) { case _: Sum | _: Initialise => true } val e1Cpp = e1 match { - case e: Load => load(e, name) - case e1 @ External(ConstantString.SYMBOL, _) => + case e: Load => load(e, name) + case e1 @ External(ConstantString.SYMBOL | SortedIndices.SYMBOL, _) => s"const auto $name = ${run(e1)(typesCtx, isTernary, benchmarkRuns)};" - case e1: Const => + case e1: Const => s"constexpr auto $name = ${run(e1)(Map(), isTernary = false, benchmarkRuns)};" - case _ => + case _ => val isRetrieval = cond(e1) { case _: FieldNode | _: Get => true } def isDict = cond(TypeInference.run(e1)) { case _: DictType => true } val cppName = if (isRetrieval && isDict) s"&$name" else name @@ -227,7 +227,7 @@ object CppCodegen { case Timer(e) => val benchStart = - if (benchmarkRuns == 0) "" + if (benchmarkRuns == 0) "\n" else // note: first benchmark run is warmup s"""|\n @@ -280,8 +280,8 @@ object CppCodegen { else Seq(s"/* size */static_cast<${cppType(IntType)}>(${name.toUpperCase}_CSV.GetRowCount())") val init = (readCols ++ readSize).mkString(",\n") s"""$document - |auto ${name.toLowerCase} = ${cppType(tp, noTemplate = true)}($init); - |\n""".stripMargin + |const auto ${name.toLowerCase} = ${cppType(tp, noTemplate = true)}($init); + |""".stripMargin } private def ternary(e: IfThenElse)(implicit typesCtx: TypesCtx, benchmarkRuns: Int) = e match { From b125be2c815cdd06bebf3c2aee4112a9e285e9ef Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:12:43 +0000 Subject: [PATCH 44/80] SortedDict == comparison --- runtime/sorted_dict.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h index 8b05d660..e1019fc4 100644 --- a/runtime/sorted_dict.h +++ b/runtime/sorted_dict.h @@ -149,4 +149,11 @@ class SortedDict { typename vector>::const_iterator end() const { return data_.end(); } + + bool operator==(const SortedDict& other) const { + return size() == other.size() && + std::equal(data_.begin(), data_.end(), other.data_.begin(), [](const auto& a, const auto& b) { + return a.first == b.first && a.second.left() == b.second.left() && a.second.right() == b.second.right(); + }); + } }; \ No newline at end of file From 4ad1e37319a22643450c4d91a51ddffb37f84d2c Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 16:41:17 +0000 Subject: [PATCH 45/80] Runtime: variadic sorted indices --- runtime/sort_helper.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/runtime/sort_helper.h b/runtime/sort_helper.h index 092bb4d3..36a87c49 100644 --- a/runtime/sort_helper.h +++ b/runtime/sort_helper.h @@ -1,12 +1,22 @@ #pragma once -template -std::vector sorted_indices(const std::vector &vec) +template +std::vector sorted_indices(const std::vector& vec0, const std::vector&... vecs) { - vector v(vec.size()); - iota(v.begin(), v.end(), 0); - sort(v.begin(), v.end(), [&](const int i, const int j) { return vec[i] < vec[j]; }); - return v; + // Ensure all vectors are the same size + const std::size_t size = vec0.size(); + assert(((vecs.size() == size) && ...)); + + // Initialize the indices vector + std::vector indices(size); + std::iota(indices.begin(), indices.end(), 0); + + // Sort indices based on multi-vector lexicographic order + std::sort(indices.begin(), indices.end(), [&](int i, int j) { + return std::tie(vec0[i], vecs[i]...) < std::tie(vec0[j], vecs[j]...); + }); + + return indices; } template From f203085ff828362d8fcba54eaa0de1887ccdf2cc Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 19:28:39 +0000 Subject: [PATCH 46/80] Codegen: variadic sorted indices --- src/main/scala/sdql/analysis/TypeInference.scala | 13 ++++++++----- src/main/scala/sdql/backend/CppCodegen.scala | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index cd7a5aac..d6f345eb 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -109,12 +109,15 @@ object TypeInference { case External(StrIndexOf.SYMBOL | FirstIndex.SYMBOL | LastIndex.SYMBOL | Year.SYMBOL, _) => IntType case External(ParseDate.SYMBOL, _) => DateType case External(name @ SortedIndices.SYMBOL, args) => - val arg = args match { case Seq(e) => e } - val size = run(arg) match { - case DictType(IntType, _, Vec(size)) => size - case tpe => raise(s"$name unexpect arg ${tpe.simpleName}") + val sizes = args.map { arg => + run(arg) match { + case DictType(IntType, _, Vec(size)) => size + case tpe => raise(s"$name unexpected arg ${tpe.simpleName}") + } } - DictType(IntType, IntType, Vec(size)) + if (sizes.distinct.size != 1) + raise(s"$name requires all arguments to have the same size") + DictType(IntType, IntType, Vec(sizes.head)) case External(SortedVec.SYMBOL, args) => val (_, arg) = args match { case Seq(Const(n: Int), arg) => (n, arg) } run(arg) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 2d0a9ecb..1b69ecc3 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -167,8 +167,8 @@ object CppCodegen { s"${run(on)}.firstIndex(${run(patt)})" case External(LastIndex.SYMBOL, Seq(on, patt)) => s"${run(on)}.lastIndex(${run(patt)})" - case External(SortedIndices.SYMBOL, Seq(arg)) => - s"sorted_indices(${run(arg)})" + case External(SortedIndices.SYMBOL, args) => + s"sorted_indices(${args.map(run).mkString(", ")})" case External(SortedVec.SYMBOL, Seq(n, arg)) => s"sort_vec<${run(n)}>(std::move(${run(arg)}))" case External(name @ Inv.SYMBOL, _) => From b55451ced58e8300eb1cc1813cd8a7edb5588546 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 22:33:48 +0000 Subject: [PATCH 47/80] 3a GJ hybrid --- progs/job/gj_hybrid/3a_v1.sdql | 37 ++++++++++++++++++++++++++++++++++ progs/job/gj_hybrid/3a_v2.sdql | 36 +++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 progs/job/gj_hybrid/3a_v1.sdql create mode 100644 progs/job/gj_hybrid/3a_v2.sdql diff --git a/progs/job/gj_hybrid/3a_v1.sdql b/progs/job/gj_hybrid/3a_v1.sdql new file mode 100644 index 00000000..0664d5b3 --- /dev/null +++ b/progs/job/gj_hybrid/3a_v1.sdql @@ -0,0 +1,37 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +// TODO remove this comment +// this solution is a direct translation of Amirali's C++ code (correct, works) + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() diff --git a/progs/job/gj_hybrid/3a_v2.sdql b/progs/job/gj_hybrid/3a_v2.sdql new file mode 100644 index 00000000..507e6138 --- /dev/null +++ b/progs/job/gj_hybrid/3a_v2.sdql @@ -0,0 +1,36 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +// TODO remove this comment +// this solution is based on the original hashmap query (correct, works) + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(4) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() From ca1571d3868ff3b69f9259f5d7c5ad172c614a6e Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:45:20 +0000 Subject: [PATCH 48/80] 13a GJ hybrid --- progs/job/{fj_sorting => fj_pure}/10a.sdql | 0 progs/job/{fj_sorting => fj_pure}/3a.sdql | 0 progs/job/gj_hybrid/13a_v1.sdql | 68 ++++++++++++++++++++++ progs/job/gj_hybrid/13a_v2.sdql | 68 ++++++++++++++++++++++ 4 files changed, 136 insertions(+) rename progs/job/{fj_sorting => fj_pure}/10a.sdql (100%) rename progs/job/{fj_sorting => fj_pure}/3a.sdql (100%) create mode 100644 progs/job/gj_hybrid/13a_v1.sdql create mode 100644 progs/job/gj_hybrid/13a_v2.sdql diff --git a/progs/job/fj_sorting/10a.sdql b/progs/job/fj_pure/10a.sdql similarity index 100% rename from progs/job/fj_sorting/10a.sdql rename to progs/job/fj_pure/10a.sdql diff --git a/progs/job/fj_sorting/3a.sdql b/progs/job/fj_pure/3a.sdql similarity index 100% rename from progs/job/fj_sorting/3a.sdql rename to progs/job/fj_pure/3a.sdql diff --git a/progs/job/gj_hybrid/13a_v1.sdql b/progs/job/gj_hybrid/13a_v1.sdql new file mode 100644 index 00000000..e61efdb7 --- /dev/null +++ b/progs/job/gj_hybrid/13a_v1.sdql @@ -0,0 +1,68 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(t.size) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> { mc.company_type_id(mc_offsets(i)) -> { mc.company_id(mc_offsets(i)) -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in + +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + if (x0 ∈ mc_trie0) then + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple(1) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + // TODO remove comment - fix to Amirali's C++ query + let x3 = interm0_tuple(3) in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + // TODO remove comment - ******************* + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/job/gj_hybrid/13a_v2.sdql b/progs/job/gj_hybrid/13a_v2.sdql new file mode 100644 index 00000000..39df57fe --- /dev/null +++ b/progs/job/gj_hybrid/13a_v2.sdql @@ -0,0 +1,68 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +// TODO remove this comment +// this solution is based on the original hashmap query (correct, works) + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(t.size) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(4) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> { mc.company_type_id(mc_offsets(i)) -> { mc.company_id(mc_offsets(i)) -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in + +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- interm0_trie2) + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_mi = sum( <- mi_trie2) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in + promote[min_sum]() + From 8249ef8a90c5288faf59c672313a9541e855881f Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:46:21 +0000 Subject: [PATCH 49/80] Renamed queries --- progs/job/gj_hybrid/{13a_v2.sdql => 13a.sdql} | 3 --- progs/job/gj_hybrid/{13a_v1.sdql => 13a_amirali.sdql} | 0 progs/job/gj_hybrid/{3a_v2.sdql => 3a.sdql} | 0 progs/job/gj_hybrid/{3a_v1.sdql => 3a_amirali.sdql} | 0 4 files changed, 3 deletions(-) rename progs/job/gj_hybrid/{13a_v2.sdql => 13a.sdql} (97%) rename progs/job/gj_hybrid/{13a_v1.sdql => 13a_amirali.sdql} (100%) rename progs/job/gj_hybrid/{3a_v2.sdql => 3a.sdql} (100%) rename progs/job/gj_hybrid/{3a_v1.sdql => 3a_amirali.sdql} (100%) diff --git a/progs/job/gj_hybrid/13a_v2.sdql b/progs/job/gj_hybrid/13a.sdql similarity index 97% rename from progs/job/gj_hybrid/13a_v2.sdql rename to progs/job/gj_hybrid/13a.sdql index 39df57fe..53682222 100644 --- a/progs/job/gj_hybrid/13a_v2.sdql +++ b/progs/job/gj_hybrid/13a.sdql @@ -19,9 +19,6 @@ let cn_offsets = ext(`SortedIndices`, cn.id) timer -// TODO remove this comment -// this solution is based on the original hashmap query (correct, works) - let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) diff --git a/progs/job/gj_hybrid/13a_v1.sdql b/progs/job/gj_hybrid/13a_amirali.sdql similarity index 100% rename from progs/job/gj_hybrid/13a_v1.sdql rename to progs/job/gj_hybrid/13a_amirali.sdql diff --git a/progs/job/gj_hybrid/3a_v2.sdql b/progs/job/gj_hybrid/3a.sdql similarity index 100% rename from progs/job/gj_hybrid/3a_v2.sdql rename to progs/job/gj_hybrid/3a.sdql diff --git a/progs/job/gj_hybrid/3a_v1.sdql b/progs/job/gj_hybrid/3a_amirali.sdql similarity index 100% rename from progs/job/gj_hybrid/3a_v1.sdql rename to progs/job/gj_hybrid/3a_amirali.sdql From bb010779670728e08770b7fa5d5ac8acee9b9689 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:46:36 +0000 Subject: [PATCH 50/80] 13b GJ hybrid + fixed codegen case --- progs/job/gj_hybrid/13b.sdql | 64 ++++++++++++++++++++ src/main/scala/sdql/backend/CppCodegen.scala | 15 +++-- 2 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 progs/job/gj_hybrid/13b.sdql diff --git a/progs/job/gj_hybrid/13b.sdql b/progs/job/gj_hybrid/13b.sdql new file mode 100644 index 00000000..3f38276d --- /dev/null +++ b/progs/job/gj_hybrid/13b.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(t.size) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(4) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(mi_offsets(i)) -> @st { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st { mc.movie_id(mc_offsets(i)) -> @st { mc.company_type_id(mc_offsets(i)) -> @st { mc.company_id(mc_offsets(i)) -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- interm0_trie2) + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index 1b69ecc3..ea357863 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -323,18 +323,21 @@ object CppCodegen { exps.map(e => s"[${run(e)}]").mkString("") private def splitNested(e: Exp): (Seq[Exp], Exp) = e match { - case DictNode(Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts))), _) => + case DictNode( + Seq((k, v @ DictNode(_, _: PHmap | Range | _: SmallVecDict | _: SmallVecDicts | _: SortedDict))), + _ + ) => val (lhs, rhs) = splitNested(v) (Seq(k) ++ lhs, rhs) - case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => + case DictNode(Seq((k, DictNode(Seq((rhs, Const(1))), _: Vec))), _) => (Seq(k), rhs) - case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => + case DictNode(Seq((k @ RecNode(_), Const(1))), _: Vec) => (Seq(), k) - case DictNode(Seq((k, rhs)), _) => + case DictNode(Seq((k, rhs)), _) => (Seq(k), rhs) - case DictNode(map, _) if map.length != 1 => + case DictNode(map, _) if map.length != 1 => raise(s"unsupported: $e") - case _ => + case _ => (Seq(), e) } From 25c608331668753d0bce9779bd966c0b7e4b8d4e Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:14:08 +0000 Subject: [PATCH 51/80] Reorganised sorting queries and added tests --- build.sbt | 1 + progs/{ => sorting}/job/fj_pure/10a.sdql | 0 progs/{ => sorting}/job/fj_pure/3a.sdql | 0 progs/{ => sorting}/job/gj_hybrid/13a.sdql | 0 .../job/gj_hybrid/13a_optimised.sdql} | 0 progs/{ => sorting}/job/gj_hybrid/13b.sdql | 0 progs/{ => sorting}/job/gj_hybrid/3a.sdql | 0 .../job/gj_hybrid/3a_optimised.sdql} | 0 .../scala/sdql/backend/CppCodegenTest.scala | 14 ++++++++++ .../scala/sdql/backend/CppCompileTest.scala | 26 +++++++++++++++++++ 10 files changed, 41 insertions(+) rename progs/{ => sorting}/job/fj_pure/10a.sdql (100%) rename progs/{ => sorting}/job/fj_pure/3a.sdql (100%) rename progs/{ => sorting}/job/gj_hybrid/13a.sdql (100%) rename progs/{job/gj_hybrid/13a_amirali.sdql => sorting/job/gj_hybrid/13a_optimised.sdql} (100%) rename progs/{ => sorting}/job/gj_hybrid/13b.sdql (100%) rename progs/{ => sorting}/job/gj_hybrid/3a.sdql (100%) rename progs/{job/gj_hybrid/3a_amirali.sdql => sorting/job/gj_hybrid/3a_optimised.sdql} (100%) diff --git a/build.sbt b/build.sbt index 5c6d551b..d0f1e9cd 100644 --- a/build.sbt +++ b/build.sbt @@ -17,6 +17,7 @@ Test / testOptions ++= Seq( // require converting from Parquet to CSV the JOB datasets of https://github.com/SIGMOD23p561/free-join Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJ"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBSorting"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/job/fj_pure/10a.sdql b/progs/sorting/job/fj_pure/10a.sdql similarity index 100% rename from progs/job/fj_pure/10a.sdql rename to progs/sorting/job/fj_pure/10a.sdql diff --git a/progs/job/fj_pure/3a.sdql b/progs/sorting/job/fj_pure/3a.sdql similarity index 100% rename from progs/job/fj_pure/3a.sdql rename to progs/sorting/job/fj_pure/3a.sdql diff --git a/progs/job/gj_hybrid/13a.sdql b/progs/sorting/job/gj_hybrid/13a.sdql similarity index 100% rename from progs/job/gj_hybrid/13a.sdql rename to progs/sorting/job/gj_hybrid/13a.sdql diff --git a/progs/job/gj_hybrid/13a_amirali.sdql b/progs/sorting/job/gj_hybrid/13a_optimised.sdql similarity index 100% rename from progs/job/gj_hybrid/13a_amirali.sdql rename to progs/sorting/job/gj_hybrid/13a_optimised.sdql diff --git a/progs/job/gj_hybrid/13b.sdql b/progs/sorting/job/gj_hybrid/13b.sdql similarity index 100% rename from progs/job/gj_hybrid/13b.sdql rename to progs/sorting/job/gj_hybrid/13b.sdql diff --git a/progs/job/gj_hybrid/3a.sdql b/progs/sorting/job/gj_hybrid/3a.sdql similarity index 100% rename from progs/job/gj_hybrid/3a.sdql rename to progs/sorting/job/gj_hybrid/3a.sdql diff --git a/progs/job/gj_hybrid/3a_amirali.sdql b/progs/sorting/job/gj_hybrid/3a_optimised.sdql similarity index 100% rename from progs/job/gj_hybrid/3a_amirali.sdql rename to progs/sorting/job/gj_hybrid/3a_optimised.sdql diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index c50515a3..7024472f 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -541,6 +541,20 @@ class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { } } +class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { + it should "codegen JOB FJ 3a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/3a.sdql") + it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") + it should "codegen JOB GJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/3a.sdql") + it should "codegen JOB GJ 3a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( + "progs/sorting/job/gj_hybrid/3a_optimised.sdql" + ) + it should "codegen JOB GJ 13a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13a.sdql") + it should "codegen JOB GJ 13a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( + "progs/sorting/job/gj_hybrid/13a_optimised.sdql" + ) + it should "codegen JOB GJ 13b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13b.sdql") +} + object CodegenHelpers { def compilesFile(path: String): Unit = compilesExp(SourceCode.fromFile(path).exp) def compilesExp(e: Exp): Unit = assert(fromCpp(CppCodegen(Rewriter.rewrite(e))) == 0) diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 51fe2134..203b36a8 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -644,6 +644,32 @@ class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with } } +class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { + + object TestJOBSorting extends Tag("TestJOBSorting") + + it should "compile and run JOB 3a" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") + } + + it should "compile and run JOB FJ 10a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/fj_pure/10a.sdql", + "results/job/10a.result" + ) + + it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") + } + + it should "compile and run JOB GJ 13b hybrid sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/gj_hybrid/13b.sdql", + "results/job/13b.result" + ) +} + object DatasetsHelpers { sealed trait Dataset From 4e182a89c55f4a85c77a12a24d57bb142c8e1297 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 21 Nov 2024 18:05:57 +0000 Subject: [PATCH 52/80] Minor fix to sorting in JOB FJ pure 3a, 10a (doesn't impact results) --- progs/sorting/job/fj_pure/10a.sdql | 4 ++-- progs/sorting/job/fj_pure/3a.sdql | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/progs/sorting/job/fj_pure/10a.sdql b/progs/sorting/job/fj_pure/10a.sdql index b42e625c..0b35ae47 100644 --- a/progs/sorting/job/fj_pure/10a.sdql +++ b/progs/sorting/job/fj_pure/10a.sdql @@ -1,5 +1,5 @@ let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") -let mc_offsets = ext(`SortedIndices`, mc.id) +let mc_offsets = ext(`SortedIndices`, mc.movie_id) let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/t.csv") let t_offsets = ext(`SortedIndices`, t.id) let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") @@ -7,7 +7,7 @@ let ct_offsets = ext(`SortedIndices`, ct.id) let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/cn.csv") let cn_offsets = ext(`SortedIndices`, cn.id) let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10a/ci.csv") -let ci_offsets = ext(`SortedIndices`, ci.id) +let ci_offsets = ext(`SortedIndices`, ci.movie_id) let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") let rt_offsets = ext(`SortedIndices`, rt.id) let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") diff --git a/progs/sorting/job/fj_pure/3a.sdql b/progs/sorting/job/fj_pure/3a.sdql index 4cb51f94..2a91d274 100644 --- a/progs/sorting/job/fj_pure/3a.sdql +++ b/progs/sorting/job/fj_pure/3a.sdql @@ -1,9 +1,9 @@ let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") -let mk_offsets = ext(`SortedIndices`, mk.id) +let mk_offsets = ext(`SortedIndices`, mk.movie_id) let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") let t_offsets = ext(`SortedIndices`, t.id) let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") -let mi_offsets = ext(`SortedIndices`, mi.id) +let mi_offsets = ext(`SortedIndices`, mi.movie_id) let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") let k_offsets = ext(`SortedIndices`, k.id) From 98985fa2ead4f0b2c8df351a038b29733cd8bc4b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:41:52 +0000 Subject: [PATCH 53/80] Added FJ pure 8a, 12b, 17b, 17f --- progs/sorting/job/fj_pure/12b.sdql | 63 ++++++++++++++++++++++++++++++ progs/sorting/job/fj_pure/17b.sdql | 52 ++++++++++++++++++++++++ progs/sorting/job/fj_pure/17f.sdql | 52 ++++++++++++++++++++++++ progs/sorting/job/fj_pure/8a.sdql | 50 ++++++++++++++++++++++++ 4 files changed, 217 insertions(+) create mode 100644 progs/sorting/job/fj_pure/12b.sdql create mode 100644 progs/sorting/job/fj_pure/17b.sdql create mode 100644 progs/sorting/job/fj_pure/17f.sdql create mode 100644 progs/sorting/job/fj_pure/8a.sdql diff --git a/progs/sorting/job/fj_pure/12b.sdql b/progs/sorting/job/fj_pure/12b.sdql new file mode 100644 index 00000000..5ada78bf --- /dev/null +++ b/progs/sorting/job/fj_pure/12b.sdql @@ -0,0 +1,63 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17b.sdql b/progs/sorting/job/fj_pure/17b.sdql new file mode 100644 index 00000000..8f9f3ceb --- /dev/null +++ b/progs/sorting/job/fj_pure/17b.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17f.sdql b/progs/sorting/job/fj_pure/17f.sdql new file mode 100644 index 00000000..6d58981d --- /dev/null +++ b/progs/sorting/job/fj_pure/17f.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17f/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/8a.sdql b/progs/sorting/job/fj_pure/8a.sdql new file mode 100644 index 00000000..4ac8cec1 --- /dev/null +++ b/progs/sorting/job/fj_pure/8a.sdql @@ -0,0 +1,50 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/n1.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + if (x1 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x1) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + From dfe8b4e911b787378eb5ece8207a6ec365d8fd14 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 21 Nov 2024 18:15:15 +0000 Subject: [PATCH 54/80] Added unit tests for JOB FJ pure new queries --- .../scala/sdql/backend/CppCompileTest.scala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 203b36a8..220ab334 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -654,11 +654,21 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") } + it should "compile and run JOB FJ 8a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/fj_pure/8a.sdql", + "results/job/8a.result" + ) + it should "compile and run JOB FJ 10a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( "progs/sorting/job/fj_pure/10a.sdql", "results/job/10a.result" ) + it should "compile and run JOB FJ 12b pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/fj_pure/12b.sdql", + "results/job/12b.result" + ) + it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBSorting in { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") @@ -668,6 +678,16 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { "progs/sorting/job/gj_hybrid/13b.sdql", "results/job/13b.result" ) + + it should "compile and run JOB FJ 17b pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/fj_pure/17b.sdql", + "results/job/17b.result" + ) + + it should "compile and run JOB FJ 17f pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + "progs/sorting/job/fj_pure/17f.sdql", + "results/job/17f.result" + ) } object DatasetsHelpers { From 60da229d5062729fb8dec24960f0c14ea2b5230f Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 12:54:19 +0000 Subject: [PATCH 55/80] Added codegen unit tests --- src/test/scala/sdql/backend/CppCodegenTest.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 7024472f..199405cc 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -543,16 +543,20 @@ class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 3a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/3a.sdql") - it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") it should "codegen JOB GJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/3a.sdql") it should "codegen JOB GJ 3a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( "progs/sorting/job/gj_hybrid/3a_optimised.sdql" ) + it should "codegen JOB FJ 8a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/8a.sdql") + it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") + it should "codegen JOB FJ 12b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/12b.sdql") it should "codegen JOB GJ 13a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13a.sdql") it should "codegen JOB GJ 13a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( "progs/sorting/job/gj_hybrid/13a_optimised.sdql" ) it should "codegen JOB GJ 13b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13b.sdql") + it should "codegen JOB FJ 17b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17b.sdql") + it should "codegen JOB FJ 17f pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17f.sdql") } object CodegenHelpers { From 485a4f758fdc9df52f52041454ddb02153a2c422 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 12:54:40 +0000 Subject: [PATCH 56/80] JOB FJ hybrid 3a --- progs/sorting/job/fj_hybrid/3a.sdql | 33 +++++++++++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 1 + .../scala/sdql/backend/CppCompileTest.scala | 1 + 3 files changed, 35 insertions(+) create mode 100644 progs/sorting/job/fj_hybrid/3a.sdql diff --git a/progs/sorting/job/fj_hybrid/3a.sdql b/progs/sorting/job/fj_hybrid/3a.sdql new file mode 100644 index 00000000..ee34e5a2 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/3a.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 199405cc..210b9f1b 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -543,6 +543,7 @@ class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 3a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/3a.sdql") + it should "codegen JOB FJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/3a.sdql") it should "codegen JOB GJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/3a.sdql") it should "codegen JOB GJ 3a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( "progs/sorting/job/gj_hybrid/3a_optimised.sdql" diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 220ab334..86693832 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -650,6 +650,7 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { it should "compile and run JOB 3a" taggedAs TestJOBSorting in { CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3a.sdql", "results/job/3a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") } From d35f1c734bafd624415c6b536c0f3524a4bd628f Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:55:46 +0000 Subject: [PATCH 57/80] JOB FJ hybrid 8a --- progs/sorting/job/fj_hybrid/8a.sdql | 48 +++++++++++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 1 + .../scala/sdql/backend/CppCompileTest.scala | 8 ++-- 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 progs/sorting/job/fj_hybrid/8a.sdql diff --git a/progs/sorting/job/fj_hybrid/8a.sdql b/progs/sorting/job/fj_hybrid/8a.sdql new file mode 100644 index 00000000..321b9156 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/8a.sdql @@ -0,0 +1,48 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/n1.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in + +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + if (x1 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x1) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 210b9f1b..24fcf274 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -549,6 +549,7 @@ class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { "progs/sorting/job/gj_hybrid/3a_optimised.sdql" ) it should "codegen JOB FJ 8a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/8a.sdql") + it should "codegen JOB FJ 8a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/8a.sdql") it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") it should "codegen JOB FJ 12b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/12b.sdql") it should "codegen JOB GJ 13a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13a.sdql") diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 86693832..22ed452b 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -655,10 +655,10 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") } - it should "compile and run JOB FJ 8a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( - "progs/sorting/job/fj_pure/8a.sdql", - "results/job/8a.result" - ) + it should "compile and run JOB 8a" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8a.sdql", "results/job/8a.result") + } it should "compile and run JOB FJ 10a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( "progs/sorting/job/fj_pure/10a.sdql", From b103fdc4be884337797a70328fd0313e29c775ad Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 14:20:36 +0000 Subject: [PATCH 58/80] JOB FJ hybrid 12b --- progs/sorting/job/fj_hybrid/12b.sdql | 59 +++++++++++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 1 + .../scala/sdql/backend/CppCompileTest.scala | 8 +-- 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 progs/sorting/job/fj_hybrid/12b.sdql diff --git a/progs/sorting/job/fj_hybrid/12b.sdql b/progs/sorting/job/fj_hybrid/12b.sdql new file mode 100644 index 00000000..9ec2a465 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/12b.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 24fcf274..b6576dec 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -552,6 +552,7 @@ class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 8a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/8a.sdql") it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") it should "codegen JOB FJ 12b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/12b.sdql") + it should "codegen JOB FJ 12b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/12b.sdql") it should "codegen JOB GJ 13a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13a.sdql") it should "codegen JOB GJ 13a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( "progs/sorting/job/gj_hybrid/13a_optimised.sdql" diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 22ed452b..277d5935 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -665,10 +665,10 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { "results/job/10a.result" ) - it should "compile and run JOB FJ 12b pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( - "progs/sorting/job/fj_pure/12b.sdql", - "results/job/12b.result" - ) + it should "compile and run JOB 12b" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12b.sdql", "results/job/12b.result") + } it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBSorting in { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") From 96e98964f04412968cb5a20870286ac21c8d63cb Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 14:47:06 +0000 Subject: [PATCH 59/80] JOB FJ hybrid 17b --- progs/sorting/job/fj_hybrid/17b.sdql | 50 +++++++++++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 1 + .../scala/sdql/backend/CppCompileTest.scala | 8 +-- 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 progs/sorting/job/fj_hybrid/17b.sdql diff --git a/progs/sorting/job/fj_hybrid/17b.sdql b/progs/sorting/job/fj_hybrid/17b.sdql new file mode 100644 index 00000000..aafdd337 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17b.sdql @@ -0,0 +1,50 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index b6576dec..c088dba2 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -559,6 +559,7 @@ class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { ) it should "codegen JOB GJ 13b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13b.sdql") it should "codegen JOB FJ 17b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17b.sdql") + it should "codegen JOB FJ 17b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/17b.sdql") it should "codegen JOB FJ 17f pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17f.sdql") } diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 277d5935..c90366fb 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -680,10 +680,10 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { "results/job/13b.result" ) - it should "compile and run JOB FJ 17b pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( - "progs/sorting/job/fj_pure/17b.sdql", - "results/job/17b.result" - ) + it should "compile and run JOB 17b" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17b.sdql", "results/job/17b.result") + } it should "compile and run JOB FJ 17f pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( "progs/sorting/job/fj_pure/17f.sdql", From a8a050232d0f8dd3f848a770a1887bdbcb87b29c Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:20:38 +0000 Subject: [PATCH 60/80] JOB FJ hybrid 17b --- progs/sorting/job/fj_hybrid/17f.sdql | 49 +++++++++++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 1 + .../scala/sdql/backend/CppCompileTest.scala | 8 +-- 3 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 progs/sorting/job/fj_hybrid/17f.sdql diff --git a/progs/sorting/job/fj_hybrid/17f.sdql b/progs/sorting/job/fj_hybrid/17f.sdql new file mode 100644 index 00000000..5dbdb68a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17f.sdql @@ -0,0 +1,49 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17f/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index c088dba2..a4df7c6b 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -561,6 +561,7 @@ class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 17b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17b.sdql") it should "codegen JOB FJ 17b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/17b.sdql") it should "codegen JOB FJ 17f pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17f.sdql") + it should "codegen JOB FJ 17f hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/17f.sdql") } object CodegenHelpers { diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index c90366fb..ab073578 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -685,10 +685,10 @@ class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17b.sdql", "results/job/17b.result") } - it should "compile and run JOB FJ 17f pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( - "progs/sorting/job/fj_pure/17f.sdql", - "results/job/17f.result" - ) + it should "compile and run JOB 17f" taggedAs TestJOBSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17f.sdql", "results/job/17f.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17f.sdql", "results/job/17f.result") + } } object DatasetsHelpers { From c2f3956a7c5be8675c16b1bdc6f3cf014afa60f3 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sat, 23 Nov 2024 20:36:54 +0000 Subject: [PATCH 61/80] FJ pure sorting (all queries) --- build.sbt | 3 +- progs/sorting/job/fj_pure/10b.sdql | 41 ++++ progs/sorting/job/fj_pure/10c.sdql | 54 +++++ progs/sorting/job/fj_pure/11a.sdql | 64 ++++++ progs/sorting/job/fj_pure/11b.sdql | 64 ++++++ progs/sorting/job/fj_pure/11c.sdql | 64 ++++++ progs/sorting/job/fj_pure/11d.sdql | 64 ++++++ progs/sorting/job/fj_pure/12a.sdql | 63 ++++++ progs/sorting/job/fj_pure/12c.sdql | 63 ++++++ progs/sorting/job/fj_pure/13a.sdql | 69 +++++++ progs/sorting/job/fj_pure/13b.sdql | 69 +++++++ progs/sorting/job/fj_pure/13c.sdql | 69 +++++++ progs/sorting/job/fj_pure/13d.sdql | 69 +++++++ progs/sorting/job/fj_pure/14a.sdql | 62 ++++++ progs/sorting/job/fj_pure/14b.sdql | 62 ++++++ progs/sorting/job/fj_pure/14c.sdql | 62 ++++++ progs/sorting/job/fj_pure/15a.sdql | 68 +++++++ progs/sorting/job/fj_pure/15b.sdql | 68 +++++++ progs/sorting/job/fj_pure/15c.sdql | 68 +++++++ progs/sorting/job/fj_pure/15d.sdql | 68 +++++++ progs/sorting/job/fj_pure/16a.sdql | 60 ++++++ progs/sorting/job/fj_pure/16b.sdql | 60 ++++++ progs/sorting/job/fj_pure/16c.sdql | 60 ++++++ progs/sorting/job/fj_pure/16d.sdql | 60 ++++++ progs/sorting/job/fj_pure/17a.sdql | 52 +++++ progs/sorting/job/fj_pure/17c.sdql | 52 +++++ progs/sorting/job/fj_pure/17d.sdql | 52 +++++ progs/sorting/job/fj_pure/17e.sdql | 52 +++++ progs/sorting/job/fj_pure/18a.sdql | 61 ++++++ progs/sorting/job/fj_pure/18b.sdql | 61 ++++++ progs/sorting/job/fj_pure/18c.sdql | 61 ++++++ progs/sorting/job/fj_pure/19a.sdql | 79 +++++++ progs/sorting/job/fj_pure/19b.sdql | 79 +++++++ progs/sorting/job/fj_pure/19c.sdql | 79 +++++++ progs/sorting/job/fj_pure/19d.sdql | 79 +++++++ progs/sorting/job/fj_pure/1a.sdql | 44 ++++ progs/sorting/job/fj_pure/1b.sdql | 44 ++++ progs/sorting/job/fj_pure/1c.sdql | 44 ++++ progs/sorting/job/fj_pure/1d.sdql | 44 ++++ progs/sorting/job/fj_pure/20a.sdql | 76 +++++++ progs/sorting/job/fj_pure/20b.sdql | 76 +++++++ progs/sorting/job/fj_pure/20c.sdql | 77 +++++++ progs/sorting/job/fj_pure/21a.sdql | 78 +++++++ progs/sorting/job/fj_pure/21b.sdql | 78 +++++++ progs/sorting/job/fj_pure/21c.sdql | 78 +++++++ progs/sorting/job/fj_pure/22a.sdql | 95 +++++++++ progs/sorting/job/fj_pure/22b.sdql | 95 +++++++++ progs/sorting/job/fj_pure/22c.sdql | 95 +++++++++ progs/sorting/job/fj_pure/22d.sdql | 95 +++++++++ progs/sorting/job/fj_pure/23a.sdql | 99 +++++++++ progs/sorting/job/fj_pure/23b.sdql | 99 +++++++++ progs/sorting/job/fj_pure/23c.sdql | 99 +++++++++ progs/sorting/job/fj_pure/24a.sdql | 100 +++++++++ progs/sorting/job/fj_pure/24b.sdql | 100 +++++++++ progs/sorting/job/fj_pure/25a.sdql | 75 +++++++ progs/sorting/job/fj_pure/25b.sdql | 75 +++++++ progs/sorting/job/fj_pure/25c.sdql | 75 +++++++ progs/sorting/job/fj_pure/26a.sdql | 105 ++++++++++ progs/sorting/job/fj_pure/26b.sdql | 104 ++++++++++ progs/sorting/job/fj_pure/26c.sdql | 104 ++++++++++ progs/sorting/job/fj_pure/27a.sdql | 117 +++++++++++ progs/sorting/job/fj_pure/27b.sdql | 117 +++++++++++ progs/sorting/job/fj_pure/27c.sdql | 117 +++++++++++ progs/sorting/job/fj_pure/28a.sdql | 125 ++++++++++++ progs/sorting/job/fj_pure/28b.sdql | 125 ++++++++++++ progs/sorting/job/fj_pure/28c.sdql | 125 ++++++++++++ progs/sorting/job/fj_pure/29a.sdql | 155 ++++++++++++++ progs/sorting/job/fj_pure/29b.sdql | 155 ++++++++++++++ progs/sorting/job/fj_pure/29c.sdql | 155 ++++++++++++++ progs/sorting/job/fj_pure/2a.sdql | 34 ++++ progs/sorting/job/fj_pure/2b.sdql | 34 ++++ progs/sorting/job/fj_pure/2c.sdql | 26 +++ progs/sorting/job/fj_pure/2d.sdql | 34 ++++ progs/sorting/job/fj_pure/30a.sdql | 112 ++++++++++ progs/sorting/job/fj_pure/30b.sdql | 112 ++++++++++ progs/sorting/job/fj_pure/30c.sdql | 112 ++++++++++ progs/sorting/job/fj_pure/31a.sdql | 88 ++++++++ progs/sorting/job/fj_pure/31b.sdql | 88 ++++++++ progs/sorting/job/fj_pure/31c.sdql | 88 ++++++++ progs/sorting/job/fj_pure/32a.sdql | 38 ++++ progs/sorting/job/fj_pure/32b.sdql | 52 +++++ progs/sorting/job/fj_pure/33a.sdql | 136 +++++++++++++ progs/sorting/job/fj_pure/33b.sdql | 136 +++++++++++++ progs/sorting/job/fj_pure/33c.sdql | 136 +++++++++++++ progs/sorting/job/fj_pure/3b.sdql | 37 ++++ progs/sorting/job/fj_pure/3c.sdql | 37 ++++ progs/sorting/job/fj_pure/4a.sdql | 35 ++++ progs/sorting/job/fj_pure/4b.sdql | 35 ++++ progs/sorting/job/fj_pure/4c.sdql | 35 ++++ progs/sorting/job/fj_pure/5c.sdql | 34 ++++ progs/sorting/job/fj_pure/6a.sdql | 44 ++++ progs/sorting/job/fj_pure/6b.sdql | 44 ++++ progs/sorting/job/fj_pure/6c.sdql | 44 ++++ progs/sorting/job/fj_pure/6d.sdql | 44 ++++ progs/sorting/job/fj_pure/6e.sdql | 44 ++++ progs/sorting/job/fj_pure/6f.sdql | 44 ++++ progs/sorting/job/fj_pure/7a.sdql | 67 ++++++ progs/sorting/job/fj_pure/7b.sdql | 67 ++++++ progs/sorting/job/fj_pure/7c.sdql | 66 ++++++ progs/sorting/job/fj_pure/8a.sdql | 4 +- progs/sorting/job/fj_pure/8b.sdql | 50 +++++ progs/sorting/job/fj_pure/8c.sdql | 50 +++++ progs/sorting/job/fj_pure/8d.sdql | 50 +++++ progs/sorting/job/fj_pure/9a.sdql | 57 ++++++ progs/sorting/job/fj_pure/9b.sdql | 58 ++++++ progs/sorting/job/fj_pure/9c.sdql | 58 ++++++ progs/sorting/job/fj_pure/9d.sdql | 58 ++++++ .../scala/sdql/backend/CppCompileTest.scala | 192 ++++++++++++++++-- 108 files changed, 7865 insertions(+), 21 deletions(-) create mode 100644 progs/sorting/job/fj_pure/10b.sdql create mode 100644 progs/sorting/job/fj_pure/10c.sdql create mode 100644 progs/sorting/job/fj_pure/11a.sdql create mode 100644 progs/sorting/job/fj_pure/11b.sdql create mode 100644 progs/sorting/job/fj_pure/11c.sdql create mode 100644 progs/sorting/job/fj_pure/11d.sdql create mode 100644 progs/sorting/job/fj_pure/12a.sdql create mode 100644 progs/sorting/job/fj_pure/12c.sdql create mode 100644 progs/sorting/job/fj_pure/13a.sdql create mode 100644 progs/sorting/job/fj_pure/13b.sdql create mode 100644 progs/sorting/job/fj_pure/13c.sdql create mode 100644 progs/sorting/job/fj_pure/13d.sdql create mode 100644 progs/sorting/job/fj_pure/14a.sdql create mode 100644 progs/sorting/job/fj_pure/14b.sdql create mode 100644 progs/sorting/job/fj_pure/14c.sdql create mode 100644 progs/sorting/job/fj_pure/15a.sdql create mode 100644 progs/sorting/job/fj_pure/15b.sdql create mode 100644 progs/sorting/job/fj_pure/15c.sdql create mode 100644 progs/sorting/job/fj_pure/15d.sdql create mode 100644 progs/sorting/job/fj_pure/16a.sdql create mode 100644 progs/sorting/job/fj_pure/16b.sdql create mode 100644 progs/sorting/job/fj_pure/16c.sdql create mode 100644 progs/sorting/job/fj_pure/16d.sdql create mode 100644 progs/sorting/job/fj_pure/17a.sdql create mode 100644 progs/sorting/job/fj_pure/17c.sdql create mode 100644 progs/sorting/job/fj_pure/17d.sdql create mode 100644 progs/sorting/job/fj_pure/17e.sdql create mode 100644 progs/sorting/job/fj_pure/18a.sdql create mode 100644 progs/sorting/job/fj_pure/18b.sdql create mode 100644 progs/sorting/job/fj_pure/18c.sdql create mode 100644 progs/sorting/job/fj_pure/19a.sdql create mode 100644 progs/sorting/job/fj_pure/19b.sdql create mode 100644 progs/sorting/job/fj_pure/19c.sdql create mode 100644 progs/sorting/job/fj_pure/19d.sdql create mode 100644 progs/sorting/job/fj_pure/1a.sdql create mode 100644 progs/sorting/job/fj_pure/1b.sdql create mode 100644 progs/sorting/job/fj_pure/1c.sdql create mode 100644 progs/sorting/job/fj_pure/1d.sdql create mode 100644 progs/sorting/job/fj_pure/20a.sdql create mode 100644 progs/sorting/job/fj_pure/20b.sdql create mode 100644 progs/sorting/job/fj_pure/20c.sdql create mode 100644 progs/sorting/job/fj_pure/21a.sdql create mode 100644 progs/sorting/job/fj_pure/21b.sdql create mode 100644 progs/sorting/job/fj_pure/21c.sdql create mode 100644 progs/sorting/job/fj_pure/22a.sdql create mode 100644 progs/sorting/job/fj_pure/22b.sdql create mode 100644 progs/sorting/job/fj_pure/22c.sdql create mode 100644 progs/sorting/job/fj_pure/22d.sdql create mode 100644 progs/sorting/job/fj_pure/23a.sdql create mode 100644 progs/sorting/job/fj_pure/23b.sdql create mode 100644 progs/sorting/job/fj_pure/23c.sdql create mode 100644 progs/sorting/job/fj_pure/24a.sdql create mode 100644 progs/sorting/job/fj_pure/24b.sdql create mode 100644 progs/sorting/job/fj_pure/25a.sdql create mode 100644 progs/sorting/job/fj_pure/25b.sdql create mode 100644 progs/sorting/job/fj_pure/25c.sdql create mode 100644 progs/sorting/job/fj_pure/26a.sdql create mode 100644 progs/sorting/job/fj_pure/26b.sdql create mode 100644 progs/sorting/job/fj_pure/26c.sdql create mode 100644 progs/sorting/job/fj_pure/27a.sdql create mode 100644 progs/sorting/job/fj_pure/27b.sdql create mode 100644 progs/sorting/job/fj_pure/27c.sdql create mode 100644 progs/sorting/job/fj_pure/28a.sdql create mode 100644 progs/sorting/job/fj_pure/28b.sdql create mode 100644 progs/sorting/job/fj_pure/28c.sdql create mode 100644 progs/sorting/job/fj_pure/29a.sdql create mode 100644 progs/sorting/job/fj_pure/29b.sdql create mode 100644 progs/sorting/job/fj_pure/29c.sdql create mode 100644 progs/sorting/job/fj_pure/2a.sdql create mode 100644 progs/sorting/job/fj_pure/2b.sdql create mode 100644 progs/sorting/job/fj_pure/2c.sdql create mode 100644 progs/sorting/job/fj_pure/2d.sdql create mode 100644 progs/sorting/job/fj_pure/30a.sdql create mode 100644 progs/sorting/job/fj_pure/30b.sdql create mode 100644 progs/sorting/job/fj_pure/30c.sdql create mode 100644 progs/sorting/job/fj_pure/31a.sdql create mode 100644 progs/sorting/job/fj_pure/31b.sdql create mode 100644 progs/sorting/job/fj_pure/31c.sdql create mode 100644 progs/sorting/job/fj_pure/32a.sdql create mode 100644 progs/sorting/job/fj_pure/32b.sdql create mode 100644 progs/sorting/job/fj_pure/33a.sdql create mode 100644 progs/sorting/job/fj_pure/33b.sdql create mode 100644 progs/sorting/job/fj_pure/33c.sdql create mode 100644 progs/sorting/job/fj_pure/3b.sdql create mode 100644 progs/sorting/job/fj_pure/3c.sdql create mode 100644 progs/sorting/job/fj_pure/4a.sdql create mode 100644 progs/sorting/job/fj_pure/4b.sdql create mode 100644 progs/sorting/job/fj_pure/4c.sdql create mode 100644 progs/sorting/job/fj_pure/5c.sdql create mode 100644 progs/sorting/job/fj_pure/6a.sdql create mode 100644 progs/sorting/job/fj_pure/6b.sdql create mode 100644 progs/sorting/job/fj_pure/6c.sdql create mode 100644 progs/sorting/job/fj_pure/6d.sdql create mode 100644 progs/sorting/job/fj_pure/6e.sdql create mode 100644 progs/sorting/job/fj_pure/6f.sdql create mode 100644 progs/sorting/job/fj_pure/7a.sdql create mode 100644 progs/sorting/job/fj_pure/7b.sdql create mode 100644 progs/sorting/job/fj_pure/7c.sdql create mode 100644 progs/sorting/job/fj_pure/8b.sdql create mode 100644 progs/sorting/job/fj_pure/8c.sdql create mode 100644 progs/sorting/job/fj_pure/8d.sdql create mode 100644 progs/sorting/job/fj_pure/9a.sdql create mode 100644 progs/sorting/job/fj_pure/9b.sdql create mode 100644 progs/sorting/job/fj_pure/9c.sdql create mode 100644 progs/sorting/job/fj_pure/9d.sdql diff --git a/build.sbt b/build.sbt index d0f1e9cd..232b333f 100644 --- a/build.sbt +++ b/build.sbt @@ -17,7 +17,8 @@ Test / testOptions ++= Seq( // require converting from Parquet to CSV the JOB datasets of https://github.com/SIGMOD23p561/free-join Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJ"), - Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBSorting"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJSorting"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBHybrid"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/sorting/job/fj_pure/10b.sdql b/progs/sorting/job/fj_pure/10b.sdql new file mode 100644 index 00000000..11ca2a59 --- /dev/null +++ b/progs/sorting/job/fj_pure/10b.sdql @@ -0,0 +1,41 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10b/t.csv") +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10b/cn.csv") +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10b/ci.csv") +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10b/rt.csv") +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") + +let ct_trie0 = sum( <- range(ct.size)) @phmap(ct.size) { unique(ct.id(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + let x2 = mc.movie_id(mc_off) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + sum( <- t_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @phmap(rt.size) { unique(rt.id(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @phmap(chn.size) { chn.id(i) -> @smallvecdict(4) { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_role_id(ci_off) in + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/10c.sdql b/progs/sorting/job/fj_pure/10c.sdql new file mode 100644 index 00000000..dc27747d --- /dev/null +++ b/progs/sorting/job/fj_pure/10c.sdql @@ -0,0 +1,54 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/role_type.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + let x2 = mc.movie_id(mc_off) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_role_id(ci_off) in + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/11a.sdql b/progs/sorting/job/fj_pure/11a.sdql new file mode 100644 index 00000000..9e81ac25 --- /dev/null +++ b/progs/sorting/job/fj_pure/11a.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/11b.sdql b/progs/sorting/job/fj_pure/11b.sdql new file mode 100644 index 00000000..cb6b3f5b --- /dev/null +++ b/progs/sorting/job/fj_pure/11b.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/11c.sdql b/progs/sorting/job/fj_pure/11c.sdql new file mode 100644 index 00000000..011ce6dd --- /dev/null +++ b/progs/sorting/job/fj_pure/11c.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_mc = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/11d.sdql b/progs/sorting/job/fj_pure/11d.sdql new file mode 100644 index 00000000..b3a2c726 --- /dev/null +++ b/progs/sorting/job/fj_pure/11d.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_mc = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/12a.sdql b/progs/sorting/job/fj_pure/12a.sdql new file mode 100644 index 00000000..10e63eaa --- /dev/null +++ b/progs/sorting/job/fj_pure/12a.sdql @@ -0,0 +1,63 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/12c.sdql b/progs/sorting/job/fj_pure/12c.sdql new file mode 100644 index 00000000..c25109d5 --- /dev/null +++ b/progs/sorting/job/fj_pure/12c.sdql @@ -0,0 +1,63 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/13a.sdql b/progs/sorting/job/fj_pure/13a.sdql new file mode 100644 index 00000000..1cdc4d77 --- /dev/null +++ b/progs/sorting/job/fj_pure/13a.sdql @@ -0,0 +1,69 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/13b.sdql b/progs/sorting/job/fj_pure/13b.sdql new file mode 100644 index 00000000..f695bd72 --- /dev/null +++ b/progs/sorting/job/fj_pure/13b.sdql @@ -0,0 +1,69 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/13c.sdql b/progs/sorting/job/fj_pure/13c.sdql new file mode 100644 index 00000000..cf7ac37f --- /dev/null +++ b/progs/sorting/job/fj_pure/13c.sdql @@ -0,0 +1,69 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/13d.sdql b/progs/sorting/job/fj_pure/13d.sdql new file mode 100644 index 00000000..0a28d45f --- /dev/null +++ b/progs/sorting/job/fj_pure/13d.sdql @@ -0,0 +1,69 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/14a.sdql b/progs/sorting/job/fj_pure/14a.sdql new file mode 100644 index 00000000..c2c3f2c6 --- /dev/null +++ b/progs/sorting/job/fj_pure/14a.sdql @@ -0,0 +1,62 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/14b.sdql b/progs/sorting/job/fj_pure/14b.sdql new file mode 100644 index 00000000..363d74c5 --- /dev/null +++ b/progs/sorting/job/fj_pure/14b.sdql @@ -0,0 +1,62 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/14c.sdql b/progs/sorting/job/fj_pure/14c.sdql new file mode 100644 index 00000000..d87584aa --- /dev/null +++ b/progs/sorting/job/fj_pure/14c.sdql @@ -0,0 +1,62 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/15a.sdql b/progs/sorting/job/fj_pure/15a.sdql new file mode 100644 index 00000000..d6f3a60d --- /dev/null +++ b/progs/sorting/job/fj_pure/15a.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/15b.sdql b/progs/sorting/job/fj_pure/15b.sdql new file mode 100644 index 00000000..1c6702ae --- /dev/null +++ b/progs/sorting/job/fj_pure/15b.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/15c.sdql b/progs/sorting/job/fj_pure/15c.sdql new file mode 100644 index 00000000..1630a52e --- /dev/null +++ b/progs/sorting/job/fj_pure/15c.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/15d.sdql b/progs/sorting/job/fj_pure/15d.sdql new file mode 100644 index 00000000..0394472c --- /dev/null +++ b/progs/sorting/job/fj_pure/15d.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_interm0 = in + let mn_at = sum( <- at_trie1) let at_off = at_offsets(at_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/16a.sdql b/progs/sorting/job/fj_pure/16a.sdql new file mode 100644 index 00000000..26f64047 --- /dev/null +++ b/progs/sorting/job/fj_pure/16a.sdql @@ -0,0 +1,60 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/16b.sdql b/progs/sorting/job/fj_pure/16b.sdql new file mode 100644 index 00000000..d5874209 --- /dev/null +++ b/progs/sorting/job/fj_pure/16b.sdql @@ -0,0 +1,60 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/16c.sdql b/progs/sorting/job/fj_pure/16c.sdql new file mode 100644 index 00000000..a8e3dacf --- /dev/null +++ b/progs/sorting/job/fj_pure/16c.sdql @@ -0,0 +1,60 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/16d.sdql b/progs/sorting/job/fj_pure/16d.sdql new file mode 100644 index 00000000..ee079bda --- /dev/null +++ b/progs/sorting/job/fj_pure/16d.sdql @@ -0,0 +1,60 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17a.sdql b/progs/sorting/job/fj_pure/17a.sdql new file mode 100644 index 00000000..f7ec3eca --- /dev/null +++ b/progs/sorting/job/fj_pure/17a.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17c.sdql b/progs/sorting/job/fj_pure/17c.sdql new file mode 100644 index 00000000..ca4552da --- /dev/null +++ b/progs/sorting/job/fj_pure/17c.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17d.sdql b/progs/sorting/job/fj_pure/17d.sdql new file mode 100644 index 00000000..e9d81bc7 --- /dev/null +++ b/progs/sorting/job/fj_pure/17d.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/17e.sdql b/progs/sorting/job/fj_pure/17e.sdql new file mode 100644 index 00000000..4b141b7f --- /dev/null +++ b/progs/sorting/job/fj_pure/17e.sdql @@ -0,0 +1,52 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17e/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/18a.sdql b/progs/sorting/job/fj_pure/18a.sdql new file mode 100644 index 00000000..2c503c3e --- /dev/null +++ b/progs/sorting/job/fj_pure/18a.sdql @@ -0,0 +1,61 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/18b.sdql b/progs/sorting/job/fj_pure/18b.sdql new file mode 100644 index 00000000..b31e7b3d --- /dev/null +++ b/progs/sorting/job/fj_pure/18b.sdql @@ -0,0 +1,61 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/18c.sdql b/progs/sorting/job/fj_pure/18c.sdql new file mode 100644 index 00000000..4f852c30 --- /dev/null +++ b/progs/sorting/job/fj_pure/18c.sdql @@ -0,0 +1,61 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/19a.sdql b/progs/sorting/job/fj_pure/19a.sdql new file mode 100644 index 00000000..a0c47ab4 --- /dev/null +++ b/progs/sorting/job/fj_pure/19a.sdql @@ -0,0 +1,79 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/19b.sdql b/progs/sorting/job/fj_pure/19b.sdql new file mode 100644 index 00000000..7ee89895 --- /dev/null +++ b/progs/sorting/job/fj_pure/19b.sdql @@ -0,0 +1,79 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/19c.sdql b/progs/sorting/job/fj_pure/19c.sdql new file mode 100644 index 00000000..dba0355d --- /dev/null +++ b/progs/sorting/job/fj_pure/19c.sdql @@ -0,0 +1,79 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/19d.sdql b/progs/sorting/job/fj_pure/19d.sdql new file mode 100644 index 00000000..de2f7255 --- /dev/null +++ b/progs/sorting/job/fj_pure/19d.sdql @@ -0,0 +1,79 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/1a.sdql b/progs/sorting/job/fj_pure/1a.sdql new file mode 100644 index 00000000..c5207d71 --- /dev/null +++ b/progs/sorting/job/fj_pure/1a.sdql @@ -0,0 +1,44 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/1b.sdql b/progs/sorting/job/fj_pure/1b.sdql new file mode 100644 index 00000000..e93f984e --- /dev/null +++ b/progs/sorting/job/fj_pure/1b.sdql @@ -0,0 +1,44 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/1c.sdql b/progs/sorting/job/fj_pure/1c.sdql new file mode 100644 index 00000000..0de60154 --- /dev/null +++ b/progs/sorting/job/fj_pure/1c.sdql @@ -0,0 +1,44 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/1d.sdql b/progs/sorting/job/fj_pure/1d.sdql new file mode 100644 index 00000000..e58c0ccf --- /dev/null +++ b/progs/sorting/job/fj_pure/1d.sdql @@ -0,0 +1,44 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/20a.sdql b/progs/sorting/job/fj_pure/20a.sdql new file mode 100644 index 00000000..09ffa5da --- /dev/null +++ b/progs/sorting/job/fj_pure/20a.sdql @@ -0,0 +1,76 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col2=cc.movie_id(cc_off)> -> 1 } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @vec { -> 1 } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + if (x1 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/20b.sdql b/progs/sorting/job/fj_pure/20b.sdql new file mode 100644 index 00000000..6f07ba6f --- /dev/null +++ b/progs/sorting/job/fj_pure/20b.sdql @@ -0,0 +1,76 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col2=cc.movie_id(cc_off)> -> 1 } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm1_trie0) then + if (x2 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + let interm0_trie1 = interm0_trie0(x2) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/20c.sdql b/progs/sorting/job/fj_pure/20c.sdql new file mode 100644 index 00000000..feaf88bc --- /dev/null +++ b/progs/sorting/job/fj_pure/20c.sdql @@ -0,0 +1,77 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col2=cc.movie_id(cc_off)> -> 1 } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/21a.sdql b/progs/sorting/job/fj_pure/21a.sdql new file mode 100644 index 00000000..692a083e --- /dev/null +++ b/progs/sorting/job/fj_pure/21a.sdql @@ -0,0 +1,78 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/21b.sdql b/progs/sorting/job/fj_pure/21b.sdql new file mode 100644 index 00000000..01584dc3 --- /dev/null +++ b/progs/sorting/job/fj_pure/21b.sdql @@ -0,0 +1,78 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/21c.sdql b/progs/sorting/job/fj_pure/21c.sdql new file mode 100644 index 00000000..7925621b --- /dev/null +++ b/progs/sorting/job/fj_pure/21c.sdql @@ -0,0 +1,78 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/22a.sdql b/progs/sorting/job/fj_pure/22a.sdql new file mode 100644 index 00000000..cecbf441 --- /dev/null +++ b/progs/sorting/job/fj_pure/22a.sdql @@ -0,0 +1,95 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm0_tuple.col2, col7=interm0_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm1_tuple.col3, col6=interm1_tuple.col5, col8=interm1_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/22b.sdql b/progs/sorting/job/fj_pure/22b.sdql new file mode 100644 index 00000000..cc13e5e2 --- /dev/null +++ b/progs/sorting/job/fj_pure/22b.sdql @@ -0,0 +1,95 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm0_tuple.col2, col7=interm0_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm1_tuple.col3, col6=interm1_tuple.col5, col8=interm1_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/22c.sdql b/progs/sorting/job/fj_pure/22c.sdql new file mode 100644 index 00000000..359fe1e3 --- /dev/null +++ b/progs/sorting/job/fj_pure/22c.sdql @@ -0,0 +1,95 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm0_tuple.col2, col7=interm0_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm1_tuple.col3, col6=interm1_tuple.col5, col8=interm1_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/22d.sdql b/progs/sorting/job/fj_pure/22d.sdql new file mode 100644 index 00000000..08636130 --- /dev/null +++ b/progs/sorting/job/fj_pure/22d.sdql @@ -0,0 +1,95 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm0_tuple.col2, col7=interm0_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm1_tuple.col3, col6=interm1_tuple.col5, col8=interm1_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/23a.sdql b/progs/sorting/job/fj_pure/23a.sdql new file mode 100644 index 00000000..d42b21f0 --- /dev/null +++ b/progs/sorting/job/fj_pure/23a.sdql @@ -0,0 +1,99 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.status_id(cc_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col3=kt.kind(kt_off)> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col4=interm1_tuple.col2, col5=interm1_tuple.col3> -> 1 } +in + +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col5=interm2_tuple.col4, col6=interm2_tuple.col5> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/23b.sdql b/progs/sorting/job/fj_pure/23b.sdql new file mode 100644 index 00000000..90c13ec4 --- /dev/null +++ b/progs/sorting/job/fj_pure/23b.sdql @@ -0,0 +1,99 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/23b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.status_id(cc_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col3=kt.kind(kt_off)> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col4=interm1_tuple.col2, col5=interm1_tuple.col3> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col5=interm2_tuple.col4, col6=interm2_tuple.col5> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/23c.sdql b/progs/sorting/job/fj_pure/23c.sdql new file mode 100644 index 00000000..6abbb7a2 --- /dev/null +++ b/progs/sorting/job/fj_pure/23c.sdql @@ -0,0 +1,99 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.status_id(cc_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col3=kt.kind(kt_off)> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col4=interm1_tuple.col2, col5=interm1_tuple.col3> -> 1 } +in + +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col5=interm2_tuple.col4, col6=interm2_tuple.col5> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/24a.sdql b/progs/sorting/job/fj_pure/24a.sdql new file mode 100644 index 00000000..29da745c --- /dev/null +++ b/progs/sorting/job/fj_pure/24a.sdql @@ -0,0 +1,100 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_id(mc_off) in + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/24b.sdql b/progs/sorting/job/fj_pure/24b.sdql new file mode 100644 index 00000000..2ce84f44 --- /dev/null +++ b/progs/sorting/job/fj_pure/24b.sdql @@ -0,0 +1,100 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_id(mc_off) in + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + @vec { -> 1 } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) let interm2_tuple = interm2(interm2_off) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/25a.sdql b/progs/sorting/job/fj_pure/25a.sdql new file mode 100644 index 00000000..c0a82ec8 --- /dev/null +++ b/progs/sorting/job/fj_pure/25a.sdql @@ -0,0 +1,75 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/25b.sdql b/progs/sorting/job/fj_pure/25b.sdql new file mode 100644 index 00000000..c7ee9619 --- /dev/null +++ b/progs/sorting/job/fj_pure/25b.sdql @@ -0,0 +1,75 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/25c.sdql b/progs/sorting/job/fj_pure/25c.sdql new file mode 100644 index 00000000..0436016b --- /dev/null +++ b/progs/sorting/job/fj_pure/25c.sdql @@ -0,0 +1,75 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/26a.sdql b/progs/sorting/job/fj_pure/26a.sdql new file mode 100644 index 00000000..f047e578 --- /dev/null +++ b/progs/sorting/job/fj_pure/26a.sdql @@ -0,0 +1,105 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2, col5=interm2_tuple.col4> -> 1 } +in + +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/26b.sdql b/progs/sorting/job/fj_pure/26b.sdql new file mode 100644 index 00000000..87289824 --- /dev/null +++ b/progs/sorting/job/fj_pure/26b.sdql @@ -0,0 +1,104 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2, col5=interm2_tuple.col4> -> 1 } +in + +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/26c.sdql b/progs/sorting/job/fj_pure/26c.sdql new file mode 100644 index 00000000..3ca3747e --- /dev/null +++ b/progs/sorting/job/fj_pure/26c.sdql @@ -0,0 +1,104 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2, col5=interm2_tuple.col4> -> 1 } +in + +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) let interm3_tuple = interm3(interm3_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/27a.sdql b/progs/sorting/job/fj_pure/27a.sdql new file mode 100644 index 00000000..a6315fc9 --- /dev/null +++ b/progs/sorting/job/fj_pure/27a.sdql @@ -0,0 +1,117 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=lt.link(lt_off)> -> 1 } +in + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col4=interm0_tuple.col2> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col3=cn.name(cn_off), col4=interm2_tuple.col1, col8=interm2_tuple.col5> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col5=interm3_tuple.col4, col9=interm3_tuple.col8> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/27b.sdql b/progs/sorting/job/fj_pure/27b.sdql new file mode 100644 index 00000000..4ca600ad --- /dev/null +++ b/progs/sorting/job/fj_pure/27b.sdql @@ -0,0 +1,117 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=lt.link(lt_off)> -> 1 } +in + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col4=interm0_tuple.col2> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col3=cn.name(cn_off), col4=interm2_tuple.col1, col8=interm2_tuple.col5> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col5=interm3_tuple.col4, col9=interm3_tuple.col8> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/27c.sdql b/progs/sorting/job/fj_pure/27c.sdql new file mode 100644 index 00000000..45debd1f --- /dev/null +++ b/progs/sorting/job/fj_pure/27c.sdql @@ -0,0 +1,117 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=lt.link(lt_off)> -> 1 } +in + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off), col4=interm0_tuple.col2> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_type_id(mc_off), col1=mc.company_id(mc_off), col3=cn.name(cn_off), col4=interm2_tuple.col1, col8=interm2_tuple.col5> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col5=interm3_tuple.col4, col9=interm3_tuple.col8> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/28a.sdql b/progs/sorting/job/fj_pure/28a.sdql new file mode 100644 index 00000000..4f4f37fb --- /dev/null +++ b/progs/sorting/job/fj_pure/28a.sdql @@ -0,0 +1,125 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm2_tuple.col2, col7=interm2_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col6=interm3_tuple.col5, col8=interm3_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/28b.sdql b/progs/sorting/job/fj_pure/28b.sdql new file mode 100644 index 00000000..a0d1b581 --- /dev/null +++ b/progs/sorting/job/fj_pure/28b.sdql @@ -0,0 +1,125 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm2_tuple.col2, col7=interm2_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col6=interm3_tuple.col5, col8=interm3_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/28c.sdql b/progs/sorting/job/fj_pure/28c.sdql new file mode 100644 index 00000000..f39b46d4 --- /dev/null +++ b/progs/sorting/job/fj_pure/28c.sdql @@ -0,0 +1,125 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=t.id(t_off), col0=t.kind_id(t_off), col2=t.title(t_off), col4=interm1_tuple.col2> -> 1 } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_unsort = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col1=mc.company_type_id(mc_off), col3=cn.name(cn_off), col5=interm2_tuple.col2, col7=interm2_tuple.col4> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col4=interm3_tuple.col3, col6=interm3_tuple.col5, col8=interm3_tuple.col7> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/29a.sdql b/progs/sorting/job/fj_pure/29a.sdql new file mode 100644 index 00000000..a5a3dc20 --- /dev/null +++ b/progs/sorting/job/fj_pure/29a.sdql @@ -0,0 +1,155 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col2=interm1_tuple.col1> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2> -> 1 } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col1=mi.movie_id(mi_off), col4=interm3_tuple.col3> -> 1 } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_unsort = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @vec { -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i).col0 -> @range { i -> 1 } } in + +let interm6_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @vec { -> 1 } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let interm6 = ext(`SortedVec`, 0, interm6_unsort) +let interm6_trie0 = sum( <- range(ext(`Size`, interm6))) @st(ext(`Size`, interm6)) { interm6(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.role_id(ci_off) in + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x2) in + let x3 = ci.person_id(ci_off) in + if (x3 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) let interm6_tuple = interm6(interm6_off) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/29b.sdql b/progs/sorting/job/fj_pure/29b.sdql new file mode 100644 index 00000000..3d0be876 --- /dev/null +++ b/progs/sorting/job/fj_pure/29b.sdql @@ -0,0 +1,155 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col2=interm1_tuple.col1> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2> -> 1 } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col1=mi.movie_id(mi_off), col4=interm3_tuple.col3> -> 1 } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_unsort = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @vec { -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i).col0 -> @range { i -> 1 } } in + +let interm6_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @vec { -> 1 } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let interm6 = ext(`SortedVec`, 0, interm6_unsort) +let interm6_trie0 = sum( <- range(ext(`Size`, interm6))) @st(ext(`Size`, interm6)) { interm6(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.role_id(ci_off) in + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x2) in + let x3 = ci.person_id(ci_off) in + if (x3 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) let interm6_tuple = interm6(interm6_off) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/29c.sdql b/progs/sorting/job/fj_pure/29c.sdql new file mode 100644 index 00000000..f9888389 --- /dev/null +++ b/progs/sorting/job/fj_pure/29c.sdql @@ -0,0 +1,155 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_unsort = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off), col2=interm1_tuple.col1> -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col3=interm2_tuple.col2> -> 1 } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col1=mi.movie_id(mi_off), col4=interm3_tuple.col3> -> 1 } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_unsort = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @vec { -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i).col0 -> @range { i -> 1 } } in + +let interm6_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @vec { -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let interm6 = ext(`SortedVec`, 0, interm6_unsort) +let interm6_trie0 = sum( <- range(ext(`Size`, interm6))) @st(ext(`Size`, interm6)) { interm6(i).col0 -> @range { i -> 1 } } in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) let interm6_tuple = interm6(interm6_off) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/2a.sdql b/progs/sorting/job/fj_pure/2a.sdql new file mode 100644 index 00000000..8c244057 --- /dev/null +++ b/progs/sorting/job/fj_pure/2a.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/2b.sdql b/progs/sorting/job/fj_pure/2b.sdql new file mode 100644 index 00000000..eac9fd59 --- /dev/null +++ b/progs/sorting/job/fj_pure/2b.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/2c.sdql b/progs/sorting/job/fj_pure/2c.sdql new file mode 100644 index 00000000..951db358 --- /dev/null +++ b/progs/sorting/job/fj_pure/2c.sdql @@ -0,0 +1,26 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2c/k.csv") +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2c/cn.csv") + +let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/2d.sdql b/progs/sorting/job/fj_pure/2d.sdql new file mode 100644 index 00000000..0007da18 --- /dev/null +++ b/progs/sorting/job/fj_pure/2d.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/30a.sdql b/progs/sorting/job/fj_pure/30a.sdql new file mode 100644 index 00000000..7fb9c4ce --- /dev/null +++ b/progs/sorting/job/fj_pure/30a.sdql @@ -0,0 +1,112 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col2=interm2_tuple.col1, col4=interm2_tuple.col3> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col2=mi.info(mi_off), col4=interm3_tuple.col2, col6=interm3_tuple.col4> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/30b.sdql b/progs/sorting/job/fj_pure/30b.sdql new file mode 100644 index 00000000..817f011f --- /dev/null +++ b/progs/sorting/job/fj_pure/30b.sdql @@ -0,0 +1,112 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col2=interm2_tuple.col1, col4=interm2_tuple.col3> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col2=mi.info(mi_off), col4=interm3_tuple.col2, col6=interm3_tuple.col4> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/30c.sdql b/progs/sorting/job/fj_pure/30c.sdql new file mode 100644 index 00000000..56b0f206 --- /dev/null +++ b/progs/sorting/job/fj_pure/30c.sdql @@ -0,0 +1,112 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @vec { <_col0=cc.movie_id(cc_off), col0=cc.subject_id(cc_off), col1=cc.status_id(cc_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @vec { <_col0=mi_idx.movie_id(mi_idx_off), col0=mi_idx.info_type_id(mi_idx_off), col2=mi_idx.info(mi_idx_off)> -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { -> 1 } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i).col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=mk.movie_id(mk_off), col0=mk.keyword_id(mk_off), col2=interm2_tuple.col1, col4=interm2_tuple.col3> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=mi.movie_id(mi_off), col0=mi.info_type_id(mi_off), col2=mi.info(mi_off), col4=interm3_tuple.col2, col6=interm3_tuple.col4> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) let interm4_tuple = interm4(interm4_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/31a.sdql b/progs/sorting/job/fj_pure/31a.sdql new file mode 100644 index 00000000..352051c5 --- /dev/null +++ b/progs/sorting/job/fj_pure/31a.sdql @@ -0,0 +1,88 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/31b.sdql b/progs/sorting/job/fj_pure/31b.sdql new file mode 100644 index 00000000..cb428b14 --- /dev/null +++ b/progs/sorting/job/fj_pure/31b.sdql @@ -0,0 +1,88 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/31c.sdql b/progs/sorting/job/fj_pure/31c.sdql new file mode 100644 index 00000000..43ffd5b9 --- /dev/null +++ b/progs/sorting/job/fj_pure/31c.sdql @@ -0,0 +1,88 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @vec { -> 1 } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/32a.sdql b/progs/sorting/job/fj_pure/32a.sdql new file mode 100644 index 00000000..54ca3197 --- /dev/null +++ b/progs/sorting/job/fj_pure/32a.sdql @@ -0,0 +1,38 @@ +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32a/k.csv") + +let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in +let t2_trie0 = sum( <- range(t2.size)) @phmap(t2.size) { t2.id(i) -> @smallvecdict(4) { i -> 1 } } in +let interm0_trie0 = sum( <- range(t1.size)) + let x0 = t1.id(t1_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let x1 = ml.linked_movie_id(ml_off) in + if (x1 ∈ t2_trie0) then + let t2_trie1 = t2_trie0(x1) in + sum( <- t2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { t1.id(t1_off) -> @smallvecdict(4) { -> 1 } } +in + +let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/32b.sdql b/progs/sorting/job/fj_pure/32b.sdql new file mode 100644 index 00000000..3fee9497 --- /dev/null +++ b/progs/sorting/job/fj_pure/32b.sdql @@ -0,0 +1,52 @@ +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(t1.size)) + let x0 = t1.id(t1_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.linked_movie_id(ml_off) in + if (x1 ∈ t2_trie0) then + let t2_trie1 = t2_trie0(x1) in + sum( <- t2_trie1) + let t2_off = t2_offsets(t2_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/33a.sdql b/progs/sorting/job/fj_pure/33a.sdql new file mode 100644 index 00000000..083fb36e --- /dev/null +++ b/progs/sorting/job/fj_pure/33a.sdql @@ -0,0 +1,136 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33a/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=ml.linked_movie_id(ml_off)> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=interm0_tuple.col2, col0=mi_idx1.info_type_id(mi_idx1_off), col1=mi_idx1.movie_id(mi_idx1_off), col2=mi_idx1.info(mi_idx1_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=interm1_tuple.col1, col0=mi_idx2.info_type_id(mi_idx2_off), col1=mi_idx2.movie_id(mi_idx2_off), col2=mi_idx2.info(mi_idx2_off), col5=interm1_tuple.col2> -> 1 } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=interm2_tuple.col1, col0=t1.kind_id(t1_off), col1=t1.id(t1_off), col2=t1.title(t1_off), col5=interm2_tuple.col2, col7=interm2_tuple.col5> -> 1 } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=interm3_tuple.col1, col0=t2.kind_id(t2_off), col1=t2.id(t2_off), col2=t2.title(t2_off), col5=interm3_tuple.col2, col7=interm3_tuple.col5, col9=interm3_tuple.col7> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_unsort = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + let interm4_tuple = interm4(interm4_off) + @vec { <_col0=interm4_tuple.col1, col0=mc1.company_id(mc1_off), col11=interm4_tuple.col9, col1=mc1.movie_id(mc1_off), col2=cn1.name(cn1_off), col5=interm4_tuple.col2, col7=interm4_tuple.col5, col9=interm4_tuple.col7> -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i)._col0 -> @range { i -> 1 } } in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) let interm5_tuple = interm5(interm5_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/33b.sdql b/progs/sorting/job/fj_pure/33b.sdql new file mode 100644 index 00000000..680298d9 --- /dev/null +++ b/progs/sorting/job/fj_pure/33b.sdql @@ -0,0 +1,136 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33b/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=ml.linked_movie_id(ml_off)> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=interm0_tuple.col2, col0=mi_idx1.info_type_id(mi_idx1_off), col1=mi_idx1.movie_id(mi_idx1_off), col2=mi_idx1.info(mi_idx1_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=interm1_tuple.col1, col0=mi_idx2.info_type_id(mi_idx2_off), col1=mi_idx2.movie_id(mi_idx2_off), col2=mi_idx2.info(mi_idx2_off), col5=interm1_tuple.col2> -> 1 } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=interm2_tuple.col1, col0=t1.kind_id(t1_off), col1=t1.id(t1_off), col2=t1.title(t1_off), col5=interm2_tuple.col2, col7=interm2_tuple.col5> -> 1 } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=interm3_tuple.col1, col0=t2.kind_id(t2_off), col1=t2.id(t2_off), col2=t2.title(t2_off), col5=interm3_tuple.col2, col7=interm3_tuple.col5, col9=interm3_tuple.col7> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_unsort = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + let interm4_tuple = interm4(interm4_off) + @vec { <_col0=interm4_tuple.col1, col0=mc1.company_id(mc1_off), col11=interm4_tuple.col9, col1=mc1.movie_id(mc1_off), col2=cn1.name(cn1_off), col5=interm4_tuple.col2, col7=interm4_tuple.col5, col9=interm4_tuple.col7> -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i)._col0 -> @range { i -> 1 } } in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) let interm5_tuple = interm5(interm5_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/33c.sdql b/progs/sorting/job/fj_pure/33c.sdql new file mode 100644 index 00000000..d97b51a0 --- /dev/null +++ b/progs/sorting/job/fj_pure/33c.sdql @@ -0,0 +1,136 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33c/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @vec { <_col0=ml.movie_id(ml_off), col0=ml.link_type_id(ml_off), col2=ml.linked_movie_id(ml_off)> -> 1 } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let interm1_unsort = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + @vec { <_col0=interm0_tuple.col2, col0=mi_idx1.info_type_id(mi_idx1_off), col1=mi_idx1.movie_id(mi_idx1_off), col2=mi_idx1.info(mi_idx1_off)> -> 1 } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i)._col0 -> @range { i -> 1 } } in + +let interm2_unsort = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + let interm1_tuple = interm1(interm1_off) + @vec { <_col0=interm1_tuple.col1, col0=mi_idx2.info_type_id(mi_idx2_off), col1=mi_idx2.movie_id(mi_idx2_off), col2=mi_idx2.info(mi_idx2_off), col5=interm1_tuple.col2> -> 1 } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm2 = ext(`SortedVec`, 0, interm2_unsort) +let interm2_trie0 = sum( <- range(ext(`Size`, interm2))) @st(ext(`Size`, interm2)) { interm2(i)._col0 -> @range { i -> 1 } } in + +let interm3_unsort = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + let interm2_tuple = interm2(interm2_off) + @vec { <_col0=interm2_tuple.col1, col0=t1.kind_id(t1_off), col1=t1.id(t1_off), col2=t1.title(t1_off), col5=interm2_tuple.col2, col7=interm2_tuple.col5> -> 1 } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm3 = ext(`SortedVec`, 0, interm3_unsort) +let interm3_trie0 = sum( <- range(ext(`Size`, interm3))) @st(ext(`Size`, interm3)) { interm3(i)._col0 -> @range { i -> 1 } } in + +let interm4_unsort = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + let interm3_tuple = interm3(interm3_off) + @vec { <_col0=interm3_tuple.col1, col0=t2.kind_id(t2_off), col1=t2.id(t2_off), col2=t2.title(t2_off), col5=interm3_tuple.col2, col7=interm3_tuple.col5, col9=interm3_tuple.col7> -> 1 } +in + +let interm4 = ext(`SortedVec`, 0, interm4_unsort) +let interm4_trie0 = sum( <- range(ext(`Size`, interm4))) @st(ext(`Size`, interm4)) { interm4(i)._col0 -> @range { i -> 1 } } in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_unsort = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + let interm4_tuple = interm4(interm4_off) + @vec { <_col0=interm4_tuple.col1, col0=mc1.company_id(mc1_off), col11=interm4_tuple.col9, col1=mc1.movie_id(mc1_off), col2=cn1.name(cn1_off), col5=interm4_tuple.col2, col7=interm4_tuple.col5, col9=interm4_tuple.col7> -> 1 } +in + +let interm5 = ext(`SortedVec`, 0, interm5_unsort) +let interm5_trie0 = sum( <- range(ext(`Size`, interm5))) @st(ext(`Size`, interm5)) { interm5(i)._col0 -> @range { i -> 1 } } in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) let interm5_tuple = interm5(interm5_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/3b.sdql b/progs/sorting/job/fj_pure/3b.sdql new file mode 100644 index 00000000..1aeaa5c1 --- /dev/null +++ b/progs/sorting/job/fj_pure/3b.sdql @@ -0,0 +1,37 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/3c.sdql b/progs/sorting/job/fj_pure/3c.sdql new file mode 100644 index 00000000..14f56e0a --- /dev/null +++ b/progs/sorting/job/fj_pure/3c.sdql @@ -0,0 +1,37 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let interm0_tuple = interm0(interm0_off) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/4a.sdql b/progs/sorting/job/fj_pure/4a.sdql new file mode 100644 index 00000000..de975028 --- /dev/null +++ b/progs/sorting/job/fj_pure/4a.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/4b.sdql b/progs/sorting/job/fj_pure/4b.sdql new file mode 100644 index 00000000..66fd3a1f --- /dev/null +++ b/progs/sorting/job/fj_pure/4b.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/4c.sdql b/progs/sorting/job/fj_pure/4c.sdql new file mode 100644 index 00000000..8d851439 --- /dev/null +++ b/progs/sorting/job/fj_pure/4c.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/5c.sdql b/progs/sorting/job/fj_pure/5c.sdql new file mode 100644 index 00000000..e492c59a --- /dev/null +++ b/progs/sorting/job/fj_pure/5c.sdql @@ -0,0 +1,34 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/5c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/info_type.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/5c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ mc_trie0) then + if (x1 ∈ t_trie0) then + let mc_trie1 = mc_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6a.sdql b/progs/sorting/job/fj_pure/6a.sdql new file mode 100644 index 00000000..843ed387 --- /dev/null +++ b/progs/sorting/job/fj_pure/6a.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6b.sdql b/progs/sorting/job/fj_pure/6b.sdql new file mode 100644 index 00000000..252369ed --- /dev/null +++ b/progs/sorting/job/fj_pure/6b.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6c.sdql b/progs/sorting/job/fj_pure/6c.sdql new file mode 100644 index 00000000..5daad7f7 --- /dev/null +++ b/progs/sorting/job/fj_pure/6c.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6d.sdql b/progs/sorting/job/fj_pure/6d.sdql new file mode 100644 index 00000000..937129f4 --- /dev/null +++ b/progs/sorting/job/fj_pure/6d.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6e.sdql b/progs/sorting/job/fj_pure/6e.sdql new file mode 100644 index 00000000..d5252875 --- /dev/null +++ b/progs/sorting/job/fj_pure/6e.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/6f.sdql b/progs/sorting/job/fj_pure/6f.sdql new file mode 100644 index 00000000..9997dcbc --- /dev/null +++ b/progs/sorting/job/fj_pure/6f.sdql @@ -0,0 +1,44 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6f/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_unsort = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/7a.sdql b/progs/sorting/job/fj_pure/7a.sdql new file mode 100644 index 00000000..4c3bc62d --- /dev/null +++ b/progs/sorting/job/fj_pure/7a.sdql @@ -0,0 +1,67 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7a/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @vec { -> 1 } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/7b.sdql b/progs/sorting/job/fj_pure/7b.sdql new file mode 100644 index 00000000..291cdab2 --- /dev/null +++ b/progs/sorting/job/fj_pure/7b.sdql @@ -0,0 +1,67 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7b/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @vec { -> 1 } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @vec { -> 1 } +in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm1 = sum( <- interm1_trie1) let interm1_tuple = interm1(interm1_off) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/7c.sdql b/progs/sorting/job/fj_pure/7c.sdql new file mode 100644 index 00000000..d3fff45f --- /dev/null +++ b/progs/sorting/job/fj_pure/7c.sdql @@ -0,0 +1,66 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7c/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @vec { -> 1 } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_unsort = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @vec { -> 1 } +in + +let interm1 = ext(`SortedVec`, 0, interm1_unsort) +let interm1_trie0 = sum( <- range(ext(`Size`, interm1))) @st(ext(`Size`, interm1)) { interm1(i).col0 -> @range { i -> 1 } } in + +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm0_trie0) then + if (x1 ∈ an_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) let interm0_tuple = interm0(interm0_off) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/8a.sdql b/progs/sorting/job/fj_pure/8a.sdql index 4ac8cec1..adc3b5e2 100644 --- a/progs/sorting/job/fj_pure/8a.sdql +++ b/progs/sorting/job/fj_pure/8a.sdql @@ -20,13 +20,13 @@ let interm0_unsort = sum( <- range(mc.size)) let x0 = mc.company_id(mc_off) in if (x0 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x0) in - @vec { -> 1 } + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } in let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in let interm0 = ext(`SortedVec`, 0, interm0_unsort) -let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i).col0 -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in diff --git a/progs/sorting/job/fj_pure/8b.sdql b/progs/sorting/job/fj_pure/8b.sdql new file mode 100644 index 00000000..37b6d1ae --- /dev/null +++ b/progs/sorting/job/fj_pure/8b.sdql @@ -0,0 +1,50 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ interm0_trie0) then + let t_trie1 = t_trie0(x1) in + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + if (x2 ∈ an_trie0) then + let n_trie1 = n_trie0(x2) in + let an_trie1 = an_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/8c.sdql b/progs/sorting/job/fj_pure/8c.sdql new file mode 100644 index 00000000..dceaeca0 --- /dev/null +++ b/progs/sorting/job/fj_pure/8c.sdql @@ -0,0 +1,50 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let a1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let a1_offsets = ext(`SortedIndices`, a1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let a1_trie0 = sum( <- range(a1.size)) @st(a1.size) { a1.person_id(a1_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ a1_trie0) then + let a1_trie1 = a1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_a1 = sum( <- a1_trie1) let a1_off = a1_offsets(a1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/8d.sdql b/progs/sorting/job/fj_pure/8d.sdql new file mode 100644 index 00000000..6c536206 --- /dev/null +++ b/progs/sorting/job/fj_pure/8d.sdql @@ -0,0 +1,50 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/9a.sdql b/progs/sorting/job/fj_pure/9a.sdql new file mode 100644 index 00000000..e1a9828e --- /dev/null +++ b/progs/sorting/job/fj_pure/9a.sdql @@ -0,0 +1,57 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + let x5 = ci.person_role_id(ci_off) in + if (x5 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x5) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/9b.sdql b/progs/sorting/job/fj_pure/9b.sdql new file mode 100644 index 00000000..468dfa44 --- /dev/null +++ b/progs/sorting/job/fj_pure/9b.sdql @@ -0,0 +1,58 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + let x4 = ci.person_role_id(ci_off) in + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/9c.sdql b/progs/sorting/job/fj_pure/9c.sdql new file mode 100644 index 00000000..05385243 --- /dev/null +++ b/progs/sorting/job/fj_pure/9c.sdql @@ -0,0 +1,58 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + if (x1 ∈ an_trie0) then + let n_trie1 = n_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_pure/9d.sdql b/progs/sorting/job/fj_pure/9d.sdql new file mode 100644 index 00000000..d23dfec6 --- /dev/null +++ b/progs/sorting/job/fj_pure/9d.sdql @@ -0,0 +1,58 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_unsort = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @vec { <_col0=mc.movie_id(mc_off), col0=mc.company_id(mc_off)> -> 1 } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm0 = ext(`SortedVec`, 0, interm0_unsort) +let interm0_trie0 = sum( <- range(ext(`Size`, interm0))) @st(ext(`Size`, interm0)) { interm0(i)._col0 -> @range { i -> 1 } } in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index ab073578..94f53578 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -644,49 +644,205 @@ class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with } } -class CppCompileTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { +// manually load balanced - based on the GJ queries (so not perfect here) +// note: DON'T run all cases in parallel - unless you have ~64GB of ram +class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBFJSorting extends Tag("TestJOBFJSorting") - object TestJOBSorting extends Tag("TestJOBSorting") + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJSorting in { + // 1-5 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2d.sdql", "results/job/2d.result") - it should "compile and run JOB 3a" taggedAs TestJOBSorting in { CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4c.sdql", "results/job/4c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/5c.sdql", "results/job/5c.result") + + // 8-15 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11d.sdql", "results/job/11d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12a.sdql", "results/job/12a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12c.sdql", "results/job/12c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15d.sdql", "results/job/15d.result") + } + + it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7c.sdql", "results/job/7c.result") + } + + it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJSorting in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16d.sdql", "results/job/16d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17a.sdql", "results/job/17a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17f.sdql", "results/job/17f.result") + } + + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJSorting in { + // 18-20 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJSorting in { + // 21-25 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33c.sdql", "results/job/33c.result") + } +} + +class CppCompileTestJOBHybrid extends AnyFlatSpec with ParallelTestExecution { + + object TestJOBHybrid extends Tag("TestJOBHybrid") + + it should "compile and run JOB 3a" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3a.sdql", "results/job/3a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") } - it should "compile and run JOB 8a" taggedAs TestJOBSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8a.sdql", "results/job/8a.result") + it should "compile and run JOB 8a" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8a.sdql", "results/job/8a.result") } - it should "compile and run JOB FJ 10a pure sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( - "progs/sorting/job/fj_pure/10a.sdql", - "results/job/10a.result" - ) - - it should "compile and run JOB 12b" taggedAs TestJOBSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12b.sdql", "results/job/12b.result") + it should "compile and run JOB 12b" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12b.sdql", "results/job/12b.result") } - it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBSorting in { + it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") } - it should "compile and run JOB GJ 13b hybrid sorting" taggedAs TestJOBSorting in CompileHelpers.assertOutputs( + it should "compile and run JOB GJ 13b hybrid sorting" taggedAs TestJOBHybrid in CompileHelpers.assertOutputs( "progs/sorting/job/gj_hybrid/13b.sdql", "results/job/13b.result" ) - it should "compile and run JOB 17b" taggedAs TestJOBSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17b.sdql", "results/job/17b.result") + it should "compile and run JOB 17b" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17b.sdql", "results/job/17b.result") } - it should "compile and run JOB 17f" taggedAs TestJOBSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17f.sdql", "results/job/17f.result") + it should "compile and run JOB 17f" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17f.sdql", "results/job/17f.result") } } From 00cc5c86c8144730d25009dfa8105cc139b6f85c Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 24 Nov 2024 13:48:07 +0000 Subject: [PATCH 62/80] FJ hybrid sorting (all queries) --- build.sbt | 3 +- progs/sorting/job/fj_hybrid/10a.sdql | 51 +++++ progs/sorting/job/fj_hybrid/10c.sdql | 51 +++++ progs/sorting/job/fj_hybrid/11a.sdql | 60 ++++++ progs/sorting/job/fj_hybrid/11b.sdql | 60 ++++++ progs/sorting/job/fj_hybrid/11c.sdql | 60 ++++++ progs/sorting/job/fj_hybrid/11d.sdql | 60 ++++++ progs/sorting/job/fj_hybrid/12a.sdql | 59 ++++++ progs/sorting/job/fj_hybrid/12c.sdql | 59 ++++++ progs/sorting/job/fj_hybrid/13a.sdql | 65 ++++++ progs/sorting/job/fj_hybrid/13b.sdql | 65 ++++++ progs/sorting/job/fj_hybrid/13c.sdql | 65 ++++++ progs/sorting/job/fj_hybrid/13d.sdql | 65 ++++++ progs/sorting/job/fj_hybrid/14a.sdql | 58 ++++++ progs/sorting/job/fj_hybrid/14b.sdql | 58 ++++++ progs/sorting/job/fj_hybrid/14c.sdql | 58 ++++++ progs/sorting/job/fj_hybrid/15a.sdql | 64 ++++++ progs/sorting/job/fj_hybrid/15b.sdql | 64 ++++++ progs/sorting/job/fj_hybrid/15c.sdql | 64 ++++++ progs/sorting/job/fj_hybrid/15d.sdql | 64 ++++++ progs/sorting/job/fj_hybrid/16a.sdql | 57 ++++++ progs/sorting/job/fj_hybrid/16b.sdql | 57 ++++++ progs/sorting/job/fj_hybrid/16c.sdql | 57 ++++++ progs/sorting/job/fj_hybrid/16d.sdql | 57 ++++++ progs/sorting/job/fj_hybrid/17a.sdql | 49 +++++ progs/sorting/job/fj_hybrid/17b.sdql | 3 +- progs/sorting/job/fj_hybrid/17c.sdql | 49 +++++ progs/sorting/job/fj_hybrid/17d.sdql | 49 +++++ progs/sorting/job/fj_hybrid/17e.sdql | 49 +++++ progs/sorting/job/fj_hybrid/17f.sdql | 2 +- progs/sorting/job/fj_hybrid/18a.sdql | 54 +++++ progs/sorting/job/fj_hybrid/18b.sdql | 54 +++++ progs/sorting/job/fj_hybrid/18c.sdql | 54 +++++ progs/sorting/job/fj_hybrid/19a.sdql | 73 +++++++ progs/sorting/job/fj_hybrid/19b.sdql | 73 +++++++ progs/sorting/job/fj_hybrid/19c.sdql | 73 +++++++ progs/sorting/job/fj_hybrid/19d.sdql | 73 +++++++ progs/sorting/job/fj_hybrid/1a.sdql | 40 ++++ progs/sorting/job/fj_hybrid/1b.sdql | 40 ++++ progs/sorting/job/fj_hybrid/1c.sdql | 40 ++++ progs/sorting/job/fj_hybrid/1d.sdql | 40 ++++ progs/sorting/job/fj_hybrid/20a.sdql | 70 +++++++ progs/sorting/job/fj_hybrid/20b.sdql | 70 +++++++ progs/sorting/job/fj_hybrid/20c.sdql | 71 +++++++ progs/sorting/job/fj_hybrid/21a.sdql | 70 +++++++ progs/sorting/job/fj_hybrid/21b.sdql | 70 +++++++ progs/sorting/job/fj_hybrid/21c.sdql | 70 +++++++ progs/sorting/job/fj_hybrid/22a.sdql | 84 ++++++++ progs/sorting/job/fj_hybrid/22b.sdql | 84 ++++++++ progs/sorting/job/fj_hybrid/22c.sdql | 84 ++++++++ progs/sorting/job/fj_hybrid/22d.sdql | 84 ++++++++ progs/sorting/job/fj_hybrid/23a.sdql | 85 ++++++++ progs/sorting/job/fj_hybrid/23b.sdql | 85 ++++++++ progs/sorting/job/fj_hybrid/23c.sdql | 85 ++++++++ progs/sorting/job/fj_hybrid/24a.sdql | 90 +++++++++ progs/sorting/job/fj_hybrid/24b.sdql | 90 +++++++++ progs/sorting/job/fj_hybrid/25a.sdql | 68 +++++++ progs/sorting/job/fj_hybrid/25b.sdql | 68 +++++++ progs/sorting/job/fj_hybrid/25c.sdql | 68 +++++++ progs/sorting/job/fj_hybrid/26a.sdql | 91 +++++++++ progs/sorting/job/fj_hybrid/26b.sdql | 90 +++++++++ progs/sorting/job/fj_hybrid/26c.sdql | 90 +++++++++ progs/sorting/job/fj_hybrid/27a.sdql | 98 +++++++++ progs/sorting/job/fj_hybrid/27b.sdql | 98 +++++++++ progs/sorting/job/fj_hybrid/27c.sdql | 98 +++++++++ progs/sorting/job/fj_hybrid/28a.sdql | 107 ++++++++++ progs/sorting/job/fj_hybrid/28b.sdql | 107 ++++++++++ progs/sorting/job/fj_hybrid/28c.sdql | 107 ++++++++++ progs/sorting/job/fj_hybrid/29a.sdql | 131 ++++++++++++ progs/sorting/job/fj_hybrid/29b.sdql | 131 ++++++++++++ progs/sorting/job/fj_hybrid/29c.sdql | 131 ++++++++++++ progs/sorting/job/fj_hybrid/2a.sdql | 34 ++++ progs/sorting/job/fj_hybrid/2b.sdql | 34 ++++ progs/sorting/job/fj_hybrid/2d.sdql | 34 ++++ progs/sorting/job/fj_hybrid/30a.sdql | 94 +++++++++ progs/sorting/job/fj_hybrid/30b.sdql | 94 +++++++++ progs/sorting/job/fj_hybrid/30c.sdql | 94 +++++++++ progs/sorting/job/fj_hybrid/31a.sdql | 81 ++++++++ progs/sorting/job/fj_hybrid/31b.sdql | 81 ++++++++ progs/sorting/job/fj_hybrid/31c.sdql | 81 ++++++++ progs/sorting/job/fj_hybrid/32b.sdql | 48 +++++ progs/sorting/job/fj_hybrid/33a.sdql | 113 +++++++++++ progs/sorting/job/fj_hybrid/33b.sdql | 113 +++++++++++ progs/sorting/job/fj_hybrid/33c.sdql | 113 +++++++++++ progs/sorting/job/fj_hybrid/3a.sdql | 8 +- progs/sorting/job/fj_hybrid/3b.sdql | 33 ++++ progs/sorting/job/fj_hybrid/3c.sdql | 33 ++++ progs/sorting/job/fj_hybrid/4a.sdql | 35 ++++ progs/sorting/job/fj_hybrid/4b.sdql | 35 ++++ progs/sorting/job/fj_hybrid/4c.sdql | 35 ++++ progs/sorting/job/fj_hybrid/5c.sdql | 34 ++++ progs/sorting/job/fj_hybrid/6a.sdql | 41 ++++ progs/sorting/job/fj_hybrid/6b.sdql | 41 ++++ progs/sorting/job/fj_hybrid/6c.sdql | 41 ++++ progs/sorting/job/fj_hybrid/6d.sdql | 41 ++++ progs/sorting/job/fj_hybrid/6e.sdql | 41 ++++ progs/sorting/job/fj_hybrid/6f.sdql | 41 ++++ progs/sorting/job/fj_hybrid/7a.sdql | 61 ++++++ progs/sorting/job/fj_hybrid/7b.sdql | 61 ++++++ progs/sorting/job/fj_hybrid/7c.sdql | 60 ++++++ progs/sorting/job/fj_hybrid/8a.sdql | 1 - progs/sorting/job/fj_hybrid/8b.sdql | 47 +++++ progs/sorting/job/fj_hybrid/8c.sdql | 47 +++++ progs/sorting/job/fj_hybrid/8d.sdql | 47 +++++ progs/sorting/job/fj_hybrid/9a.sdql | 54 +++++ progs/sorting/job/fj_hybrid/9b.sdql | 55 ++++++ progs/sorting/job/fj_hybrid/9c.sdql | 55 ++++++ progs/sorting/job/fj_hybrid/9d.sdql | 55 ++++++ .../scala/sdql/backend/CppCompileTest.scala | 187 ++++++++++++++++-- 109 files changed, 7046 insertions(+), 28 deletions(-) create mode 100644 progs/sorting/job/fj_hybrid/10a.sdql create mode 100644 progs/sorting/job/fj_hybrid/10c.sdql create mode 100644 progs/sorting/job/fj_hybrid/11a.sdql create mode 100644 progs/sorting/job/fj_hybrid/11b.sdql create mode 100644 progs/sorting/job/fj_hybrid/11c.sdql create mode 100644 progs/sorting/job/fj_hybrid/11d.sdql create mode 100644 progs/sorting/job/fj_hybrid/12a.sdql create mode 100644 progs/sorting/job/fj_hybrid/12c.sdql create mode 100644 progs/sorting/job/fj_hybrid/13a.sdql create mode 100644 progs/sorting/job/fj_hybrid/13b.sdql create mode 100644 progs/sorting/job/fj_hybrid/13c.sdql create mode 100644 progs/sorting/job/fj_hybrid/13d.sdql create mode 100644 progs/sorting/job/fj_hybrid/14a.sdql create mode 100644 progs/sorting/job/fj_hybrid/14b.sdql create mode 100644 progs/sorting/job/fj_hybrid/14c.sdql create mode 100644 progs/sorting/job/fj_hybrid/15a.sdql create mode 100644 progs/sorting/job/fj_hybrid/15b.sdql create mode 100644 progs/sorting/job/fj_hybrid/15c.sdql create mode 100644 progs/sorting/job/fj_hybrid/15d.sdql create mode 100644 progs/sorting/job/fj_hybrid/16a.sdql create mode 100644 progs/sorting/job/fj_hybrid/16b.sdql create mode 100644 progs/sorting/job/fj_hybrid/16c.sdql create mode 100644 progs/sorting/job/fj_hybrid/16d.sdql create mode 100644 progs/sorting/job/fj_hybrid/17a.sdql create mode 100644 progs/sorting/job/fj_hybrid/17c.sdql create mode 100644 progs/sorting/job/fj_hybrid/17d.sdql create mode 100644 progs/sorting/job/fj_hybrid/17e.sdql create mode 100644 progs/sorting/job/fj_hybrid/18a.sdql create mode 100644 progs/sorting/job/fj_hybrid/18b.sdql create mode 100644 progs/sorting/job/fj_hybrid/18c.sdql create mode 100644 progs/sorting/job/fj_hybrid/19a.sdql create mode 100644 progs/sorting/job/fj_hybrid/19b.sdql create mode 100644 progs/sorting/job/fj_hybrid/19c.sdql create mode 100644 progs/sorting/job/fj_hybrid/19d.sdql create mode 100644 progs/sorting/job/fj_hybrid/1a.sdql create mode 100644 progs/sorting/job/fj_hybrid/1b.sdql create mode 100644 progs/sorting/job/fj_hybrid/1c.sdql create mode 100644 progs/sorting/job/fj_hybrid/1d.sdql create mode 100644 progs/sorting/job/fj_hybrid/20a.sdql create mode 100644 progs/sorting/job/fj_hybrid/20b.sdql create mode 100644 progs/sorting/job/fj_hybrid/20c.sdql create mode 100644 progs/sorting/job/fj_hybrid/21a.sdql create mode 100644 progs/sorting/job/fj_hybrid/21b.sdql create mode 100644 progs/sorting/job/fj_hybrid/21c.sdql create mode 100644 progs/sorting/job/fj_hybrid/22a.sdql create mode 100644 progs/sorting/job/fj_hybrid/22b.sdql create mode 100644 progs/sorting/job/fj_hybrid/22c.sdql create mode 100644 progs/sorting/job/fj_hybrid/22d.sdql create mode 100644 progs/sorting/job/fj_hybrid/23a.sdql create mode 100644 progs/sorting/job/fj_hybrid/23b.sdql create mode 100644 progs/sorting/job/fj_hybrid/23c.sdql create mode 100644 progs/sorting/job/fj_hybrid/24a.sdql create mode 100644 progs/sorting/job/fj_hybrid/24b.sdql create mode 100644 progs/sorting/job/fj_hybrid/25a.sdql create mode 100644 progs/sorting/job/fj_hybrid/25b.sdql create mode 100644 progs/sorting/job/fj_hybrid/25c.sdql create mode 100644 progs/sorting/job/fj_hybrid/26a.sdql create mode 100644 progs/sorting/job/fj_hybrid/26b.sdql create mode 100644 progs/sorting/job/fj_hybrid/26c.sdql create mode 100644 progs/sorting/job/fj_hybrid/27a.sdql create mode 100644 progs/sorting/job/fj_hybrid/27b.sdql create mode 100644 progs/sorting/job/fj_hybrid/27c.sdql create mode 100644 progs/sorting/job/fj_hybrid/28a.sdql create mode 100644 progs/sorting/job/fj_hybrid/28b.sdql create mode 100644 progs/sorting/job/fj_hybrid/28c.sdql create mode 100644 progs/sorting/job/fj_hybrid/29a.sdql create mode 100644 progs/sorting/job/fj_hybrid/29b.sdql create mode 100644 progs/sorting/job/fj_hybrid/29c.sdql create mode 100644 progs/sorting/job/fj_hybrid/2a.sdql create mode 100644 progs/sorting/job/fj_hybrid/2b.sdql create mode 100644 progs/sorting/job/fj_hybrid/2d.sdql create mode 100644 progs/sorting/job/fj_hybrid/30a.sdql create mode 100644 progs/sorting/job/fj_hybrid/30b.sdql create mode 100644 progs/sorting/job/fj_hybrid/30c.sdql create mode 100644 progs/sorting/job/fj_hybrid/31a.sdql create mode 100644 progs/sorting/job/fj_hybrid/31b.sdql create mode 100644 progs/sorting/job/fj_hybrid/31c.sdql create mode 100644 progs/sorting/job/fj_hybrid/32b.sdql create mode 100644 progs/sorting/job/fj_hybrid/33a.sdql create mode 100644 progs/sorting/job/fj_hybrid/33b.sdql create mode 100644 progs/sorting/job/fj_hybrid/33c.sdql create mode 100644 progs/sorting/job/fj_hybrid/3b.sdql create mode 100644 progs/sorting/job/fj_hybrid/3c.sdql create mode 100644 progs/sorting/job/fj_hybrid/4a.sdql create mode 100644 progs/sorting/job/fj_hybrid/4b.sdql create mode 100644 progs/sorting/job/fj_hybrid/4c.sdql create mode 100644 progs/sorting/job/fj_hybrid/5c.sdql create mode 100644 progs/sorting/job/fj_hybrid/6a.sdql create mode 100644 progs/sorting/job/fj_hybrid/6b.sdql create mode 100644 progs/sorting/job/fj_hybrid/6c.sdql create mode 100644 progs/sorting/job/fj_hybrid/6d.sdql create mode 100644 progs/sorting/job/fj_hybrid/6e.sdql create mode 100644 progs/sorting/job/fj_hybrid/6f.sdql create mode 100644 progs/sorting/job/fj_hybrid/7a.sdql create mode 100644 progs/sorting/job/fj_hybrid/7b.sdql create mode 100644 progs/sorting/job/fj_hybrid/7c.sdql create mode 100644 progs/sorting/job/fj_hybrid/8b.sdql create mode 100644 progs/sorting/job/fj_hybrid/8c.sdql create mode 100644 progs/sorting/job/fj_hybrid/8d.sdql create mode 100644 progs/sorting/job/fj_hybrid/9a.sdql create mode 100644 progs/sorting/job/fj_hybrid/9b.sdql create mode 100644 progs/sorting/job/fj_hybrid/9c.sdql create mode 100644 progs/sorting/job/fj_hybrid/9d.sdql diff --git a/build.sbt b/build.sbt index 232b333f..15fb6a18 100644 --- a/build.sbt +++ b/build.sbt @@ -18,7 +18,8 @@ Test / testOptions ++= Seq( Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJSorting"), - Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBHybrid"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJHybrid"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/sorting/job/fj_hybrid/10a.sdql b/progs/sorting/job/fj_hybrid/10a.sdql new file mode 100644 index 00000000..b2f86edb --- /dev/null +++ b/progs/sorting/job/fj_hybrid/10a.sdql @@ -0,0 +1,51 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + let x2 = mc.movie_id(mc_off) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_role_id(ci_off) in + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/10c.sdql b/progs/sorting/job/fj_hybrid/10c.sdql new file mode 100644 index 00000000..e1e03e78 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/10c.sdql @@ -0,0 +1,51 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/role_type.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + let x2 = mc.movie_id(mc_off) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_role_id(ci_off) in + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/11a.sdql b/progs/sorting/job/fj_hybrid/11a.sdql new file mode 100644 index 00000000..da79275f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/11a.sdql @@ -0,0 +1,60 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/11b.sdql b/progs/sorting/job/fj_hybrid/11b.sdql new file mode 100644 index 00000000..3c492c4a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/11b.sdql @@ -0,0 +1,60 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/11c.sdql b/progs/sorting/job/fj_hybrid/11c.sdql new file mode 100644 index 00000000..ed9096a8 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/11c.sdql @@ -0,0 +1,60 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_mc = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/11d.sdql b/progs/sorting/job/fj_hybrid/11d.sdql new file mode 100644 index 00000000..dab85230 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/11d.sdql @@ -0,0 +1,60 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_mc = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/12a.sdql b/progs/sorting/job/fj_hybrid/12a.sdql new file mode 100644 index 00000000..748c3266 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/12a.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/12c.sdql b/progs/sorting/job/fj_hybrid/12c.sdql new file mode 100644 index 00000000..81a06b41 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/12c.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/13a.sdql b/progs/sorting/job/fj_hybrid/13a.sdql new file mode 100644 index 00000000..c1003762 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/13a.sdql @@ -0,0 +1,65 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/13b.sdql b/progs/sorting/job/fj_hybrid/13b.sdql new file mode 100644 index 00000000..d3e310f7 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/13b.sdql @@ -0,0 +1,65 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/13c.sdql b/progs/sorting/job/fj_hybrid/13c.sdql new file mode 100644 index 00000000..d4810cd9 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/13c.sdql @@ -0,0 +1,65 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/13d.sdql b/progs/sorting/job/fj_hybrid/13d.sdql new file mode 100644 index 00000000..da291b49 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/13d.sdql @@ -0,0 +1,65 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_type_id(mc_off) in + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + let x5 = mc.company_id(mc_off) in + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/14a.sdql b/progs/sorting/job/fj_hybrid/14a.sdql new file mode 100644 index 00000000..ff0dfd10 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/14a.sdql @@ -0,0 +1,58 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/14b.sdql b/progs/sorting/job/fj_hybrid/14b.sdql new file mode 100644 index 00000000..629b5e61 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/14b.sdql @@ -0,0 +1,58 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/14c.sdql b/progs/sorting/job/fj_hybrid/14c.sdql new file mode 100644 index 00000000..ff821b18 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/14c.sdql @@ -0,0 +1,58 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/15a.sdql b/progs/sorting/job/fj_hybrid/15a.sdql new file mode 100644 index 00000000..ddf96c3c --- /dev/null +++ b/progs/sorting/job/fj_hybrid/15a.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/15b.sdql b/progs/sorting/job/fj_hybrid/15b.sdql new file mode 100644 index 00000000..238be564 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/15b.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/15c.sdql b/progs/sorting/job/fj_hybrid/15c.sdql new file mode 100644 index 00000000..07bcb537 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/15c.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/15d.sdql b/progs/sorting/job/fj_hybrid/15d.sdql new file mode 100644 index 00000000..35c4a968 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/15d.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_interm0 = in + let mn_at = sum( <- at_trie1) let at_off = at_offsets(at_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/16a.sdql b/progs/sorting/job/fj_hybrid/16a.sdql new file mode 100644 index 00000000..293f787f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/16a.sdql @@ -0,0 +1,57 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/16b.sdql b/progs/sorting/job/fj_hybrid/16b.sdql new file mode 100644 index 00000000..a1c68e74 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/16b.sdql @@ -0,0 +1,57 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/16c.sdql b/progs/sorting/job/fj_hybrid/16c.sdql new file mode 100644 index 00000000..74ba0542 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/16c.sdql @@ -0,0 +1,57 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/16d.sdql b/progs/sorting/job/fj_hybrid/16d.sdql new file mode 100644 index 00000000..0a67265f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/16d.sdql @@ -0,0 +1,57 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/17a.sdql b/progs/sorting/job/fj_hybrid/17a.sdql new file mode 100644 index 00000000..706e4294 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17a.sdql @@ -0,0 +1,49 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/17b.sdql b/progs/sorting/job/fj_hybrid/17b.sdql index aafdd337..aa34b02b 100644 --- a/progs/sorting/job/fj_hybrid/17b.sdql +++ b/progs/sorting/job/fj_hybrid/17b.sdql @@ -33,11 +33,10 @@ let interm0_trie0 = sum( <- range(mk.size)) let x2 = mc.company_id(mc_off) in if (x2 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x2) in - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in - sum( <- range(ci.size)) let x0 = ci.person_id(ci_off) in if (x0 ∈ n_trie0) then diff --git a/progs/sorting/job/fj_hybrid/17c.sdql b/progs/sorting/job/fj_hybrid/17c.sdql new file mode 100644 index 00000000..b722b8d8 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17c.sdql @@ -0,0 +1,49 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/17d.sdql b/progs/sorting/job/fj_hybrid/17d.sdql new file mode 100644 index 00000000..404ffdb7 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17d.sdql @@ -0,0 +1,49 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/17e.sdql b/progs/sorting/job/fj_hybrid/17e.sdql new file mode 100644 index 00000000..63ccda0b --- /dev/null +++ b/progs/sorting/job/fj_hybrid/17e.sdql @@ -0,0 +1,49 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17e/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/17f.sdql b/progs/sorting/job/fj_hybrid/17f.sdql index 5dbdb68a..e5debe5d 100644 --- a/progs/sorting/job/fj_hybrid/17f.sdql +++ b/progs/sorting/job/fj_hybrid/17f.sdql @@ -33,7 +33,7 @@ let interm0_trie0 = sum( <- range(mk.size)) let x2 = mc.company_id(mc_off) in if (x2 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x2) in - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in diff --git a/progs/sorting/job/fj_hybrid/18a.sdql b/progs/sorting/job/fj_hybrid/18a.sdql new file mode 100644 index 00000000..c4f552d5 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/18a.sdql @@ -0,0 +1,54 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/18b.sdql b/progs/sorting/job/fj_hybrid/18b.sdql new file mode 100644 index 00000000..99c6e9d5 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/18b.sdql @@ -0,0 +1,54 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/18c.sdql b/progs/sorting/job/fj_hybrid/18c.sdql new file mode 100644 index 00000000..366fba4e --- /dev/null +++ b/progs/sorting/job/fj_hybrid/18c.sdql @@ -0,0 +1,54 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 in + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/19a.sdql b/progs/sorting/job/fj_hybrid/19a.sdql new file mode 100644 index 00000000..da663836 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/19a.sdql @@ -0,0 +1,73 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/19b.sdql b/progs/sorting/job/fj_hybrid/19b.sdql new file mode 100644 index 00000000..baa0e941 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/19b.sdql @@ -0,0 +1,73 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/19c.sdql b/progs/sorting/job/fj_hybrid/19c.sdql new file mode 100644 index 00000000..08278b05 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/19c.sdql @@ -0,0 +1,73 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/19d.sdql b/progs/sorting/job/fj_hybrid/19d.sdql new file mode 100644 index 00000000..90ebd064 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/19d.sdql @@ -0,0 +1,73 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/1a.sdql b/progs/sorting/job/fj_hybrid/1a.sdql new file mode 100644 index 00000000..4e043af4 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/1a.sdql @@ -0,0 +1,40 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/1b.sdql b/progs/sorting/job/fj_hybrid/1b.sdql new file mode 100644 index 00000000..0087835f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/1b.sdql @@ -0,0 +1,40 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/1c.sdql b/progs/sorting/job/fj_hybrid/1c.sdql new file mode 100644 index 00000000..31eb56ef --- /dev/null +++ b/progs/sorting/job/fj_hybrid/1c.sdql @@ -0,0 +1,40 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/1d.sdql b/progs/sorting/job/fj_hybrid/1d.sdql new file mode 100644 index 00000000..eb0a62f3 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/1d.sdql @@ -0,0 +1,40 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/20a.sdql b/progs/sorting/job/fj_hybrid/20a.sdql new file mode 100644 index 00000000..42a8ffbd --- /dev/null +++ b/progs/sorting/job/fj_hybrid/20a.sdql @@ -0,0 +1,70 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + if (x1 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/20b.sdql b/progs/sorting/job/fj_hybrid/20b.sdql new file mode 100644 index 00000000..f3fd3da7 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/20b.sdql @@ -0,0 +1,70 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm1_trie0) then + if (x2 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + let interm0_trie1 = interm0_trie0(x2) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/20c.sdql b/progs/sorting/job/fj_hybrid/20c.sdql new file mode 100644 index 00000000..7b4d6d1b --- /dev/null +++ b/progs/sorting/job/fj_hybrid/20c.sdql @@ -0,0 +1,71 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + let x1 = t.kind_id(t_off) in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ interm0_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/21a.sdql b/progs/sorting/job/fj_hybrid/21a.sdql new file mode 100644 index 00000000..7122121f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/21a.sdql @@ -0,0 +1,70 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/21b.sdql b/progs/sorting/job/fj_hybrid/21b.sdql new file mode 100644 index 00000000..a175bcbd --- /dev/null +++ b/progs/sorting/job/fj_hybrid/21b.sdql @@ -0,0 +1,70 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/21c.sdql b/progs/sorting/job/fj_hybrid/21c.sdql new file mode 100644 index 00000000..18d8361c --- /dev/null +++ b/progs/sorting/job/fj_hybrid/21c.sdql @@ -0,0 +1,70 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = interm1_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/22a.sdql b/progs/sorting/job/fj_hybrid/22a.sdql new file mode 100644 index 00000000..fff45b60 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/22a.sdql @@ -0,0 +1,84 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/22b.sdql b/progs/sorting/job/fj_hybrid/22b.sdql new file mode 100644 index 00000000..d95c57de --- /dev/null +++ b/progs/sorting/job/fj_hybrid/22b.sdql @@ -0,0 +1,84 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/22c.sdql b/progs/sorting/job/fj_hybrid/22c.sdql new file mode 100644 index 00000000..6dea2de2 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/22c.sdql @@ -0,0 +1,84 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/22d.sdql b/progs/sorting/job/fj_hybrid/22d.sdql new file mode 100644 index 00000000..c2dceae3 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/22d.sdql @@ -0,0 +1,84 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/23a.sdql b/progs/sorting/job/fj_hybrid/23a.sdql new file mode 100644 index 00000000..1113d1a4 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/23a.sdql @@ -0,0 +1,85 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/23b.sdql b/progs/sorting/job/fj_hybrid/23b.sdql new file mode 100644 index 00000000..d12342c9 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/23b.sdql @@ -0,0 +1,85 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/23b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/23c.sdql b/progs/sorting/job/fj_hybrid/23c.sdql new file mode 100644 index 00000000..7b123747 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/23c.sdql @@ -0,0 +1,85 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/24a.sdql b/progs/sorting/job/fj_hybrid/24a.sdql new file mode 100644 index 00000000..41b45af1 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/24a.sdql @@ -0,0 +1,90 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_id(mc_off) in + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/24b.sdql b/progs/sorting/job/fj_hybrid/24b.sdql new file mode 100644 index 00000000..b1a77071 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/24b.sdql @@ -0,0 +1,90 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_id(mc_off) in + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/25a.sdql b/progs/sorting/job/fj_hybrid/25a.sdql new file mode 100644 index 00000000..f2a4e49a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/25a.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/25b.sdql b/progs/sorting/job/fj_hybrid/25b.sdql new file mode 100644 index 00000000..56db0e6c --- /dev/null +++ b/progs/sorting/job/fj_hybrid/25b.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/25c.sdql b/progs/sorting/job/fj_hybrid/25c.sdql new file mode 100644 index 00000000..f13bfdeb --- /dev/null +++ b/progs/sorting/job/fj_hybrid/25c.sdql @@ -0,0 +1,68 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/26a.sdql b/progs/sorting/job/fj_hybrid/26a.sdql new file mode 100644 index 00000000..0694f6b9 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/26a.sdql @@ -0,0 +1,91 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/26b.sdql b/progs/sorting/job/fj_hybrid/26b.sdql new file mode 100644 index 00000000..3a5f8ab6 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/26b.sdql @@ -0,0 +1,90 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/26c.sdql b/progs/sorting/job/fj_hybrid/26c.sdql new file mode 100644 index 00000000..7eafd7fb --- /dev/null +++ b/progs/sorting/job/fj_hybrid/26c.sdql @@ -0,0 +1,90 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x0) in + let x1 = ci.person_role_id(ci_off) in + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + let n_trie1 = n_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/27a.sdql b/progs/sorting/job/fj_hybrid/27a.sdql new file mode 100644 index 00000000..0c8fe82a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/27a.sdql @@ -0,0 +1,98 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/27b.sdql b/progs/sorting/job/fj_hybrid/27b.sdql new file mode 100644 index 00000000..fa215975 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/27b.sdql @@ -0,0 +1,98 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/27c.sdql b/progs/sorting/job/fj_hybrid/27c.sdql new file mode 100644 index 00000000..2fcfcc08 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/27c.sdql @@ -0,0 +1,98 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + let x2 = cc.movie_id(cc_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/28a.sdql b/progs/sorting/job/fj_hybrid/28a.sdql new file mode 100644 index 00000000..35a28c38 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/28a.sdql @@ -0,0 +1,107 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/28b.sdql b/progs/sorting/job/fj_hybrid/28b.sdql new file mode 100644 index 00000000..2bd29848 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/28b.sdql @@ -0,0 +1,107 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/28c.sdql b/progs/sorting/job/fj_hybrid/28c.sdql new file mode 100644 index 00000000..c4afd365 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/28c.sdql @@ -0,0 +1,107 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.kind_id(t_off) in + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + let x1 = t.id(t_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_type_id(mc_off) in + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + let x1 = mc.movie_id(mc_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/29a.sdql b/progs/sorting/job/fj_hybrid/29a.sdql new file mode 100644 index 00000000..2331c75c --- /dev/null +++ b/progs/sorting/job/fj_hybrid/29a.sdql @@ -0,0 +1,131 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm6_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.role_id(ci_off) in + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x2) in + let x3 = ci.person_id(ci_off) in + if (x3 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/29b.sdql b/progs/sorting/job/fj_hybrid/29b.sdql new file mode 100644 index 00000000..bda48af8 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/29b.sdql @@ -0,0 +1,131 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm6_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_role_id(ci_off) in + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + let x1 = ci.role_id(ci_off) in + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x2) in + let x3 = ci.person_id(ci_off) in + if (x3 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/29c.sdql b/progs/sorting/job/fj_hybrid/29c.sdql new file mode 100644 index 00000000..77719508 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/29c.sdql @@ -0,0 +1,131 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mc.size)) + let x0 = mc.movie_id(mc_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = mc.company_id(mc_off) in + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- range(pi.size)) + let x0 = pi.info_type_id(pi_off) in + if (x0 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x0) in + let x1 = pi.person_id(pi_off) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm6_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/2a.sdql b/progs/sorting/job/fj_hybrid/2a.sdql new file mode 100644 index 00000000..8c244057 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/2a.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/2b.sdql b/progs/sorting/job/fj_hybrid/2b.sdql new file mode 100644 index 00000000..eac9fd59 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/2b.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/2d.sdql b/progs/sorting/job/fj_hybrid/2d.sdql new file mode 100644 index 00000000..0007da18 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/2d.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/30a.sdql b/progs/sorting/job/fj_hybrid/30a.sdql new file mode 100644 index 00000000..884957db --- /dev/null +++ b/progs/sorting/job/fj_hybrid/30a.sdql @@ -0,0 +1,94 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/30b.sdql b/progs/sorting/job/fj_hybrid/30b.sdql new file mode 100644 index 00000000..3043b309 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/30b.sdql @@ -0,0 +1,94 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.status_id(cc_off) in + if (x0 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x0) in + let x1 = cc.subject_id(cc_off) in + if (x1 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x0) in + let x1 = mk.keyword_id(mk_off) in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/30c.sdql b/progs/sorting/job/fj_hybrid/30c.sdql new file mode 100644 index 00000000..85c74620 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/30c.sdql @@ -0,0 +1,94 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(cc.size)) + let x0 = cc.subject_id(cc_off) in + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + let x1 = cc.status_id(cc_off) in + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx.size)) + let x0 = mi_idx.info_type_id(mi_idx_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx.movie_id(mi_idx_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } +in + +let interm2_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/31a.sdql b/progs/sorting/job/fj_hybrid/31a.sdql new file mode 100644 index 00000000..da8d5523 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/31a.sdql @@ -0,0 +1,81 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/31b.sdql b/progs/sorting/job/fj_hybrid/31b.sdql new file mode 100644 index 00000000..08164d28 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/31b.sdql @@ -0,0 +1,81 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/31c.sdql b/progs/sorting/job/fj_hybrid/31c.sdql new file mode 100644 index 00000000..91be02ed --- /dev/null +++ b/progs/sorting/job/fj_hybrid/31c.sdql @@ -0,0 +1,81 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = interm0_tuple.col3 in + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + let x3 = mi.info_type_id(mi_off) in + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/32b.sdql b/progs/sorting/job/fj_hybrid/32b.sdql new file mode 100644 index 00000000..06809246 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/32b.sdql @@ -0,0 +1,48 @@ +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t1.size)) + let x0 = t1.id(t1_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.linked_movie_id(ml_off) in + if (x1 ∈ t2_trie0) then + let t2_trie1 = t2_trie0(x1) in + sum( <- t2_trie1) + let t2_off = t2_offsets(t2_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { t1.id(t1_off) -> @smallvecdict(4) { -> 1 } } +in + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + let x2 = mk.keyword_id(mk_off) in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let mn_interm0 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/33a.sdql b/progs/sorting/job/fj_hybrid/33a.sdql new file mode 100644 index 00000000..d5d0e212 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/33a.sdql @@ -0,0 +1,113 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33a/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/33b.sdql b/progs/sorting/job/fj_hybrid/33b.sdql new file mode 100644 index 00000000..b8f927bb --- /dev/null +++ b/progs/sorting/job/fj_hybrid/33b.sdql @@ -0,0 +1,113 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33b/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/33c.sdql b/progs/sorting/job/fj_hybrid/33c.sdql new file mode 100644 index 00000000..874671dd --- /dev/null +++ b/progs/sorting/job/fj_hybrid/33c.sdql @@ -0,0 +1,113 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33c/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(ml.size)) + let x0 = ml.link_type_id(ml_off) in + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } +in + +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(mi_idx1.size)) + let x0 = mi_idx1.info_type_id(mi_idx1_off) in + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + let x1 = mi_idx1.movie_id(mi_idx1_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } +in + +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- range(mi_idx2.size)) + let x0 = mi_idx2.info_type_id(mi_idx2_off) in + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + let x1 = mi_idx2.movie_id(mi_idx2_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- range(t1.size)) + let x0 = t1.kind_id(t1_off) in + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + let x1 = t1.id(t1_off) in + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- range(t2.size)) + let x0 = t2.kind_id(t2_off) in + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + let x1 = t2.id(t2_off) in + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- range(mc1.size)) + let x0 = mc1.movie_id(mc1_off) in + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let x1 = mc1.company_id(mc1_off) in + if (x1 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x1) in + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } +in + +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(mc2.size)) + let x0 = mc2.movie_id(mc2_off) in + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + let x1 = mc2.company_id(mc2_off) in + if (x1 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/3a.sdql b/progs/sorting/job/fj_hybrid/3a.sdql index ee34e5a2..54920b25 100644 --- a/progs/sorting/job/fj_hybrid/3a.sdql +++ b/progs/sorting/job/fj_hybrid/3a.sdql @@ -11,12 +11,12 @@ timer let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- range(mk.size)) - let x0 = mk.movie_id(mk_off) in + let x0 = mk.movie_id(mk_off) in if (x0 ∈ t_trie0) then let t_trie1 = t_trie0(x0) in - sum( <- t_trie1) - let t_off = t_offsets(t_i) in - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in diff --git a/progs/sorting/job/fj_hybrid/3b.sdql b/progs/sorting/job/fj_hybrid/3b.sdql new file mode 100644 index 00000000..6645964c --- /dev/null +++ b/progs/sorting/job/fj_hybrid/3b.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/3c.sdql b/progs/sorting/job/fj_hybrid/3c.sdql new file mode 100644 index 00000000..6cbd4a42 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/3c.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.movie_id(mk_off) in + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/4a.sdql b/progs/sorting/job/fj_hybrid/4a.sdql new file mode 100644 index 00000000..de975028 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/4a.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/4b.sdql b/progs/sorting/job/fj_hybrid/4b.sdql new file mode 100644 index 00000000..66fd3a1f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/4b.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/4c.sdql b/progs/sorting/job/fj_hybrid/4c.sdql new file mode 100644 index 00000000..8d851439 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/4c.sdql @@ -0,0 +1,35 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ mi_idx_trie0) then + if (x1 ∈ t_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + let x2 = mi_idx.info_type_id(mi_idx_off) in + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/5c.sdql b/progs/sorting/job/fj_hybrid/5c.sdql new file mode 100644 index 00000000..e492c59a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/5c.sdql @@ -0,0 +1,34 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/5c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/info_type.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/5c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.info_type_id(mi_off) in + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + let x1 = mi.movie_id(mi_off) in + if (x1 ∈ mc_trie0) then + if (x1 ∈ t_trie0) then + let mc_trie1 = mc_trie0(x1) in + let t_trie1 = t_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_type_id(mc_off) in + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6a.sdql b/progs/sorting/job/fj_hybrid/6a.sdql new file mode 100644 index 00000000..c7b5ef0b --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6a.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6b.sdql b/progs/sorting/job/fj_hybrid/6b.sdql new file mode 100644 index 00000000..f21e48fa --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6b.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6c.sdql b/progs/sorting/job/fj_hybrid/6c.sdql new file mode 100644 index 00000000..07f72d87 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6c.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6d.sdql b/progs/sorting/job/fj_hybrid/6d.sdql new file mode 100644 index 00000000..cc3092ac --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6d.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6e.sdql b/progs/sorting/job/fj_hybrid/6e.sdql new file mode 100644 index 00000000..4a47e960 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6e.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/6f.sdql b/progs/sorting/job/fj_hybrid/6f.sdql new file mode 100644 index 00000000..70af48dc --- /dev/null +++ b/progs/sorting/job/fj_hybrid/6f.sdql @@ -0,0 +1,41 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6f/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/7a.sdql b/progs/sorting/job/fj_hybrid/7a.sdql new file mode 100644 index 00000000..76df788e --- /dev/null +++ b/progs/sorting/job/fj_hybrid/7a.sdql @@ -0,0 +1,61 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7a/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/7b.sdql b/progs/sorting/job/fj_hybrid/7b.sdql new file mode 100644 index 00000000..5f8d5ccb --- /dev/null +++ b/progs/sorting/job/fj_hybrid/7b.sdql @@ -0,0 +1,61 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7b/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.person_id(ci_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/7c.sdql b/progs/sorting/job/fj_hybrid/7c.sdql new file mode 100644 index 00000000..7412a7b3 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/7c.sdql @@ -0,0 +1,60 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7c/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @range { i -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + let pi_off = pi_offsets(pi_i) + let x1 = pi.info_type_id(pi_off) in + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } +in + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + let x1 = ml.link_type_id(ml_off) in + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } +in + +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.movie_id(ci_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ interm0_trie0) then + if (x1 ∈ an_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/8a.sdql b/progs/sorting/job/fj_hybrid/8a.sdql index 321b9156..8a0e36fd 100644 --- a/progs/sorting/job/fj_hybrid/8a.sdql +++ b/progs/sorting/job/fj_hybrid/8a.sdql @@ -25,7 +25,6 @@ in let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in - let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in sum( <- range(ci.size)) diff --git a/progs/sorting/job/fj_hybrid/8b.sdql b/progs/sorting/job/fj_hybrid/8b.sdql new file mode 100644 index 00000000..18869f9e --- /dev/null +++ b/progs/sorting/job/fj_hybrid/8b.sdql @@ -0,0 +1,47 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ interm0_trie0) then + let t_trie1 = t_trie0(x1) in + let interm0_trie1 = interm0_trie0(x1) in + let x2 = ci.person_id(ci_off) in + if (x2 ∈ n_trie0) then + if (x2 ∈ an_trie0) then + let n_trie1 = n_trie0(x2) in + let an_trie1 = an_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/8c.sdql b/progs/sorting/job/fj_hybrid/8c.sdql new file mode 100644 index 00000000..c669794a --- /dev/null +++ b/progs/sorting/job/fj_hybrid/8c.sdql @@ -0,0 +1,47 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let a1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let a1_offsets = ext(`SortedIndices`, a1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let a1_trie0 = sum( <- range(a1.size)) @st(a1.size) { a1.person_id(a1_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ a1_trie0) then + let a1_trie1 = a1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_a1 = sum( <- a1_trie1) let a1_off = a1_offsets(a1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/8d.sdql b/progs/sorting/job/fj_hybrid/8d.sdql new file mode 100644 index 00000000..13fe2746 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/8d.sdql @@ -0,0 +1,47 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x1) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/9a.sdql b/progs/sorting/job/fj_hybrid/9a.sdql new file mode 100644 index 00000000..c731237f --- /dev/null +++ b/progs/sorting/job/fj_hybrid/9a.sdql @@ -0,0 +1,54 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + if (x2 ∈ t_trie0) then + let t_trie1 = t_trie0(x2) in + let x5 = ci.person_role_id(ci_off) in + if (x5 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x5) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/9b.sdql b/progs/sorting/job/fj_hybrid/9b.sdql new file mode 100644 index 00000000..3285f1d0 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/9b.sdql @@ -0,0 +1,55 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + if (x1 ∈ an_trie0) then + let an_trie1 = an_trie0(x1) in + let x4 = ci.person_role_id(ci_off) in + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/9c.sdql b/progs/sorting/job/fj_hybrid/9c.sdql new file mode 100644 index 00000000..e76b08f4 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/9c.sdql @@ -0,0 +1,55 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ n_trie0) then + if (x1 ∈ an_trie0) then + let n_trie1 = n_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/fj_hybrid/9d.sdql b/progs/sorting/job/fj_hybrid/9d.sdql new file mode 100644 index 00000000..b8f07857 --- /dev/null +++ b/progs/sorting/job/fj_hybrid/9d.sdql @@ -0,0 +1,55 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mc.size)) + let x0 = mc.company_id(mc_off) in + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } +in + +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(ci.size)) + let x0 = ci.role_id(ci_off) in + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + let x1 = ci.person_id(ci_off) in + if (x1 ∈ an_trie0) then + if (x1 ∈ n_trie0) then + let an_trie1 = an_trie0(x1) in + let n_trie1 = n_trie0(x1) in + let x2 = ci.movie_id(ci_off) in + if (x2 ∈ interm0_trie0) then + if (x2 ∈ t_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + let t_trie1 = t_trie0(x2) in + let x3 = ci.person_role_id(ci_off) in + if (x3 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x3) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 94f53578..3655c54d 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -810,43 +810,192 @@ class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution } } -class CppCompileTestJOBHybrid extends AnyFlatSpec with ParallelTestExecution { +// manually load balanced - based on the GJ queries (so not perfect here) +// note: DON'T run all cases in parallel - unless you have ~64GB of ram +class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBFJHybrid extends Tag("TestJOBFJHybrid") - object TestJOBHybrid extends Tag("TestJOBHybrid") + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJHybrid in { + // 1-5 + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2d.sdql", "results/job/2d.result") - it should "compile and run JOB 3a" taggedAs TestJOBHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") - } + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4c.sdql", "results/job/4c.result") - it should "compile and run JOB 8a" taggedAs TestJOBHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/5c.sdql", "results/job/5c.result") + + // 8-15 CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8a.sdql", "results/job/8a.result") - } + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11d.sdql", "results/job/11d.result") - it should "compile and run JOB 12b" taggedAs TestJOBHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12a.sdql", "results/job/12a.result") CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12c.sdql", "results/job/12c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15d.sdql", "results/job/15d.result") } - it should "compile and run JOB GJ 13a hybrid sorting" taggedAs TestJOBHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") + it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7c.sdql", "results/job/7c.result") } - it should "compile and run JOB GJ 13b hybrid sorting" taggedAs TestJOBHybrid in CompileHelpers.assertOutputs( - "progs/sorting/job/gj_hybrid/13b.sdql", - "results/job/13b.result" - ) + it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16d.sdql", "results/job/16d.result") - it should "compile and run JOB 17b" taggedAs TestJOBHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17a.sdql", "results/job/17a.result") CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17f.sdql", "results/job/17f.result") } - it should "compile and run JOB 17f" taggedAs TestJOBHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17f.sdql", "results/job/17f.result") + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJHybrid in { + // 18-20 + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJHybrid in { + // 21-25 + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33c.sdql", "results/job/33c.result") } } +class CppCompileTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { + + object TestJOBGJHybrid extends Tag("TestJOBGJHybrid") + + it should "compile and run JOB 3a" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") + } + + it should "compile and run JOB GJ 13a" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") + } + + it should "compile and run JOB GJ 13b" taggedAs TestJOBGJHybrid in CompileHelpers.assertOutputs( + "progs/sorting/job/gj_hybrid/13b.sdql", + "results/job/13b.result" + ) +} + object DatasetsHelpers { sealed trait Dataset From aa3c8d523a0a75fef311ee9bd8ddbee0c6b5a0ac Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 24 Nov 2024 19:20:40 +0000 Subject: [PATCH 63/80] GJ hybrid sorting (all queries) --- progs/sorting/job/gj_hybrid/10a.sdql | 53 ++++++ progs/sorting/job/gj_hybrid/10c.sdql | 53 ++++++ progs/sorting/job/gj_hybrid/11a.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/11b.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/11c.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/11d.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/12a.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/12b.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/12c.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/13a.sdql | 15 +- .../sorting/job/gj_hybrid/13a_optimised.sdql | 2 - progs/sorting/job/gj_hybrid/13b.sdql | 14 +- progs/sorting/job/gj_hybrid/13c.sdql | 64 +++++++ progs/sorting/job/gj_hybrid/13d.sdql | 64 +++++++ progs/sorting/job/gj_hybrid/14a.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/14b.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/14c.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/15a.sdql | 63 +++++++ progs/sorting/job/gj_hybrid/15b.sdql | 63 +++++++ progs/sorting/job/gj_hybrid/15c.sdql | 63 +++++++ progs/sorting/job/gj_hybrid/15d.sdql | 63 +++++++ progs/sorting/job/gj_hybrid/16a.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/16b.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/16c.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/16d.sdql | 59 ++++++ progs/sorting/job/gj_hybrid/17a.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/17b.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/17c.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/17d.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/17e.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/17f.sdql | 51 ++++++ progs/sorting/job/gj_hybrid/18a.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/18b.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/18c.sdql | 58 ++++++ progs/sorting/job/gj_hybrid/19a.sdql | 77 ++++++++ progs/sorting/job/gj_hybrid/19b.sdql | 77 ++++++++ progs/sorting/job/gj_hybrid/19c.sdql | 77 ++++++++ progs/sorting/job/gj_hybrid/19d.sdql | 77 ++++++++ progs/sorting/job/gj_hybrid/1a.sdql | 41 +++++ progs/sorting/job/gj_hybrid/1b.sdql | 41 +++++ progs/sorting/job/gj_hybrid/1c.sdql | 41 +++++ progs/sorting/job/gj_hybrid/1d.sdql | 41 +++++ progs/sorting/job/gj_hybrid/20a.sdql | 74 ++++++++ progs/sorting/job/gj_hybrid/20b.sdql | 74 ++++++++ progs/sorting/job/gj_hybrid/20c.sdql | 75 ++++++++ progs/sorting/job/gj_hybrid/21a.sdql | 71 +++++++ progs/sorting/job/gj_hybrid/21b.sdql | 71 +++++++ progs/sorting/job/gj_hybrid/21c.sdql | 71 +++++++ progs/sorting/job/gj_hybrid/22a.sdql | 90 +++++++++ progs/sorting/job/gj_hybrid/22b.sdql | 90 +++++++++ progs/sorting/job/gj_hybrid/22c.sdql | 90 +++++++++ progs/sorting/job/gj_hybrid/22d.sdql | 90 +++++++++ progs/sorting/job/gj_hybrid/23a.sdql | 93 ++++++++++ progs/sorting/job/gj_hybrid/23b.sdql | 93 ++++++++++ progs/sorting/job/gj_hybrid/23c.sdql | 93 ++++++++++ progs/sorting/job/gj_hybrid/24a.sdql | 96 ++++++++++ progs/sorting/job/gj_hybrid/24b.sdql | 96 ++++++++++ progs/sorting/job/gj_hybrid/25a.sdql | 72 ++++++++ progs/sorting/job/gj_hybrid/25b.sdql | 72 ++++++++ progs/sorting/job/gj_hybrid/25c.sdql | 72 ++++++++ progs/sorting/job/gj_hybrid/26a.sdql | 99 ++++++++++ progs/sorting/job/gj_hybrid/26b.sdql | 98 ++++++++++ progs/sorting/job/gj_hybrid/26c.sdql | 98 ++++++++++ progs/sorting/job/gj_hybrid/27a.sdql | 108 +++++++++++ progs/sorting/job/gj_hybrid/27b.sdql | 108 +++++++++++ progs/sorting/job/gj_hybrid/27c.sdql | 108 +++++++++++ progs/sorting/job/gj_hybrid/28a.sdql | 117 ++++++++++++ progs/sorting/job/gj_hybrid/28b.sdql | 117 ++++++++++++ progs/sorting/job/gj_hybrid/28c.sdql | 117 ++++++++++++ progs/sorting/job/gj_hybrid/29a.sdql | 145 +++++++++++++++ progs/sorting/job/gj_hybrid/29b.sdql | 145 +++++++++++++++ progs/sorting/job/gj_hybrid/29c.sdql | 145 +++++++++++++++ progs/sorting/job/gj_hybrid/2a.sdql | 32 ++++ progs/sorting/job/gj_hybrid/2b.sdql | 32 ++++ progs/sorting/job/gj_hybrid/2d.sdql | 32 ++++ progs/sorting/job/gj_hybrid/30a.sdql | 104 +++++++++++ progs/sorting/job/gj_hybrid/30b.sdql | 104 +++++++++++ progs/sorting/job/gj_hybrid/30c.sdql | 104 +++++++++++ progs/sorting/job/gj_hybrid/31a.sdql | 85 +++++++++ progs/sorting/job/gj_hybrid/31b.sdql | 85 +++++++++ progs/sorting/job/gj_hybrid/31c.sdql | 85 +++++++++ progs/sorting/job/gj_hybrid/32b.sdql | 49 +++++ progs/sorting/job/gj_hybrid/33a.sdql | 125 +++++++++++++ progs/sorting/job/gj_hybrid/33b.sdql | 125 +++++++++++++ progs/sorting/job/gj_hybrid/33c.sdql | 125 +++++++++++++ progs/sorting/job/gj_hybrid/3a.sdql | 10 +- progs/sorting/job/gj_hybrid/3a_optimised.sdql | 3 - progs/sorting/job/gj_hybrid/3b.sdql | 34 ++++ progs/sorting/job/gj_hybrid/3c.sdql | 34 ++++ progs/sorting/job/gj_hybrid/4a.sdql | 33 ++++ progs/sorting/job/gj_hybrid/4b.sdql | 33 ++++ progs/sorting/job/gj_hybrid/4c.sdql | 33 ++++ progs/sorting/job/gj_hybrid/5c.sdql | 32 ++++ progs/sorting/job/gj_hybrid/6a.sdql | 43 +++++ progs/sorting/job/gj_hybrid/6b.sdql | 43 +++++ progs/sorting/job/gj_hybrid/6c.sdql | 43 +++++ progs/sorting/job/gj_hybrid/6d.sdql | 43 +++++ progs/sorting/job/gj_hybrid/6e.sdql | 43 +++++ progs/sorting/job/gj_hybrid/6f.sdql | 43 +++++ progs/sorting/job/gj_hybrid/7a.sdql | 65 +++++++ progs/sorting/job/gj_hybrid/7b.sdql | 65 +++++++ progs/sorting/job/gj_hybrid/7c.sdql | 64 +++++++ progs/sorting/job/gj_hybrid/8a.sdql | 49 +++++ progs/sorting/job/gj_hybrid/8b.sdql | 49 +++++ progs/sorting/job/gj_hybrid/8c.sdql | 49 +++++ progs/sorting/job/gj_hybrid/8d.sdql | 49 +++++ progs/sorting/job/gj_hybrid/9a.sdql | 56 ++++++ progs/sorting/job/gj_hybrid/9b.sdql | 57 ++++++ progs/sorting/job/gj_hybrid/9c.sdql | 57 ++++++ progs/sorting/job/gj_hybrid/9d.sdql | 57 ++++++ .../scala/sdql/backend/CppCompileTest.scala | 173 ++++++++++++++++-- 111 files changed, 7489 insertions(+), 38 deletions(-) create mode 100644 progs/sorting/job/gj_hybrid/10a.sdql create mode 100644 progs/sorting/job/gj_hybrid/10c.sdql create mode 100644 progs/sorting/job/gj_hybrid/11a.sdql create mode 100644 progs/sorting/job/gj_hybrid/11b.sdql create mode 100644 progs/sorting/job/gj_hybrid/11c.sdql create mode 100644 progs/sorting/job/gj_hybrid/11d.sdql create mode 100644 progs/sorting/job/gj_hybrid/12a.sdql create mode 100644 progs/sorting/job/gj_hybrid/12b.sdql create mode 100644 progs/sorting/job/gj_hybrid/12c.sdql create mode 100644 progs/sorting/job/gj_hybrid/13c.sdql create mode 100644 progs/sorting/job/gj_hybrid/13d.sdql create mode 100644 progs/sorting/job/gj_hybrid/14a.sdql create mode 100644 progs/sorting/job/gj_hybrid/14b.sdql create mode 100644 progs/sorting/job/gj_hybrid/14c.sdql create mode 100644 progs/sorting/job/gj_hybrid/15a.sdql create mode 100644 progs/sorting/job/gj_hybrid/15b.sdql create mode 100644 progs/sorting/job/gj_hybrid/15c.sdql create mode 100644 progs/sorting/job/gj_hybrid/15d.sdql create mode 100644 progs/sorting/job/gj_hybrid/16a.sdql create mode 100644 progs/sorting/job/gj_hybrid/16b.sdql create mode 100644 progs/sorting/job/gj_hybrid/16c.sdql create mode 100644 progs/sorting/job/gj_hybrid/16d.sdql create mode 100644 progs/sorting/job/gj_hybrid/17a.sdql create mode 100644 progs/sorting/job/gj_hybrid/17b.sdql create mode 100644 progs/sorting/job/gj_hybrid/17c.sdql create mode 100644 progs/sorting/job/gj_hybrid/17d.sdql create mode 100644 progs/sorting/job/gj_hybrid/17e.sdql create mode 100644 progs/sorting/job/gj_hybrid/17f.sdql create mode 100644 progs/sorting/job/gj_hybrid/18a.sdql create mode 100644 progs/sorting/job/gj_hybrid/18b.sdql create mode 100644 progs/sorting/job/gj_hybrid/18c.sdql create mode 100644 progs/sorting/job/gj_hybrid/19a.sdql create mode 100644 progs/sorting/job/gj_hybrid/19b.sdql create mode 100644 progs/sorting/job/gj_hybrid/19c.sdql create mode 100644 progs/sorting/job/gj_hybrid/19d.sdql create mode 100644 progs/sorting/job/gj_hybrid/1a.sdql create mode 100644 progs/sorting/job/gj_hybrid/1b.sdql create mode 100644 progs/sorting/job/gj_hybrid/1c.sdql create mode 100644 progs/sorting/job/gj_hybrid/1d.sdql create mode 100644 progs/sorting/job/gj_hybrid/20a.sdql create mode 100644 progs/sorting/job/gj_hybrid/20b.sdql create mode 100644 progs/sorting/job/gj_hybrid/20c.sdql create mode 100644 progs/sorting/job/gj_hybrid/21a.sdql create mode 100644 progs/sorting/job/gj_hybrid/21b.sdql create mode 100644 progs/sorting/job/gj_hybrid/21c.sdql create mode 100644 progs/sorting/job/gj_hybrid/22a.sdql create mode 100644 progs/sorting/job/gj_hybrid/22b.sdql create mode 100644 progs/sorting/job/gj_hybrid/22c.sdql create mode 100644 progs/sorting/job/gj_hybrid/22d.sdql create mode 100644 progs/sorting/job/gj_hybrid/23a.sdql create mode 100644 progs/sorting/job/gj_hybrid/23b.sdql create mode 100644 progs/sorting/job/gj_hybrid/23c.sdql create mode 100644 progs/sorting/job/gj_hybrid/24a.sdql create mode 100644 progs/sorting/job/gj_hybrid/24b.sdql create mode 100644 progs/sorting/job/gj_hybrid/25a.sdql create mode 100644 progs/sorting/job/gj_hybrid/25b.sdql create mode 100644 progs/sorting/job/gj_hybrid/25c.sdql create mode 100644 progs/sorting/job/gj_hybrid/26a.sdql create mode 100644 progs/sorting/job/gj_hybrid/26b.sdql create mode 100644 progs/sorting/job/gj_hybrid/26c.sdql create mode 100644 progs/sorting/job/gj_hybrid/27a.sdql create mode 100644 progs/sorting/job/gj_hybrid/27b.sdql create mode 100644 progs/sorting/job/gj_hybrid/27c.sdql create mode 100644 progs/sorting/job/gj_hybrid/28a.sdql create mode 100644 progs/sorting/job/gj_hybrid/28b.sdql create mode 100644 progs/sorting/job/gj_hybrid/28c.sdql create mode 100644 progs/sorting/job/gj_hybrid/29a.sdql create mode 100644 progs/sorting/job/gj_hybrid/29b.sdql create mode 100644 progs/sorting/job/gj_hybrid/29c.sdql create mode 100644 progs/sorting/job/gj_hybrid/2a.sdql create mode 100644 progs/sorting/job/gj_hybrid/2b.sdql create mode 100644 progs/sorting/job/gj_hybrid/2d.sdql create mode 100644 progs/sorting/job/gj_hybrid/30a.sdql create mode 100644 progs/sorting/job/gj_hybrid/30b.sdql create mode 100644 progs/sorting/job/gj_hybrid/30c.sdql create mode 100644 progs/sorting/job/gj_hybrid/31a.sdql create mode 100644 progs/sorting/job/gj_hybrid/31b.sdql create mode 100644 progs/sorting/job/gj_hybrid/31c.sdql create mode 100644 progs/sorting/job/gj_hybrid/32b.sdql create mode 100644 progs/sorting/job/gj_hybrid/33a.sdql create mode 100644 progs/sorting/job/gj_hybrid/33b.sdql create mode 100644 progs/sorting/job/gj_hybrid/33c.sdql create mode 100644 progs/sorting/job/gj_hybrid/3b.sdql create mode 100644 progs/sorting/job/gj_hybrid/3c.sdql create mode 100644 progs/sorting/job/gj_hybrid/4a.sdql create mode 100644 progs/sorting/job/gj_hybrid/4b.sdql create mode 100644 progs/sorting/job/gj_hybrid/4c.sdql create mode 100644 progs/sorting/job/gj_hybrid/5c.sdql create mode 100644 progs/sorting/job/gj_hybrid/6a.sdql create mode 100644 progs/sorting/job/gj_hybrid/6b.sdql create mode 100644 progs/sorting/job/gj_hybrid/6c.sdql create mode 100644 progs/sorting/job/gj_hybrid/6d.sdql create mode 100644 progs/sorting/job/gj_hybrid/6e.sdql create mode 100644 progs/sorting/job/gj_hybrid/6f.sdql create mode 100644 progs/sorting/job/gj_hybrid/7a.sdql create mode 100644 progs/sorting/job/gj_hybrid/7b.sdql create mode 100644 progs/sorting/job/gj_hybrid/7c.sdql create mode 100644 progs/sorting/job/gj_hybrid/8a.sdql create mode 100644 progs/sorting/job/gj_hybrid/8b.sdql create mode 100644 progs/sorting/job/gj_hybrid/8c.sdql create mode 100644 progs/sorting/job/gj_hybrid/8d.sdql create mode 100644 progs/sorting/job/gj_hybrid/9a.sdql create mode 100644 progs/sorting/job/gj_hybrid/9b.sdql create mode 100644 progs/sorting/job/gj_hybrid/9c.sdql create mode 100644 progs/sorting/job/gj_hybrid/9d.sdql diff --git a/progs/sorting/job/gj_hybrid/10a.sdql b/progs/sorting/job/gj_hybrid/10a.sdql new file mode 100644 index 00000000..6eb0029f --- /dev/null +++ b/progs/sorting/job/gj_hybrid/10a.sdql @@ -0,0 +1,53 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.movie_id, ci.person_role_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/10c.sdql b/progs/sorting/job/gj_hybrid/10c.sdql new file mode 100644 index 00000000..cd95e5ea --- /dev/null +++ b/progs/sorting/job/gj_hybrid/10c.sdql @@ -0,0 +1,53 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.movie_id, ci.person_role_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/role_type.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/11a.sdql b/progs/sorting/job/gj_hybrid/11a.sdql new file mode 100644 index 00000000..b22de77e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/11a.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/11b.sdql b/progs/sorting/job/gj_hybrid/11b.sdql new file mode 100644 index 00000000..f41e49bb --- /dev/null +++ b/progs/sorting/job/gj_hybrid/11b.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/11b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/11c.sdql b/progs/sorting/job/gj_hybrid/11c.sdql new file mode 100644 index 00000000..3fe03fbe --- /dev/null +++ b/progs/sorting/job/gj_hybrid/11c.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_mc = sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/11d.sdql b/progs/sorting/job/gj_hybrid/11d.sdql new file mode 100644 index 00000000..91ebaae8 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/11d.sdql @@ -0,0 +1,59 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/11d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/11d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/11d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/11d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_mc = sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/12a.sdql b/progs/sorting/job/gj_hybrid/12a.sdql new file mode 100644 index 00000000..4c92d527 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/12a.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/12b.sdql b/progs/sorting/job/gj_hybrid/12b.sdql new file mode 100644 index 00000000..26452d19 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/12b.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/12c.sdql b/progs/sorting/job/gj_hybrid/12c.sdql new file mode 100644 index 00000000..b6d733a4 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/12c.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/12c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/12c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/12c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/12c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/13a.sdql b/progs/sorting/job/gj_hybrid/13a.sdql index 53682222..250e252c 100644 --- a/progs/sorting/job/gj_hybrid/13a.sdql +++ b/progs/sorting/job/gj_hybrid/13a.sdql @@ -20,25 +20,24 @@ let cn_offsets = ext(`SortedIndices`, cn.id) timer let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in -let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) if (x0 ∈ miidx_trie0) then let miidx_trie1 = miidx_trie0(x0) in sum( <- t_trie1) - let t_off = t_offsets(t_i) + let t_off = t_offsets(t_i) sum( <- miidx_trie1) - let miidx_off = miidx_offsets(miidx_i) - @phmap(t.size) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(4) { -> 1 } } } } + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } in -let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in -let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> { mc.company_type_id(mc_offsets(i)) -> { mc.company_id(mc_offsets(i)) -> 1 } } } in +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in - sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then if (x0 ∈ mc_trie0) then @@ -59,7 +58,7 @@ sum( <- mi_trie0) sum( <- mc_trie2) if (x5 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x5) in - let mn_mi = sum( <- mi_trie2) promote[min_sum]() in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in promote[min_sum]() diff --git a/progs/sorting/job/gj_hybrid/13a_optimised.sdql b/progs/sorting/job/gj_hybrid/13a_optimised.sdql index e61efdb7..a2f33d21 100644 --- a/progs/sorting/job/gj_hybrid/13a_optimised.sdql +++ b/progs/sorting/job/gj_hybrid/13a_optimised.sdql @@ -51,11 +51,9 @@ sum( <- mi_trie0) sum( <- mi_trie1) if (x2 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x2) in - // TODO remove comment - fix to Amirali's C++ query let x3 = interm0_tuple(3) in if (x3 ∈ it_trie0) then let it_trie1 = it_trie0(x3) in - // TODO remove comment - ******************* sum( <- mc_trie1) if (x4 ∈ ct_trie0) then let ct_trie1 = ct_trie0(x4) in diff --git a/progs/sorting/job/gj_hybrid/13b.sdql b/progs/sorting/job/gj_hybrid/13b.sdql index 3f38276d..99d4918c 100644 --- a/progs/sorting/job/gj_hybrid/13b.sdql +++ b/progs/sorting/job/gj_hybrid/13b.sdql @@ -20,19 +20,19 @@ let cn_offsets = ext(`SortedIndices`, cn.id) timer let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in -let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) if (x0 ∈ miidx_trie0) then let miidx_trie1 = miidx_trie0(x0) in sum( <- t_trie1) - let t_off = t_offsets(t_i) + let t_off = t_offsets(t_i) sum( <- miidx_trie1) - let miidx_off = miidx_offsets(miidx_i) - @phmap(t.size) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(4) { -> 1 } } } } + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } in -let mi_trie0 = sum( <- range(mi.size)) { mi.movie_id(mi_offsets(i)) -> @st { mi.info_type_id(mi_offsets(i)) -> 1 } } in -let mc_trie0 = sum( <- range(mc.size)) @st { mc.movie_id(mc_offsets(i)) -> @st { mc.company_type_id(mc_offsets(i)) -> @st { mc.company_id(mc_offsets(i)) -> 1 } } } in +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in @@ -59,6 +59,6 @@ sum( <- mi_trie0) if (x5 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x5) in let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/sorting/job/gj_hybrid/13c.sdql b/progs/sorting/job/gj_hybrid/13c.sdql new file mode 100644 index 00000000..b2ea4cad --- /dev/null +++ b/progs/sorting/job/gj_hybrid/13c.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- interm0_trie2) + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/13d.sdql b/progs/sorting/job/gj_hybrid/13d.sdql new file mode 100644 index 00000000..3a6056f9 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/13d.sdql @@ -0,0 +1,64 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ miidx_trie0) then + let miidx_trie1 = miidx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- miidx_trie1) + let miidx_off = miidx_offsets(miidx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- interm0_trie2) + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/14a.sdql b/progs/sorting/job/gj_hybrid/14a.sdql new file mode 100644 index 00000000..e55bc5ad --- /dev/null +++ b/progs/sorting/job/gj_hybrid/14a.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- interm0_trie3) + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/14b.sdql b/progs/sorting/job/gj_hybrid/14b.sdql new file mode 100644 index 00000000..75447858 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/14b.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- interm0_trie3) + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/14c.sdql b/progs/sorting/job/gj_hybrid/14c.sdql new file mode 100644 index 00000000..ba3ce5dd --- /dev/null +++ b/progs/sorting/job/gj_hybrid/14c.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- interm0_trie3) + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/15a.sdql b/progs/sorting/job/gj_hybrid/15a.sdql new file mode 100644 index 00000000..ae9e9afe --- /dev/null +++ b/progs/sorting/job/gj_hybrid/15a.sdql @@ -0,0 +1,63 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/15b.sdql b/progs/sorting/job/gj_hybrid/15b.sdql new file mode 100644 index 00000000..2f7edc5f --- /dev/null +++ b/progs/sorting/job/gj_hybrid/15b.sdql @@ -0,0 +1,63 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/15c.sdql b/progs/sorting/job/gj_hybrid/15c.sdql new file mode 100644 index 00000000..247b7761 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/15c.sdql @@ -0,0 +1,63 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/15d.sdql b/progs/sorting/job/gj_hybrid/15d.sdql new file mode 100644 index 00000000..12ee96b0 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/15d.sdql @@ -0,0 +1,63 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_at = sum( <- at_trie1) let at_off = at_offsets(at_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/16a.sdql b/progs/sorting/job/gj_hybrid/16a.sdql new file mode 100644 index 00000000..2fc7178c --- /dev/null +++ b/progs/sorting/job/gj_hybrid/16a.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/16b.sdql b/progs/sorting/job/gj_hybrid/16b.sdql new file mode 100644 index 00000000..02bad162 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/16b.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/16c.sdql b/progs/sorting/job/gj_hybrid/16c.sdql new file mode 100644 index 00000000..b1a7ae55 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/16c.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/16d.sdql b/progs/sorting/job/gj_hybrid/16d.sdql new file mode 100644 index 00000000..fa5e7a80 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/16d.sdql @@ -0,0 +1,59 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/16d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/16d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17a.sdql b/progs/sorting/job/gj_hybrid/17a.sdql new file mode 100644 index 00000000..9260cc79 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17a.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17b.sdql b/progs/sorting/job/gj_hybrid/17b.sdql new file mode 100644 index 00000000..fbb31027 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17b.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17c.sdql b/progs/sorting/job/gj_hybrid/17c.sdql new file mode 100644 index 00000000..590eec95 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17c.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17d.sdql b/progs/sorting/job/gj_hybrid/17d.sdql new file mode 100644 index 00000000..99cdebfe --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17d.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17e.sdql b/progs/sorting/job/gj_hybrid/17e.sdql new file mode 100644 index 00000000..485b552b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17e.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17e/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/17f.sdql b/progs/sorting/job/gj_hybrid/17f.sdql new file mode 100644 index 00000000..c0b7a298 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/17f.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17f/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/18a.sdql b/progs/sorting/job/gj_hybrid/18a.sdql new file mode 100644 index 00000000..5b76e699 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/18a.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie2) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/18b.sdql b/progs/sorting/job/gj_hybrid/18b.sdql new file mode 100644 index 00000000..7b2336e3 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/18b.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie2) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/18c.sdql b/progs/sorting/job/gj_hybrid/18c.sdql new file mode 100644 index 00000000..44c37f0b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/18c.sdql @@ -0,0 +1,58 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/18c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/18c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/18c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/18c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie2) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/19a.sdql b/progs/sorting/job/gj_hybrid/19a.sdql new file mode 100644 index 00000000..34f60b32 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/19a.sdql @@ -0,0 +1,77 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.person_role_id, ci.person_id, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mi_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/19b.sdql b/progs/sorting/job/gj_hybrid/19b.sdql new file mode 100644 index 00000000..a0014dff --- /dev/null +++ b/progs/sorting/job/gj_hybrid/19b.sdql @@ -0,0 +1,77 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/19b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.person_role_id, ci.person_id, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mi_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/19c.sdql b/progs/sorting/job/gj_hybrid/19c.sdql new file mode 100644 index 00000000..1f105ead --- /dev/null +++ b/progs/sorting/job/gj_hybrid/19c.sdql @@ -0,0 +1,77 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/19c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.person_role_id, ci.person_id, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mi_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/19d.sdql b/progs/sorting/job/gj_hybrid/19d.sdql new file mode 100644 index 00000000..5cce5502 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/19d.sdql @@ -0,0 +1,77 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/19d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/19d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/19d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.role_id, ci.person_role_id, ci.person_id, ci.movie_id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/19d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mi_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x3) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/1a.sdql b/progs/sorting/job/gj_hybrid/1a.sdql new file mode 100644 index 00000000..3e6ad967 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/1a.sdql @@ -0,0 +1,41 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- mc_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/1b.sdql b/progs/sorting/job/gj_hybrid/1b.sdql new file mode 100644 index 00000000..07f82aa3 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/1b.sdql @@ -0,0 +1,41 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- mc_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/1c.sdql b/progs/sorting/job/gj_hybrid/1c.sdql new file mode 100644 index 00000000..616d52ab --- /dev/null +++ b/progs/sorting/job/gj_hybrid/1c.sdql @@ -0,0 +1,41 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- mc_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/1d.sdql b/progs/sorting/job/gj_hybrid/1d.sdql new file mode 100644 index 00000000..1baa0af0 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/1d.sdql @@ -0,0 +1,41 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/1d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/1d/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/1d/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/1d/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- mc_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/20a.sdql b/progs/sorting/job/gj_hybrid/20a.sdql new file mode 100644 index 00000000..8147db93 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/20a.sdql @@ -0,0 +1,74 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie2) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/20b.sdql b/progs/sorting/job/gj_hybrid/20b.sdql new file mode 100644 index 00000000..9558e60f --- /dev/null +++ b/progs/sorting/job/gj_hybrid/20b.sdql @@ -0,0 +1,74 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie2) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/20c.sdql b/progs/sorting/job/gj_hybrid/20c.sdql new file mode 100644 index 00000000..b8bff54c --- /dev/null +++ b/progs/sorting/job/gj_hybrid/20c.sdql @@ -0,0 +1,75 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/20c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/20c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/20c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie2) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x2) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/21a.sdql b/progs/sorting/job/gj_hybrid/21a.sdql new file mode 100644 index 00000000..5b8e0e44 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/21a.sdql @@ -0,0 +1,71 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- interm1_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/21b.sdql b/progs/sorting/job/gj_hybrid/21b.sdql new file mode 100644 index 00000000..b69c9410 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/21b.sdql @@ -0,0 +1,71 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- interm1_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/21c.sdql b/progs/sorting/job/gj_hybrid/21c.sdql new file mode 100644 index 00000000..0692fc53 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/21c.sdql @@ -0,0 +1,71 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/21c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/21c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/21c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/21c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/21c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +sum( <- mi_trie0) + if (x0 ∈ interm1_trie0) then + if (x0 ∈ mc_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm1_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- interm1_trie2) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/22a.sdql b/progs/sorting/job/gj_hybrid/22a.sdql new file mode 100644 index 00000000..2621924d --- /dev/null +++ b/progs/sorting/job/gj_hybrid/22a.sdql @@ -0,0 +1,90 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/22b.sdql b/progs/sorting/job/gj_hybrid/22b.sdql new file mode 100644 index 00000000..2c1c5e9b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/22b.sdql @@ -0,0 +1,90 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/22c.sdql b/progs/sorting/job/gj_hybrid/22c.sdql new file mode 100644 index 00000000..f1bc5b12 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/22c.sdql @@ -0,0 +1,90 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/22d.sdql b/progs/sorting/job/gj_hybrid/22d.sdql new file mode 100644 index 00000000..f244a8b7 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/22d.sdql @@ -0,0 +1,90 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id, t.kind_id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/22d/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/22d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/22d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/22d/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/22d/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @st(t.size) { t.kind_id(t_offsets(i)) -> @range { i -> 1 } } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- t_trie0) + if (x0 ∈ mi_idx_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/23a.sdql b/progs/sorting/job/gj_hybrid/23a.sdql new file mode 100644 index 00000000..f10fb14a --- /dev/null +++ b/progs/sorting/job/gj_hybrid/23a.sdql @@ -0,0 +1,93 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/23b.sdql b/progs/sorting/job/gj_hybrid/23b.sdql new file mode 100644 index 00000000..4d88932a --- /dev/null +++ b/progs/sorting/job/gj_hybrid/23b.sdql @@ -0,0 +1,93 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/23b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/23c.sdql b/progs/sorting/job/gj_hybrid/23c.sdql new file mode 100644 index 00000000..eb7b6eda --- /dev/null +++ b/progs/sorting/job/gj_hybrid/23c.sdql @@ -0,0 +1,93 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/23c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/23c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/23c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/23c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- kt_trie1) + let kt_off = kt_offsets(kt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/24a.sdql b/progs/sorting/job/gj_hybrid/24a.sdql new file mode 100644 index 00000000..136ac0c1 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/24a.sdql @@ -0,0 +1,96 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_role_id, ci.role_id, ci.person_id, ci.movie_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie2) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/24b.sdql b/progs/sorting/job/gj_hybrid/24b.sdql new file mode 100644 index 00000000..457ae2ca --- /dev/null +++ b/progs/sorting/job/gj_hybrid/24b.sdql @@ -0,0 +1,96 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/24b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/24b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/24b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/24b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/24b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_role_id, ci.role_id, ci.person_id, ci.movie_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/24b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_trie1) + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie2) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- n_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm2 = sum( <- interm2_trie1) promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/25a.sdql b/progs/sorting/job/gj_hybrid/25a.sdql new file mode 100644 index 00000000..e583d9ae --- /dev/null +++ b/progs/sorting/job/gj_hybrid/25a.sdql @@ -0,0 +1,72 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/25b.sdql b/progs/sorting/job/gj_hybrid/25b.sdql new file mode 100644 index 00000000..4bdf7a9a --- /dev/null +++ b/progs/sorting/job/gj_hybrid/25b.sdql @@ -0,0 +1,72 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/25c.sdql b/progs/sorting/job/gj_hybrid/25c.sdql new file mode 100644 index 00000000..d47e8176 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/25c.sdql @@ -0,0 +1,72 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/25c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/25c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/25c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/25c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/25c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/26a.sdql b/progs/sorting/job/gj_hybrid/26a.sdql new file mode 100644 index 00000000..34c48c81 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/26a.sdql @@ -0,0 +1,99 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.person_role_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x2) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/26b.sdql b/progs/sorting/job/gj_hybrid/26b.sdql new file mode 100644 index 00000000..ad41824e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/26b.sdql @@ -0,0 +1,98 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/26b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.person_role_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/26c.sdql b/progs/sorting/job/gj_hybrid/26c.sdql new file mode 100644 index 00000000..d9d34576 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/26c.sdql @@ -0,0 +1,98 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/26c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/26c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/26c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.person_role_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/26c/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x2) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm3 = sum( <- interm3_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/27a.sdql b/progs/sorting/job/gj_hybrid/27a.sdql new file mode 100644 index 00000000..056d677b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/27a.sdql @@ -0,0 +1,108 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27a/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- cc_trie3) + let cc_off = cc_offsets(cc_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/27b.sdql b/progs/sorting/job/gj_hybrid/27b.sdql new file mode 100644 index 00000000..5eec42a2 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/27b.sdql @@ -0,0 +1,108 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27b/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- cc_trie3) + let cc_off = cc_offsets(cc_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/27c.sdql b/progs/sorting/job/gj_hybrid/27c.sdql new file mode 100644 index 00000000..f62a1497 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/27c.sdql @@ -0,0 +1,108 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/27c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id, cc.movie_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_type_id, mc.company_id, mc.movie_id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/27c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/27c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/27c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/27c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + sum( <- lt_trie1) + let lt_off = lt_offsets(lt_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + if (x2 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x2) in + sum( <- cc_trie3) + let cc_off = cc_offsets(cc_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x0) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/28a.sdql b/progs/sorting/job/gj_hybrid/28a.sdql new file mode 100644 index 00000000..5edddb7d --- /dev/null +++ b/progs/sorting/job/gj_hybrid/28a.sdql @@ -0,0 +1,117 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/28b.sdql b/progs/sorting/job/gj_hybrid/28b.sdql new file mode 100644 index 00000000..a5a68c3e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/28b.sdql @@ -0,0 +1,117 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28b/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/28c.sdql b/progs/sorting/job/gj_hybrid/28c.sdql new file mode 100644 index 00000000..9f693006 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/28c.sdql @@ -0,0 +1,117 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/t.csv") +let t_offsets = ext(`SortedIndices`, t.kind_id, t.id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/28c/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.company_type_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/28c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/28c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/28c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/28c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x0) in + sum( <- t_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- t_trie2) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> @range { i -> 1 } } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x1) in + sum( <- mc_trie2) + if (x2 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x2) in + sum( <- mc_trie3) + let mc_off = mc_offsets(mc_i) + sum( <- cn_trie1) + let cn_off = cn_offsets(cn_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/29a.sdql b/progs/sorting/job/gj_hybrid/29a.sdql new file mode 100644 index 00000000..c56fdf5d --- /dev/null +++ b/progs/sorting/job/gj_hybrid/29a.sdql @@ -0,0 +1,145 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29a/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_role_id, ci.role_id, ci.person_id, ci.movie_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29a/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- pi_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x1) in + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm6_trie0 = sum( <- n_trie0) + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/29b.sdql b/progs/sorting/job/gj_hybrid/29b.sdql new file mode 100644 index 00000000..626c6e61 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/29b.sdql @@ -0,0 +1,145 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29b/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_role_id, ci.role_id, ci.person_id, ci.movie_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29b/chn.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- pi_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x1) in + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm6_trie0 = sum( <- n_trie0) + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/29c.sdql b/progs/sorting/job/gj_hybrid/29c.sdql new file mode 100644 index 00000000..8c44de00 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/29c.sdql @@ -0,0 +1,145 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/29c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id, mc.movie_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/29c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/29c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/person_info.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) +let it3 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/29c/it3.csv") +let it3_offsets = ext(`SortedIndices`, it3.id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/29c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/29c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_role_id, ci.role_id, ci.person_id, ci.movie_id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/29c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it_trie0) then + let it_trie1 = it_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +let it3_trie0 = sum( <- range(it3.size)) @st(it3.size) { it3.id(it3_offsets(i)) -> 1 } in +let interm5_trie0 = sum( <- pi_trie0) + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it3_trie0) then + let it3_trie1 = it3_trie0(x1) in + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } +in + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let interm6_trie0 = sum( <- n_trie0) + if (x0 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x0) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ interm6_trie0) then + let interm6_trie1 = interm6_trie0(x2) in + sum( <- ci_trie3) + if (x3 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x3) in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_interm6 = sum( <- interm6_trie1) promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/2a.sdql b/progs/sorting/job/gj_hybrid/2a.sdql new file mode 100644 index 00000000..21838ccb --- /dev/null +++ b/progs/sorting/job/gj_hybrid/2a.sdql @@ -0,0 +1,32 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/2b.sdql b/progs/sorting/job/gj_hybrid/2b.sdql new file mode 100644 index 00000000..f24791fd --- /dev/null +++ b/progs/sorting/job/gj_hybrid/2b.sdql @@ -0,0 +1,32 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/2d.sdql b/progs/sorting/job/gj_hybrid/2d.sdql new file mode 100644 index 00000000..ab9972e2 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/2d.sdql @@ -0,0 +1,32 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/30a.sdql b/progs/sorting/job/gj_hybrid/30a.sdql new file mode 100644 index 00000000..a28a9184 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/30a.sdql @@ -0,0 +1,104 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30a/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/30b.sdql b/progs/sorting/job/gj_hybrid/30b.sdql new file mode 100644 index 00000000..ef22097c --- /dev/null +++ b/progs/sorting/job/gj_hybrid/30b.sdql @@ -0,0 +1,104 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30b/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/30c.sdql b/progs/sorting/job/gj_hybrid/30c.sdql new file mode 100644 index 00000000..2f060f99 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/30c.sdql @@ -0,0 +1,104 @@ +let cc = load[ int}, movie_id: @vec {int -> int}, subject_id: @vec {int -> int}, status_id: @vec {int -> int}, size: int>]("datasets/job/complete_cast.csv") +let cc_offsets = ext(`SortedIndices`, cc.subject_id, cc.status_id) +let cct1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct1.csv") +let cct1_offsets = ext(`SortedIndices`, cct1.id) +let cct2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/30c/cct2.csv") +let cct2_offsets = ext(`SortedIndices`, cct2.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.info_type_id, mi_idx.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.keyword_id, mk.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/30c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/30c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.info_type_id, mi.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/30c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/30c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/30c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @range { i -> 1 } } } in +let cct1_trie0 = sum( <- range(cct1.size)) @st(cct1.size) { cct1.id(cct1_offsets(i)) -> 1 } in +let cct2_trie0 = sum( <- range(cct2.size)) @st(cct2.size) { cct2.id(cct2_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- cc_trie0) + if (x0 ∈ cct1_trie0) then + let cct1_trie1 = cct1_trie0(x0) in + sum( <- cc_trie1) + if (x1 ∈ cct2_trie0) then + let cct2_trie1 = cct2_trie0(x1) in + sum( <- cc_trie2) + let cc_off = cc_offsets(cc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx_trie2) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm2_trie0 = sum( <- t_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- mk_trie0) + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- mi_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm4 = sum( <- interm4_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/31a.sdql b/progs/sorting/job/gj_hybrid/31a.sdql new file mode 100644 index 00000000..39ad3809 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/31a.sdql @@ -0,0 +1,85 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/31b.sdql b/progs/sorting/job/gj_hybrid/31b.sdql new file mode 100644 index 00000000..c6235fc2 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/31b.sdql @@ -0,0 +1,85 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/31b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/31c.sdql b/progs/sorting/job/gj_hybrid/31c.sdql new file mode 100644 index 00000000..fc752d18 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/31c.sdql @@ -0,0 +1,85 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/31c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/31c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/31c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/31c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/31c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + if (x0 ∈ mc_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- interm0_trie2) + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- interm0_trie3) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/32b.sdql b/progs/sorting/job/gj_hybrid/32b.sdql new file mode 100644 index 00000000..1de26e7e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/32b.sdql @@ -0,0 +1,49 @@ +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.movie_id, ml.linked_movie_id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t2_offsets = ext(`SortedIndices`, t2.id) +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.movie_id(ml_offsets(i)) -> @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @range { i -> 1 } } } in +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- t1_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + if (x1 ∈ t2_trie0) then + let t2_trie1 = t2_trie0(x1) in + sum( <- t1_trie1) + let t1_off = t1_offsets(t1_i) + sum( <- ml_trie2) + let ml_off = ml_offsets(ml_i) + sum( <- t2_trie1) + let t2_off = t2_offsets(t2_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t1.id(t1_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- mk_trie1) + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/33a.sdql b/progs/sorting/job/gj_hybrid/33a.sdql new file mode 100644 index 00000000..1a8df21d --- /dev/null +++ b/progs/sorting/job/gj_hybrid/33a.sdql @@ -0,0 +1,125 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.info_type_id, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33a/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.info_type_id, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.kind_id, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.kind_id, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33a/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.company_id, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33a/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.company_id, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx1_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_idx1_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx1_trie2) + let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mi_idx2_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx2_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mi_idx2_trie2) + let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- t1_trie0) + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + sum( <- t1_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- t1_trie2) + let t1_off = t1_offsets(t1_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- t2_trie0) + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + sum( <- t2_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- t2_trie2) + let t2_off = t2_offsets(t2_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- mc1_trie0) + if (x0 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x0) in + sum( <- mc1_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + sum( <- mc1_trie2) + let mc1_off = mc1_offsets(mc1_i) + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- mc2_trie0) + if (x0 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x0) in + sum( <- mc2_trie1) + if (x1 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/33b.sdql b/progs/sorting/job/gj_hybrid/33b.sdql new file mode 100644 index 00000000..fec5f152 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/33b.sdql @@ -0,0 +1,125 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.info_type_id, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33b/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.info_type_id, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33b/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.kind_id, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.kind_id, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33b/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.company_id, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33b/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.company_id, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx1_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_idx1_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx1_trie2) + let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mi_idx2_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx2_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mi_idx2_trie2) + let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- t1_trie0) + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + sum( <- t1_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- t1_trie2) + let t1_off = t1_offsets(t1_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- t2_trie0) + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + sum( <- t2_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- t2_trie2) + let t2_off = t2_offsets(t2_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- mc1_trie0) + if (x0 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x0) in + sum( <- mc1_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + sum( <- mc1_trie2) + let mc1_off = mc1_offsets(mc1_i) + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- mc2_trie0) + if (x0 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x0) in + sum( <- mc2_trie1) + if (x1 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/33c.sdql b/progs/sorting/job/gj_hybrid/33c.sdql new file mode 100644 index 00000000..dd917514 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/33c.sdql @@ -0,0 +1,125 @@ +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/33c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let mi_idx1 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") +let mi_idx1_offsets = ext(`SortedIndices`, mi_idx1.info_type_id, mi_idx1.movie_id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let mi_idx2 = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/33c/mi_idx2.csv") +let mi_idx2_offsets = ext(`SortedIndices`, mi_idx2.info_type_id, mi_idx2.movie_id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/33c/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t1_offsets = ext(`SortedIndices`, t1.kind_id, t1.id) +let kt1 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt1.csv") +let kt1_offsets = ext(`SortedIndices`, kt1.id) +let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/t2.csv") +let t2_offsets = ext(`SortedIndices`, t2.kind_id, t2.id) +let kt2 = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/33c/kt2.csv") +let kt2_offsets = ext(`SortedIndices`, kt2.id) +let mc1 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc1_offsets = ext(`SortedIndices`, mc1.company_id, mc1.movie_id) +let cn1 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/33c/cn1.csv") +let cn1_offsets = ext(`SortedIndices`, cn1.id) +let mc2 = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc2_offsets = ext(`SortedIndices`, mc2.company_id, mc2.movie_id) +let cn2 = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn2_offsets = ext(`SortedIndices`, cn2.id) + +timer + +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- ml_trie0) + if (x0 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x0) in + sum( <- ml_trie1) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- mi_idx1_trie0) + if (x0 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x0) in + sum( <- mi_idx1_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- mi_idx1_trie2) + let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) + sum( <- interm0_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } +in + +let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let interm2_trie0 = sum( <- mi_idx2_trie0) + if (x0 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x0) in + sum( <- mi_idx2_trie1) + if (x1 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x1) in + sum( <- mi_idx2_trie2) + let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) + sum( <- interm1_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in +let kt1_trie0 = sum( <- range(kt1.size)) @st(kt1.size) { kt1.id(kt1_offsets(i)) -> 1 } in +let interm3_trie0 = sum( <- t1_trie0) + if (x0 ∈ kt1_trie0) then + let kt1_trie1 = kt1_trie0(x0) in + sum( <- t1_trie1) + if (x1 ∈ interm2_trie0) then + let interm2_trie1 = interm2_trie0(x1) in + sum( <- t1_trie2) + let t1_off = t1_offsets(t1_i) + sum( <- interm2_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in +let kt2_trie0 = sum( <- range(kt2.size)) @st(kt2.size) { kt2.id(kt2_offsets(i)) -> 1 } in +let interm4_trie0 = sum( <- t2_trie0) + if (x0 ∈ kt2_trie0) then + let kt2_trie1 = kt2_trie0(x0) in + sum( <- t2_trie1) + if (x1 ∈ interm3_trie0) then + let interm3_trie1 = interm3_trie0(x1) in + sum( <- t2_trie2) + let t2_off = t2_offsets(t2_i) + sum( <- interm3_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in +let cn1_trie0 = sum( <- range(cn1.size)) @st(cn1.size) { cn1.id(cn1_offsets(i)) -> @range { i -> 1 } } in +let interm5_trie0 = sum( <- mc1_trie0) + if (x0 ∈ cn1_trie0) then + let cn1_trie1 = cn1_trie0(x0) in + sum( <- mc1_trie1) + if (x1 ∈ interm4_trie0) then + let interm4_trie1 = interm4_trie0(x1) in + sum( <- mc1_trie2) + let mc1_off = mc1_offsets(mc1_i) + sum( <- cn1_trie1) + let cn1_off = cn1_offsets(cn1_i) + sum( <- interm4_trie1) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } +in + +let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in +let cn2_trie0 = sum( <- range(cn2.size)) @st(cn2.size) { cn2.id(cn2_offsets(i)) -> @range { i -> 1 } } in +sum( <- mc2_trie0) + if (x0 ∈ cn2_trie0) then + let cn2_trie1 = cn2_trie0(x0) in + sum( <- mc2_trie1) + if (x1 ∈ interm5_trie0) then + let interm5_trie1 = interm5_trie0(x1) in + let mn_cn2 = sum( <- cn2_trie1) let cn2_off = cn2_offsets(cn2_i) in promote[min_sum]() in + let mn_interm5 = sum( <- interm5_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/3a.sdql b/progs/sorting/job/gj_hybrid/3a.sdql index 507e6138..05565c0e 100644 --- a/progs/sorting/job/gj_hybrid/3a.sdql +++ b/progs/sorting/job/gj_hybrid/3a.sdql @@ -9,19 +9,16 @@ let k_offsets = ext(`SortedIndices`, k.id) timer -// TODO remove this comment -// this solution is based on the original hashmap query (correct, works) - let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) if (x0 ∈ t_trie0) then let t_trie1 = t_trie0(x0) in sum( <- mk_trie1) - let mk_off = mk_offsets(mk_i) + let mk_off = mk_offsets(mk_i) sum( <- t_trie1) - let t_off = t_offsets(t_i) in - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(4) { -> 1 } } } + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -34,3 +31,4 @@ sum( <- mi_trie0) let k_trie1 = k_trie0(x1) in let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/3a_optimised.sdql b/progs/sorting/job/gj_hybrid/3a_optimised.sdql index 0664d5b3..d60b29b9 100644 --- a/progs/sorting/job/gj_hybrid/3a_optimised.sdql +++ b/progs/sorting/job/gj_hybrid/3a_optimised.sdql @@ -9,9 +9,6 @@ let k_offsets = ext(`SortedIndices`, k.id) timer -// TODO remove this comment -// this solution is a direct translation of Amirali's C++ code (correct, works) - let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- mk_trie0) diff --git a/progs/sorting/job/gj_hybrid/3b.sdql b/progs/sorting/job/gj_hybrid/3b.sdql new file mode 100644 index 00000000..2a2d567b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/3b.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/3c.sdql b/progs/sorting/job/gj_hybrid/3c.sdql new file mode 100644 index 00000000..ef666371 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/3c.sdql @@ -0,0 +1,34 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } +in + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/4a.sdql b/progs/sorting/job/gj_hybrid/4a.sdql new file mode 100644 index 00000000..08bba345 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/4a.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/4b.sdql b/progs/sorting/job/gj_hybrid/4b.sdql new file mode 100644 index 00000000..ddb102a6 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/4b.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4b/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/4c.sdql b/progs/sorting/job/gj_hybrid/4c.sdql new file mode 100644 index 00000000..ff20f378 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/4c.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/4c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/4c/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id, mi_idx.info_type_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/4c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/4c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mi_idx_trie0) then + let t_trie1 = t_trie0(x0) in + let mi_idx_trie1 = mi_idx_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mi_idx_trie1) + if (x2 ∈ it_trie0) then + let it_trie1 = it_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_mi_idx = sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/5c.sdql b/progs/sorting/job/gj_hybrid/5c.sdql new file mode 100644 index 00000000..3d014f07 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/5c.sdql @@ -0,0 +1,32 @@ +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/5c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/5c/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/info_type.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/5c/ct.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) + +timer + +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> 1 } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +sum( <- mi_trie0) + if (x0 ∈ t_trie0) then + if (x0 ∈ mc_trie0) then + let t_trie1 = t_trie0(x0) in + let mc_trie1 = mc_trie0(x0) in + sum( <- mi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- mc_trie1) + if (x2 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x2) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6a.sdql b/progs/sorting/job/gj_hybrid/6a.sdql new file mode 100644 index 00000000..e71c530a --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6a.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6b.sdql b/progs/sorting/job/gj_hybrid/6b.sdql new file mode 100644 index 00000000..1405a829 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6b.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6c.sdql b/progs/sorting/job/gj_hybrid/6c.sdql new file mode 100644 index 00000000..2d8f042f --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6c.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6c/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6d.sdql b/progs/sorting/job/gj_hybrid/6d.sdql new file mode 100644 index 00000000..3f697b49 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6d.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6d/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6e.sdql b/progs/sorting/job/gj_hybrid/6e.sdql new file mode 100644 index 00000000..00c2aa56 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6e.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6e/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6e/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/6f.sdql b/progs/sorting/job/gj_hybrid/6f.sdql new file mode 100644 index 00000000..72a08f9c --- /dev/null +++ b/progs/sorting/job/gj_hybrid/6f.sdql @@ -0,0 +1,43 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id, mk.keyword_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/6f/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/6f/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- mk_trie0) + if (x0 ∈ t_trie0) then + let t_trie1 = t_trie0(x0) in + sum( <- mk_trie1) + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + sum( <- mk_trie2) + let mk_off = mk_offsets(mk_i) + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- k_trie1) + let k_off = k_offsets(k_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/7a.sdql b/progs/sorting/job/gj_hybrid/7a.sdql new file mode 100644 index 00000000..b8be41fb --- /dev/null +++ b/progs/sorting/job/gj_hybrid/7a.sdql @@ -0,0 +1,65 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7a/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7a/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7a/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7a/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- n_trie0) + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie2) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + if (x1 ∈ an_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/7b.sdql b/progs/sorting/job/gj_hybrid/7b.sdql new file mode 100644 index 00000000..5b9d5a41 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/7b.sdql @@ -0,0 +1,65 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7b/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7b/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7b/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7b/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- n_trie0) + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie2) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + if (x1 ∈ an_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let mn_interm1 = sum( <- interm1_trie1) promote[min_sum]() in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/7c.sdql b/progs/sorting/job/gj_hybrid/7c.sdql new file mode 100644 index 00000000..0d6c216b --- /dev/null +++ b/progs/sorting/job/gj_hybrid/7c.sdql @@ -0,0 +1,64 @@ +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let pi = load[ int}, person_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/7c/pi.csv") +let pi_offsets = ext(`SortedIndices`, pi.person_id, pi.info_type_id) +let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/7c/it.csv") +let it_offsets = ext(`SortedIndices`, it.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") +let ml_offsets = ext(`SortedIndices`, ml.linked_movie_id, ml.link_type_id) +let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/7c/lt.csv") +let lt_offsets = ext(`SortedIndices`, lt.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.movie_id, ci.person_id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/7c/an.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in +let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- n_trie0) + if (x0 ∈ pi_trie0) then + let pi_trie1 = pi_trie0(x0) in + sum( <- pi_trie1) + if (x1 ∈ it_trie0) then + let it_trie1 = it_trie0(x1) in + sum( <- n_trie1) + let n_off = n_offsets(n_i) + sum( <- pi_trie2) + let pi_off = pi_offsets(pi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } +in + +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let ml_trie0 = sum( <- range(ml.size)) @st(ml.size) { ml.linked_movie_id(ml_offsets(i)) -> @st(ml.size) { ml.link_type_id(ml_offsets(i)) -> @range { i -> 1 } } } in +let lt_trie0 = sum( <- range(lt.size)) @st(lt.size) { lt.id(lt_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- t_trie0) + if (x0 ∈ ml_trie0) then + let ml_trie1 = ml_trie0(x0) in + sum( <- ml_trie1) + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + sum( <- t_trie1) + let t_off = t_offsets(t_i) + sum( <- ml_trie2) + let ml_off = ml_offsets(ml_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> 1 } in +sum( <- ci_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + if (x1 ∈ an_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let an_trie1 = an_trie0(x1) in + let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/8a.sdql b/progs/sorting/job/gj_hybrid/8a.sdql new file mode 100644 index 00000000..858fc7b0 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/8a.sdql @@ -0,0 +1,49 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8a/n1.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + if (x0 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x0) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/8b.sdql b/progs/sorting/job/gj_hybrid/8b.sdql new file mode 100644 index 00000000..93c65f94 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/8b.sdql @@ -0,0 +1,49 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/8b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/8b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/8c.sdql b/progs/sorting/job/gj_hybrid/8c.sdql new file mode 100644 index 00000000..d806b911 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/8c.sdql @@ -0,0 +1,49 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let a1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let a1_offsets = ext(`SortedIndices`, a1.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let a1_trie0 = sum( <- range(a1.size)) @st(a1.size) { a1.person_id(a1_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + if (x0 ∈ a1_trie0) then + let a1_trie1 = a1_trie0(x0) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_a1 = sum( <- a1_trie1) let a1_off = a1_offsets(a1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/8d.sdql b/progs/sorting/job/gj_hybrid/8d.sdql new file mode 100644 index 00000000..0cc9cc3f --- /dev/null +++ b/progs/sorting/job/gj_hybrid/8d.sdql @@ -0,0 +1,49 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/8d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id) +let n1 = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/name.csv") +let n1_offsets = ext(`SortedIndices`, n1.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/8d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let an1 = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an1_offsets = ext(`SortedIndices`, an1.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in +let n1_trie0 = sum( <- range(n1.size)) @st(n1.size) { n1.id(n1_offsets(i)) -> 1 } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let an1_trie0 = sum( <- range(an1.size)) @st(an1.size) { an1.person_id(an1_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n1_trie0) then + let n1_trie1 = n1_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + if (x0 ∈ an1_trie0) then + let an1_trie1 = an1_trie0(x0) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_an1 = sum( <- an1_trie1) let an1_off = an1_offsets(an1_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/9a.sdql b/progs/sorting/job/gj_hybrid/9a.sdql new file mode 100644 index 00000000..3a1be59a --- /dev/null +++ b/progs/sorting/job/gj_hybrid/9a.sdql @@ -0,0 +1,56 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9a/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9a/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> 1 } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- ci_trie3) + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/9b.sdql b/progs/sorting/job/gj_hybrid/9b.sdql new file mode 100644 index 00000000..08d049f2 --- /dev/null +++ b/progs/sorting/job/gj_hybrid/9b.sdql @@ -0,0 +1,57 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/9b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9b/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9b/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- ci_trie3) + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/9c.sdql b/progs/sorting/job/gj_hybrid/9c.sdql new file mode 100644 index 00000000..9848790e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/9c.sdql @@ -0,0 +1,57 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9c/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9c/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9c/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- ci_trie3) + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/progs/sorting/job/gj_hybrid/9d.sdql b/progs/sorting/job/gj_hybrid/9d.sdql new file mode 100644 index 00000000..6dad321e --- /dev/null +++ b/progs/sorting/job/gj_hybrid/9d.sdql @@ -0,0 +1,57 @@ +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.company_id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/9d/ci.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id, ci.movie_id, ci.role_id, ci.person_role_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/9d/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) +let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/9d/rt.csv") +let rt_offsets = ext(`SortedIndices`, rt.id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") +let chn_offsets = ext(`SortedIndices`, chn.id) +let an = load[ int}, person_id: @vec {int -> int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_name.csv") +let an_offsets = ext(`SortedIndices`, an.person_id) + +timer + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- mc_trie0) + if (x0 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x0) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in +let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in +let rt_trie0 = sum( <- range(rt.size)) @st(rt.size) { rt.id(rt_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in +let chn_trie0 = sum( <- range(chn.size)) @st(chn.size) { chn.id(chn_offsets(i)) -> @range { i -> 1 } } in +let an_trie0 = sum( <- range(an.size)) @st(an.size) { an.person_id(an_offsets(i)) -> @range { i -> 1 } } in +sum( <- ci_trie0) + if (x0 ∈ n_trie0) then + let n_trie1 = n_trie0(x0) in + sum( <- ci_trie1) + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + sum( <- ci_trie2) + if (x2 ∈ rt_trie0) then + let rt_trie1 = rt_trie0(x2) in + if (x1 ∈ t_trie0) then + let t_trie1 = t_trie0(x1) in + sum( <- ci_trie3) + if (x4 ∈ chn_trie0) then + let chn_trie1 = chn_trie0(x4) in + if (x0 ∈ an_trie0) then + let an_trie1 = an_trie0(x0) in + let mn_n = sum( <- n_trie1) let n_off = n_offsets(n_i) in promote[min_sum]() in + let mn_t = sum( <- t_trie1) let t_off = t_offsets(t_i) in promote[min_sum]() in + let mn_chn = sum( <- chn_trie1) let chn_off = chn_offsets(chn_i) in promote[min_sum]() in + let mn_an = sum( <- an_trie1) let an_off = an_offsets(an_i) in promote[min_sum]() in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 3655c54d..83d4f03c 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -644,7 +644,6 @@ class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with } } -// manually load balanced - based on the GJ queries (so not perfect here) // note: DON'T run all cases in parallel - unless you have ~64GB of ram class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution { @@ -810,7 +809,6 @@ class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution } } -// manually load balanced - based on the GJ queries (so not perfect here) // note: DON'T run all cases in parallel - unless you have ~64GB of ram class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { @@ -976,24 +974,175 @@ class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { } } +// note: DON'T run all cases in parallel - unless you have ~64GB of ram class CppCompileTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { - object TestJOBGJHybrid extends Tag("TestJOBGJHybrid") + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBGJHybrid extends Tag("TestJOBGJHybrid") + + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBGJHybrid in { + // 1-5 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2d.sdql", "results/job/2d.result") - it should "compile and run JOB 3a" taggedAs TestJOBGJHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") - } + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4c.sdql", "results/job/4c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/5c.sdql", "results/job/5c.result") + + // 8-15 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11d.sdql", "results/job/11d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12a.sdql", "results/job/12a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12c.sdql", "results/job/12c.result") - it should "compile and run JOB GJ 13a" taggedAs TestJOBGJHybrid in { CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15d.sdql", "results/job/15d.result") + } + + it should "compile and run JOB FJ 6-7" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7c.sdql", "results/job/7c.result") + } + + it should "compile and run JOB FJ 16-17" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16d.sdql", "results/job/16d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17a.sdql", "results/job/17a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17f.sdql", "results/job/17f.result") + } + + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBGJHybrid in { + // 18-20 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBGJHybrid in { + // 21-25 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33c.sdql", "results/job/33c.result") } - it should "compile and run JOB GJ 13b" taggedAs TestJOBGJHybrid in CompileHelpers.assertOutputs( - "progs/sorting/job/gj_hybrid/13b.sdql", - "results/job/13b.result" - ) + // TODO remove this + it should "compile and run JOB GJ optimised" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") + } } object DatasetsHelpers { From c4dd4d51d124bf1bf13f12deb5625bf8102d7cfa Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Sun, 24 Nov 2024 20:30:35 +0000 Subject: [PATCH 64/80] Reorganised progs directory + tests --- build.sbt | 2 +- .../job/fj_hybrid => job/hybrid/fj}/10a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/10c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/11a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/11b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/11c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/11d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/12a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/12b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/12c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/13a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/13b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/13c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/13d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/14a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/14b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/14c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/15a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/15b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/15c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/15d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/16a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/16b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/16c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/16d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17e.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/17f.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/18a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/18b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/18c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/19a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/19b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/19c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/19d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/1a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/1b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/1c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/1d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/20a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/20b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/20c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/21a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/21b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/21c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/22a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/22b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/22c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/22d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/23a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/23b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/23c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/24a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/24b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/25a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/25b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/25c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/26a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/26b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/26c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/27a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/27b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/27c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/28a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/28b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/28c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/29a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/29b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/29c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/2a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/2b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/2d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/30a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/30b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/30c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/31a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/31b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/31c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/32b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/33a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/33b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/33c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/3a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/3b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/3c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/4a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/4b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/4c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/5c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6e.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/6f.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/7a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/7b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/7c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/8a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/8b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/8c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/8d.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/9a.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/9b.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/9c.sdql | 0 .../job/fj_hybrid => job/hybrid/fj}/9d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/10a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/10c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/11a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/11b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/11c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/11d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/12a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/12b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/12c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/13a.sdql | 0 .../hybrid/gj}/13a_optimised.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/13b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/13c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/13d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/14a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/14b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/14c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/15a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/15b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/15c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/15d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/16a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/16b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/16c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/16d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17e.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/17f.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/18a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/18b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/18c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/19a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/19b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/19c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/19d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/1a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/1b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/1c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/1d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/20a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/20b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/20c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/21a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/21b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/21c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/22a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/22b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/22c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/22d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/23a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/23b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/23c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/24a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/24b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/25a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/25b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/25c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/26a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/26b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/26c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/27a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/27b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/27c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/28a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/28b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/28c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/29a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/29b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/29c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/2a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/2b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/2d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/30a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/30b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/30c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/31a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/31b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/31c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/32b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/33a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/33b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/33c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/3a.sdql | 0 .../hybrid/gj}/3a_optimised.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/3b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/3c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/4a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/4b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/4c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/5c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6e.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/6f.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/7a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/7b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/7c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/8a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/8b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/8c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/8d.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/9a.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/9b.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/9c.sdql | 0 .../job/gj_hybrid => job/hybrid/gj}/9d.sdql | 0 .../job/fj_pure => job/sorting/fj}/10a.sdql | 0 .../job/fj_pure => job/sorting/fj}/10b.sdql | 0 .../job/fj_pure => job/sorting/fj}/10c.sdql | 0 .../job/fj_pure => job/sorting/fj}/11a.sdql | 0 .../job/fj_pure => job/sorting/fj}/11b.sdql | 0 .../job/fj_pure => job/sorting/fj}/11c.sdql | 0 .../job/fj_pure => job/sorting/fj}/11d.sdql | 0 .../job/fj_pure => job/sorting/fj}/12a.sdql | 0 .../job/fj_pure => job/sorting/fj}/12b.sdql | 0 .../job/fj_pure => job/sorting/fj}/12c.sdql | 0 .../job/fj_pure => job/sorting/fj}/13a.sdql | 0 .../job/fj_pure => job/sorting/fj}/13b.sdql | 0 .../job/fj_pure => job/sorting/fj}/13c.sdql | 0 .../job/fj_pure => job/sorting/fj}/13d.sdql | 0 .../job/fj_pure => job/sorting/fj}/14a.sdql | 0 .../job/fj_pure => job/sorting/fj}/14b.sdql | 0 .../job/fj_pure => job/sorting/fj}/14c.sdql | 0 .../job/fj_pure => job/sorting/fj}/15a.sdql | 0 .../job/fj_pure => job/sorting/fj}/15b.sdql | 0 .../job/fj_pure => job/sorting/fj}/15c.sdql | 0 .../job/fj_pure => job/sorting/fj}/15d.sdql | 0 .../job/fj_pure => job/sorting/fj}/16a.sdql | 0 .../job/fj_pure => job/sorting/fj}/16b.sdql | 0 .../job/fj_pure => job/sorting/fj}/16c.sdql | 0 .../job/fj_pure => job/sorting/fj}/16d.sdql | 0 .../job/fj_pure => job/sorting/fj}/17a.sdql | 0 .../job/fj_pure => job/sorting/fj}/17b.sdql | 0 .../job/fj_pure => job/sorting/fj}/17c.sdql | 0 .../job/fj_pure => job/sorting/fj}/17d.sdql | 0 .../job/fj_pure => job/sorting/fj}/17e.sdql | 0 .../job/fj_pure => job/sorting/fj}/17f.sdql | 0 .../job/fj_pure => job/sorting/fj}/18a.sdql | 0 .../job/fj_pure => job/sorting/fj}/18b.sdql | 0 .../job/fj_pure => job/sorting/fj}/18c.sdql | 0 .../job/fj_pure => job/sorting/fj}/19a.sdql | 0 .../job/fj_pure => job/sorting/fj}/19b.sdql | 0 .../job/fj_pure => job/sorting/fj}/19c.sdql | 0 .../job/fj_pure => job/sorting/fj}/19d.sdql | 0 .../job/fj_pure => job/sorting/fj}/1a.sdql | 0 .../job/fj_pure => job/sorting/fj}/1b.sdql | 0 .../job/fj_pure => job/sorting/fj}/1c.sdql | 0 .../job/fj_pure => job/sorting/fj}/1d.sdql | 0 .../job/fj_pure => job/sorting/fj}/20a.sdql | 0 .../job/fj_pure => job/sorting/fj}/20b.sdql | 0 .../job/fj_pure => job/sorting/fj}/20c.sdql | 0 .../job/fj_pure => job/sorting/fj}/21a.sdql | 0 .../job/fj_pure => job/sorting/fj}/21b.sdql | 0 .../job/fj_pure => job/sorting/fj}/21c.sdql | 0 .../job/fj_pure => job/sorting/fj}/22a.sdql | 0 .../job/fj_pure => job/sorting/fj}/22b.sdql | 0 .../job/fj_pure => job/sorting/fj}/22c.sdql | 0 .../job/fj_pure => job/sorting/fj}/22d.sdql | 0 .../job/fj_pure => job/sorting/fj}/23a.sdql | 0 .../job/fj_pure => job/sorting/fj}/23b.sdql | 0 .../job/fj_pure => job/sorting/fj}/23c.sdql | 0 .../job/fj_pure => job/sorting/fj}/24a.sdql | 0 .../job/fj_pure => job/sorting/fj}/24b.sdql | 0 .../job/fj_pure => job/sorting/fj}/25a.sdql | 0 .../job/fj_pure => job/sorting/fj}/25b.sdql | 0 .../job/fj_pure => job/sorting/fj}/25c.sdql | 0 .../job/fj_pure => job/sorting/fj}/26a.sdql | 0 .../job/fj_pure => job/sorting/fj}/26b.sdql | 0 .../job/fj_pure => job/sorting/fj}/26c.sdql | 0 .../job/fj_pure => job/sorting/fj}/27a.sdql | 0 .../job/fj_pure => job/sorting/fj}/27b.sdql | 0 .../job/fj_pure => job/sorting/fj}/27c.sdql | 0 .../job/fj_pure => job/sorting/fj}/28a.sdql | 0 .../job/fj_pure => job/sorting/fj}/28b.sdql | 0 .../job/fj_pure => job/sorting/fj}/28c.sdql | 0 .../job/fj_pure => job/sorting/fj}/29a.sdql | 0 .../job/fj_pure => job/sorting/fj}/29b.sdql | 0 .../job/fj_pure => job/sorting/fj}/29c.sdql | 0 .../job/fj_pure => job/sorting/fj}/2a.sdql | 0 .../job/fj_pure => job/sorting/fj}/2b.sdql | 0 .../job/fj_pure => job/sorting/fj}/2c.sdql | 0 .../job/fj_pure => job/sorting/fj}/2d.sdql | 0 .../job/fj_pure => job/sorting/fj}/30a.sdql | 0 .../job/fj_pure => job/sorting/fj}/30b.sdql | 0 .../job/fj_pure => job/sorting/fj}/30c.sdql | 0 .../job/fj_pure => job/sorting/fj}/31a.sdql | 0 .../job/fj_pure => job/sorting/fj}/31b.sdql | 0 .../job/fj_pure => job/sorting/fj}/31c.sdql | 0 .../job/fj_pure => job/sorting/fj}/32a.sdql | 0 .../job/fj_pure => job/sorting/fj}/32b.sdql | 0 .../job/fj_pure => job/sorting/fj}/33a.sdql | 0 .../job/fj_pure => job/sorting/fj}/33b.sdql | 0 .../job/fj_pure => job/sorting/fj}/33c.sdql | 0 .../job/fj_pure => job/sorting/fj}/3a.sdql | 0 .../job/fj_pure => job/sorting/fj}/3b.sdql | 0 .../job/fj_pure => job/sorting/fj}/3c.sdql | 0 .../job/fj_pure => job/sorting/fj}/4a.sdql | 0 .../job/fj_pure => job/sorting/fj}/4b.sdql | 0 .../job/fj_pure => job/sorting/fj}/4c.sdql | 0 .../job/fj_pure => job/sorting/fj}/5c.sdql | 0 .../job/fj_pure => job/sorting/fj}/6a.sdql | 0 .../job/fj_pure => job/sorting/fj}/6b.sdql | 0 .../job/fj_pure => job/sorting/fj}/6c.sdql | 0 .../job/fj_pure => job/sorting/fj}/6d.sdql | 0 .../job/fj_pure => job/sorting/fj}/6e.sdql | 0 .../job/fj_pure => job/sorting/fj}/6f.sdql | 0 .../job/fj_pure => job/sorting/fj}/7a.sdql | 0 .../job/fj_pure => job/sorting/fj}/7b.sdql | 0 .../job/fj_pure => job/sorting/fj}/7c.sdql | 0 .../job/fj_pure => job/sorting/fj}/8a.sdql | 0 .../job/fj_pure => job/sorting/fj}/8b.sdql | 0 .../job/fj_pure => job/sorting/fj}/8c.sdql | 0 .../job/fj_pure => job/sorting/fj}/8d.sdql | 0 .../job/fj_pure => job/sorting/fj}/9a.sdql | 0 .../job/fj_pure => job/sorting/fj}/9b.sdql | 0 .../job/fj_pure => job/sorting/fj}/9c.sdql | 0 .../job/fj_pure => job/sorting/fj}/9d.sdql | 0 .../scala/sdql/backend/CppCodegenTest.scala | 554 ++++++++- .../scala/sdql/backend/CppCompileTest.scala | 1002 ++++++++--------- 332 files changed, 1033 insertions(+), 525 deletions(-) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/10a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/10c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/11a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/11b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/11c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/11d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/12a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/12b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/12c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/13a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/13b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/13c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/13d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/14a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/14b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/14c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/15a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/15b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/15c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/15d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/16a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/16b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/16c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/16d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17e.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/17f.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/18a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/18b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/18c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/19a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/19b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/19c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/19d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/1a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/1b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/1c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/1d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/20a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/20b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/20c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/21a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/21b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/21c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/22a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/22b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/22c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/22d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/23a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/23b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/23c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/24a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/24b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/25a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/25b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/25c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/26a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/26b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/26c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/27a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/27b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/27c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/28a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/28b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/28c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/29a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/29b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/29c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/2a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/2b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/2d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/30a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/30b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/30c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/31a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/31b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/31c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/32b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/33a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/33b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/33c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/3a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/3b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/3c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/4a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/4b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/4c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/5c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6e.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/6f.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/7a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/7b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/7c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/8a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/8b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/8c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/8d.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/9a.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/9b.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/9c.sdql (100%) rename progs/{sorting/job/fj_hybrid => job/hybrid/fj}/9d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/10a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/10c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/11a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/11b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/11c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/11d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/12a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/12b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/12c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/13a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/13a_optimised.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/13b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/13c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/13d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/14a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/14b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/14c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/15a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/15b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/15c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/15d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/16a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/16b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/16c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/16d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17e.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/17f.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/18a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/18b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/18c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/19a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/19b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/19c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/19d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/1a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/1b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/1c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/1d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/20a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/20b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/20c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/21a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/21b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/21c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/22a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/22b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/22c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/22d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/23a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/23b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/23c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/24a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/24b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/25a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/25b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/25c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/26a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/26b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/26c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/27a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/27b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/27c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/28a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/28b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/28c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/29a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/29b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/29c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/2a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/2b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/2d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/30a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/30b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/30c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/31a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/31b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/31c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/32b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/33a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/33b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/33c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/3a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/3a_optimised.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/3b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/3c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/4a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/4b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/4c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/5c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6e.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/6f.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/7a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/7b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/7c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/8a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/8b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/8c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/8d.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/9a.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/9b.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/9c.sdql (100%) rename progs/{sorting/job/gj_hybrid => job/hybrid/gj}/9d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/10a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/10b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/10c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/11a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/11b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/11c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/11d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/12a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/12b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/12c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/13a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/13b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/13c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/13d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/14a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/14b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/14c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/15a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/15b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/15c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/15d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/16a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/16b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/16c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/16d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17e.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/17f.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/18a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/18b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/18c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/19a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/19b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/19c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/19d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/1a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/1b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/1c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/1d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/20a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/20b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/20c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/21a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/21b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/21c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/22a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/22b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/22c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/22d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/23a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/23b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/23c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/24a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/24b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/25a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/25b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/25c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/26a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/26b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/26c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/27a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/27b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/27c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/28a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/28b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/28c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/29a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/29b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/29c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/2a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/2b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/2c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/2d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/30a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/30b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/30c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/31a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/31b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/31c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/32a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/32b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/33a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/33b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/33c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/3a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/3b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/3c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/4a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/4b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/4c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/5c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6e.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/6f.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/7a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/7b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/7c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/8a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/8b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/8c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/8d.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/9a.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/9b.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/9c.sdql (100%) rename progs/{sorting/job/fj_pure => job/sorting/fj}/9d.sdql (100%) diff --git a/build.sbt b/build.sbt index 15fb6a18..5a64c8cb 100644 --- a/build.sbt +++ b/build.sbt @@ -18,8 +18,8 @@ Test / testOptions ++= Seq( Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJ"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJSorting"), - Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJHybrid"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/sorting/job/fj_hybrid/10a.sdql b/progs/job/hybrid/fj/10a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/10a.sdql rename to progs/job/hybrid/fj/10a.sdql diff --git a/progs/sorting/job/fj_hybrid/10c.sdql b/progs/job/hybrid/fj/10c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/10c.sdql rename to progs/job/hybrid/fj/10c.sdql diff --git a/progs/sorting/job/fj_hybrid/11a.sdql b/progs/job/hybrid/fj/11a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/11a.sdql rename to progs/job/hybrid/fj/11a.sdql diff --git a/progs/sorting/job/fj_hybrid/11b.sdql b/progs/job/hybrid/fj/11b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/11b.sdql rename to progs/job/hybrid/fj/11b.sdql diff --git a/progs/sorting/job/fj_hybrid/11c.sdql b/progs/job/hybrid/fj/11c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/11c.sdql rename to progs/job/hybrid/fj/11c.sdql diff --git a/progs/sorting/job/fj_hybrid/11d.sdql b/progs/job/hybrid/fj/11d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/11d.sdql rename to progs/job/hybrid/fj/11d.sdql diff --git a/progs/sorting/job/fj_hybrid/12a.sdql b/progs/job/hybrid/fj/12a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/12a.sdql rename to progs/job/hybrid/fj/12a.sdql diff --git a/progs/sorting/job/fj_hybrid/12b.sdql b/progs/job/hybrid/fj/12b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/12b.sdql rename to progs/job/hybrid/fj/12b.sdql diff --git a/progs/sorting/job/fj_hybrid/12c.sdql b/progs/job/hybrid/fj/12c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/12c.sdql rename to progs/job/hybrid/fj/12c.sdql diff --git a/progs/sorting/job/fj_hybrid/13a.sdql b/progs/job/hybrid/fj/13a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/13a.sdql rename to progs/job/hybrid/fj/13a.sdql diff --git a/progs/sorting/job/fj_hybrid/13b.sdql b/progs/job/hybrid/fj/13b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/13b.sdql rename to progs/job/hybrid/fj/13b.sdql diff --git a/progs/sorting/job/fj_hybrid/13c.sdql b/progs/job/hybrid/fj/13c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/13c.sdql rename to progs/job/hybrid/fj/13c.sdql diff --git a/progs/sorting/job/fj_hybrid/13d.sdql b/progs/job/hybrid/fj/13d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/13d.sdql rename to progs/job/hybrid/fj/13d.sdql diff --git a/progs/sorting/job/fj_hybrid/14a.sdql b/progs/job/hybrid/fj/14a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/14a.sdql rename to progs/job/hybrid/fj/14a.sdql diff --git a/progs/sorting/job/fj_hybrid/14b.sdql b/progs/job/hybrid/fj/14b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/14b.sdql rename to progs/job/hybrid/fj/14b.sdql diff --git a/progs/sorting/job/fj_hybrid/14c.sdql b/progs/job/hybrid/fj/14c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/14c.sdql rename to progs/job/hybrid/fj/14c.sdql diff --git a/progs/sorting/job/fj_hybrid/15a.sdql b/progs/job/hybrid/fj/15a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/15a.sdql rename to progs/job/hybrid/fj/15a.sdql diff --git a/progs/sorting/job/fj_hybrid/15b.sdql b/progs/job/hybrid/fj/15b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/15b.sdql rename to progs/job/hybrid/fj/15b.sdql diff --git a/progs/sorting/job/fj_hybrid/15c.sdql b/progs/job/hybrid/fj/15c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/15c.sdql rename to progs/job/hybrid/fj/15c.sdql diff --git a/progs/sorting/job/fj_hybrid/15d.sdql b/progs/job/hybrid/fj/15d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/15d.sdql rename to progs/job/hybrid/fj/15d.sdql diff --git a/progs/sorting/job/fj_hybrid/16a.sdql b/progs/job/hybrid/fj/16a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/16a.sdql rename to progs/job/hybrid/fj/16a.sdql diff --git a/progs/sorting/job/fj_hybrid/16b.sdql b/progs/job/hybrid/fj/16b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/16b.sdql rename to progs/job/hybrid/fj/16b.sdql diff --git a/progs/sorting/job/fj_hybrid/16c.sdql b/progs/job/hybrid/fj/16c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/16c.sdql rename to progs/job/hybrid/fj/16c.sdql diff --git a/progs/sorting/job/fj_hybrid/16d.sdql b/progs/job/hybrid/fj/16d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/16d.sdql rename to progs/job/hybrid/fj/16d.sdql diff --git a/progs/sorting/job/fj_hybrid/17a.sdql b/progs/job/hybrid/fj/17a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17a.sdql rename to progs/job/hybrid/fj/17a.sdql diff --git a/progs/sorting/job/fj_hybrid/17b.sdql b/progs/job/hybrid/fj/17b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17b.sdql rename to progs/job/hybrid/fj/17b.sdql diff --git a/progs/sorting/job/fj_hybrid/17c.sdql b/progs/job/hybrid/fj/17c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17c.sdql rename to progs/job/hybrid/fj/17c.sdql diff --git a/progs/sorting/job/fj_hybrid/17d.sdql b/progs/job/hybrid/fj/17d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17d.sdql rename to progs/job/hybrid/fj/17d.sdql diff --git a/progs/sorting/job/fj_hybrid/17e.sdql b/progs/job/hybrid/fj/17e.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17e.sdql rename to progs/job/hybrid/fj/17e.sdql diff --git a/progs/sorting/job/fj_hybrid/17f.sdql b/progs/job/hybrid/fj/17f.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/17f.sdql rename to progs/job/hybrid/fj/17f.sdql diff --git a/progs/sorting/job/fj_hybrid/18a.sdql b/progs/job/hybrid/fj/18a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/18a.sdql rename to progs/job/hybrid/fj/18a.sdql diff --git a/progs/sorting/job/fj_hybrid/18b.sdql b/progs/job/hybrid/fj/18b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/18b.sdql rename to progs/job/hybrid/fj/18b.sdql diff --git a/progs/sorting/job/fj_hybrid/18c.sdql b/progs/job/hybrid/fj/18c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/18c.sdql rename to progs/job/hybrid/fj/18c.sdql diff --git a/progs/sorting/job/fj_hybrid/19a.sdql b/progs/job/hybrid/fj/19a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/19a.sdql rename to progs/job/hybrid/fj/19a.sdql diff --git a/progs/sorting/job/fj_hybrid/19b.sdql b/progs/job/hybrid/fj/19b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/19b.sdql rename to progs/job/hybrid/fj/19b.sdql diff --git a/progs/sorting/job/fj_hybrid/19c.sdql b/progs/job/hybrid/fj/19c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/19c.sdql rename to progs/job/hybrid/fj/19c.sdql diff --git a/progs/sorting/job/fj_hybrid/19d.sdql b/progs/job/hybrid/fj/19d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/19d.sdql rename to progs/job/hybrid/fj/19d.sdql diff --git a/progs/sorting/job/fj_hybrid/1a.sdql b/progs/job/hybrid/fj/1a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/1a.sdql rename to progs/job/hybrid/fj/1a.sdql diff --git a/progs/sorting/job/fj_hybrid/1b.sdql b/progs/job/hybrid/fj/1b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/1b.sdql rename to progs/job/hybrid/fj/1b.sdql diff --git a/progs/sorting/job/fj_hybrid/1c.sdql b/progs/job/hybrid/fj/1c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/1c.sdql rename to progs/job/hybrid/fj/1c.sdql diff --git a/progs/sorting/job/fj_hybrid/1d.sdql b/progs/job/hybrid/fj/1d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/1d.sdql rename to progs/job/hybrid/fj/1d.sdql diff --git a/progs/sorting/job/fj_hybrid/20a.sdql b/progs/job/hybrid/fj/20a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/20a.sdql rename to progs/job/hybrid/fj/20a.sdql diff --git a/progs/sorting/job/fj_hybrid/20b.sdql b/progs/job/hybrid/fj/20b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/20b.sdql rename to progs/job/hybrid/fj/20b.sdql diff --git a/progs/sorting/job/fj_hybrid/20c.sdql b/progs/job/hybrid/fj/20c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/20c.sdql rename to progs/job/hybrid/fj/20c.sdql diff --git a/progs/sorting/job/fj_hybrid/21a.sdql b/progs/job/hybrid/fj/21a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/21a.sdql rename to progs/job/hybrid/fj/21a.sdql diff --git a/progs/sorting/job/fj_hybrid/21b.sdql b/progs/job/hybrid/fj/21b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/21b.sdql rename to progs/job/hybrid/fj/21b.sdql diff --git a/progs/sorting/job/fj_hybrid/21c.sdql b/progs/job/hybrid/fj/21c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/21c.sdql rename to progs/job/hybrid/fj/21c.sdql diff --git a/progs/sorting/job/fj_hybrid/22a.sdql b/progs/job/hybrid/fj/22a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/22a.sdql rename to progs/job/hybrid/fj/22a.sdql diff --git a/progs/sorting/job/fj_hybrid/22b.sdql b/progs/job/hybrid/fj/22b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/22b.sdql rename to progs/job/hybrid/fj/22b.sdql diff --git a/progs/sorting/job/fj_hybrid/22c.sdql b/progs/job/hybrid/fj/22c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/22c.sdql rename to progs/job/hybrid/fj/22c.sdql diff --git a/progs/sorting/job/fj_hybrid/22d.sdql b/progs/job/hybrid/fj/22d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/22d.sdql rename to progs/job/hybrid/fj/22d.sdql diff --git a/progs/sorting/job/fj_hybrid/23a.sdql b/progs/job/hybrid/fj/23a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/23a.sdql rename to progs/job/hybrid/fj/23a.sdql diff --git a/progs/sorting/job/fj_hybrid/23b.sdql b/progs/job/hybrid/fj/23b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/23b.sdql rename to progs/job/hybrid/fj/23b.sdql diff --git a/progs/sorting/job/fj_hybrid/23c.sdql b/progs/job/hybrid/fj/23c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/23c.sdql rename to progs/job/hybrid/fj/23c.sdql diff --git a/progs/sorting/job/fj_hybrid/24a.sdql b/progs/job/hybrid/fj/24a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/24a.sdql rename to progs/job/hybrid/fj/24a.sdql diff --git a/progs/sorting/job/fj_hybrid/24b.sdql b/progs/job/hybrid/fj/24b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/24b.sdql rename to progs/job/hybrid/fj/24b.sdql diff --git a/progs/sorting/job/fj_hybrid/25a.sdql b/progs/job/hybrid/fj/25a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/25a.sdql rename to progs/job/hybrid/fj/25a.sdql diff --git a/progs/sorting/job/fj_hybrid/25b.sdql b/progs/job/hybrid/fj/25b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/25b.sdql rename to progs/job/hybrid/fj/25b.sdql diff --git a/progs/sorting/job/fj_hybrid/25c.sdql b/progs/job/hybrid/fj/25c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/25c.sdql rename to progs/job/hybrid/fj/25c.sdql diff --git a/progs/sorting/job/fj_hybrid/26a.sdql b/progs/job/hybrid/fj/26a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/26a.sdql rename to progs/job/hybrid/fj/26a.sdql diff --git a/progs/sorting/job/fj_hybrid/26b.sdql b/progs/job/hybrid/fj/26b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/26b.sdql rename to progs/job/hybrid/fj/26b.sdql diff --git a/progs/sorting/job/fj_hybrid/26c.sdql b/progs/job/hybrid/fj/26c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/26c.sdql rename to progs/job/hybrid/fj/26c.sdql diff --git a/progs/sorting/job/fj_hybrid/27a.sdql b/progs/job/hybrid/fj/27a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/27a.sdql rename to progs/job/hybrid/fj/27a.sdql diff --git a/progs/sorting/job/fj_hybrid/27b.sdql b/progs/job/hybrid/fj/27b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/27b.sdql rename to progs/job/hybrid/fj/27b.sdql diff --git a/progs/sorting/job/fj_hybrid/27c.sdql b/progs/job/hybrid/fj/27c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/27c.sdql rename to progs/job/hybrid/fj/27c.sdql diff --git a/progs/sorting/job/fj_hybrid/28a.sdql b/progs/job/hybrid/fj/28a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/28a.sdql rename to progs/job/hybrid/fj/28a.sdql diff --git a/progs/sorting/job/fj_hybrid/28b.sdql b/progs/job/hybrid/fj/28b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/28b.sdql rename to progs/job/hybrid/fj/28b.sdql diff --git a/progs/sorting/job/fj_hybrid/28c.sdql b/progs/job/hybrid/fj/28c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/28c.sdql rename to progs/job/hybrid/fj/28c.sdql diff --git a/progs/sorting/job/fj_hybrid/29a.sdql b/progs/job/hybrid/fj/29a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/29a.sdql rename to progs/job/hybrid/fj/29a.sdql diff --git a/progs/sorting/job/fj_hybrid/29b.sdql b/progs/job/hybrid/fj/29b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/29b.sdql rename to progs/job/hybrid/fj/29b.sdql diff --git a/progs/sorting/job/fj_hybrid/29c.sdql b/progs/job/hybrid/fj/29c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/29c.sdql rename to progs/job/hybrid/fj/29c.sdql diff --git a/progs/sorting/job/fj_hybrid/2a.sdql b/progs/job/hybrid/fj/2a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/2a.sdql rename to progs/job/hybrid/fj/2a.sdql diff --git a/progs/sorting/job/fj_hybrid/2b.sdql b/progs/job/hybrid/fj/2b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/2b.sdql rename to progs/job/hybrid/fj/2b.sdql diff --git a/progs/sorting/job/fj_hybrid/2d.sdql b/progs/job/hybrid/fj/2d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/2d.sdql rename to progs/job/hybrid/fj/2d.sdql diff --git a/progs/sorting/job/fj_hybrid/30a.sdql b/progs/job/hybrid/fj/30a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/30a.sdql rename to progs/job/hybrid/fj/30a.sdql diff --git a/progs/sorting/job/fj_hybrid/30b.sdql b/progs/job/hybrid/fj/30b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/30b.sdql rename to progs/job/hybrid/fj/30b.sdql diff --git a/progs/sorting/job/fj_hybrid/30c.sdql b/progs/job/hybrid/fj/30c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/30c.sdql rename to progs/job/hybrid/fj/30c.sdql diff --git a/progs/sorting/job/fj_hybrid/31a.sdql b/progs/job/hybrid/fj/31a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/31a.sdql rename to progs/job/hybrid/fj/31a.sdql diff --git a/progs/sorting/job/fj_hybrid/31b.sdql b/progs/job/hybrid/fj/31b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/31b.sdql rename to progs/job/hybrid/fj/31b.sdql diff --git a/progs/sorting/job/fj_hybrid/31c.sdql b/progs/job/hybrid/fj/31c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/31c.sdql rename to progs/job/hybrid/fj/31c.sdql diff --git a/progs/sorting/job/fj_hybrid/32b.sdql b/progs/job/hybrid/fj/32b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/32b.sdql rename to progs/job/hybrid/fj/32b.sdql diff --git a/progs/sorting/job/fj_hybrid/33a.sdql b/progs/job/hybrid/fj/33a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/33a.sdql rename to progs/job/hybrid/fj/33a.sdql diff --git a/progs/sorting/job/fj_hybrid/33b.sdql b/progs/job/hybrid/fj/33b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/33b.sdql rename to progs/job/hybrid/fj/33b.sdql diff --git a/progs/sorting/job/fj_hybrid/33c.sdql b/progs/job/hybrid/fj/33c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/33c.sdql rename to progs/job/hybrid/fj/33c.sdql diff --git a/progs/sorting/job/fj_hybrid/3a.sdql b/progs/job/hybrid/fj/3a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/3a.sdql rename to progs/job/hybrid/fj/3a.sdql diff --git a/progs/sorting/job/fj_hybrid/3b.sdql b/progs/job/hybrid/fj/3b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/3b.sdql rename to progs/job/hybrid/fj/3b.sdql diff --git a/progs/sorting/job/fj_hybrid/3c.sdql b/progs/job/hybrid/fj/3c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/3c.sdql rename to progs/job/hybrid/fj/3c.sdql diff --git a/progs/sorting/job/fj_hybrid/4a.sdql b/progs/job/hybrid/fj/4a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/4a.sdql rename to progs/job/hybrid/fj/4a.sdql diff --git a/progs/sorting/job/fj_hybrid/4b.sdql b/progs/job/hybrid/fj/4b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/4b.sdql rename to progs/job/hybrid/fj/4b.sdql diff --git a/progs/sorting/job/fj_hybrid/4c.sdql b/progs/job/hybrid/fj/4c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/4c.sdql rename to progs/job/hybrid/fj/4c.sdql diff --git a/progs/sorting/job/fj_hybrid/5c.sdql b/progs/job/hybrid/fj/5c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/5c.sdql rename to progs/job/hybrid/fj/5c.sdql diff --git a/progs/sorting/job/fj_hybrid/6a.sdql b/progs/job/hybrid/fj/6a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6a.sdql rename to progs/job/hybrid/fj/6a.sdql diff --git a/progs/sorting/job/fj_hybrid/6b.sdql b/progs/job/hybrid/fj/6b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6b.sdql rename to progs/job/hybrid/fj/6b.sdql diff --git a/progs/sorting/job/fj_hybrid/6c.sdql b/progs/job/hybrid/fj/6c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6c.sdql rename to progs/job/hybrid/fj/6c.sdql diff --git a/progs/sorting/job/fj_hybrid/6d.sdql b/progs/job/hybrid/fj/6d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6d.sdql rename to progs/job/hybrid/fj/6d.sdql diff --git a/progs/sorting/job/fj_hybrid/6e.sdql b/progs/job/hybrid/fj/6e.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6e.sdql rename to progs/job/hybrid/fj/6e.sdql diff --git a/progs/sorting/job/fj_hybrid/6f.sdql b/progs/job/hybrid/fj/6f.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/6f.sdql rename to progs/job/hybrid/fj/6f.sdql diff --git a/progs/sorting/job/fj_hybrid/7a.sdql b/progs/job/hybrid/fj/7a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/7a.sdql rename to progs/job/hybrid/fj/7a.sdql diff --git a/progs/sorting/job/fj_hybrid/7b.sdql b/progs/job/hybrid/fj/7b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/7b.sdql rename to progs/job/hybrid/fj/7b.sdql diff --git a/progs/sorting/job/fj_hybrid/7c.sdql b/progs/job/hybrid/fj/7c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/7c.sdql rename to progs/job/hybrid/fj/7c.sdql diff --git a/progs/sorting/job/fj_hybrid/8a.sdql b/progs/job/hybrid/fj/8a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/8a.sdql rename to progs/job/hybrid/fj/8a.sdql diff --git a/progs/sorting/job/fj_hybrid/8b.sdql b/progs/job/hybrid/fj/8b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/8b.sdql rename to progs/job/hybrid/fj/8b.sdql diff --git a/progs/sorting/job/fj_hybrid/8c.sdql b/progs/job/hybrid/fj/8c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/8c.sdql rename to progs/job/hybrid/fj/8c.sdql diff --git a/progs/sorting/job/fj_hybrid/8d.sdql b/progs/job/hybrid/fj/8d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/8d.sdql rename to progs/job/hybrid/fj/8d.sdql diff --git a/progs/sorting/job/fj_hybrid/9a.sdql b/progs/job/hybrid/fj/9a.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/9a.sdql rename to progs/job/hybrid/fj/9a.sdql diff --git a/progs/sorting/job/fj_hybrid/9b.sdql b/progs/job/hybrid/fj/9b.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/9b.sdql rename to progs/job/hybrid/fj/9b.sdql diff --git a/progs/sorting/job/fj_hybrid/9c.sdql b/progs/job/hybrid/fj/9c.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/9c.sdql rename to progs/job/hybrid/fj/9c.sdql diff --git a/progs/sorting/job/fj_hybrid/9d.sdql b/progs/job/hybrid/fj/9d.sdql similarity index 100% rename from progs/sorting/job/fj_hybrid/9d.sdql rename to progs/job/hybrid/fj/9d.sdql diff --git a/progs/sorting/job/gj_hybrid/10a.sdql b/progs/job/hybrid/gj/10a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/10a.sdql rename to progs/job/hybrid/gj/10a.sdql diff --git a/progs/sorting/job/gj_hybrid/10c.sdql b/progs/job/hybrid/gj/10c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/10c.sdql rename to progs/job/hybrid/gj/10c.sdql diff --git a/progs/sorting/job/gj_hybrid/11a.sdql b/progs/job/hybrid/gj/11a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/11a.sdql rename to progs/job/hybrid/gj/11a.sdql diff --git a/progs/sorting/job/gj_hybrid/11b.sdql b/progs/job/hybrid/gj/11b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/11b.sdql rename to progs/job/hybrid/gj/11b.sdql diff --git a/progs/sorting/job/gj_hybrid/11c.sdql b/progs/job/hybrid/gj/11c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/11c.sdql rename to progs/job/hybrid/gj/11c.sdql diff --git a/progs/sorting/job/gj_hybrid/11d.sdql b/progs/job/hybrid/gj/11d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/11d.sdql rename to progs/job/hybrid/gj/11d.sdql diff --git a/progs/sorting/job/gj_hybrid/12a.sdql b/progs/job/hybrid/gj/12a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/12a.sdql rename to progs/job/hybrid/gj/12a.sdql diff --git a/progs/sorting/job/gj_hybrid/12b.sdql b/progs/job/hybrid/gj/12b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/12b.sdql rename to progs/job/hybrid/gj/12b.sdql diff --git a/progs/sorting/job/gj_hybrid/12c.sdql b/progs/job/hybrid/gj/12c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/12c.sdql rename to progs/job/hybrid/gj/12c.sdql diff --git a/progs/sorting/job/gj_hybrid/13a.sdql b/progs/job/hybrid/gj/13a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/13a.sdql rename to progs/job/hybrid/gj/13a.sdql diff --git a/progs/sorting/job/gj_hybrid/13a_optimised.sdql b/progs/job/hybrid/gj/13a_optimised.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/13a_optimised.sdql rename to progs/job/hybrid/gj/13a_optimised.sdql diff --git a/progs/sorting/job/gj_hybrid/13b.sdql b/progs/job/hybrid/gj/13b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/13b.sdql rename to progs/job/hybrid/gj/13b.sdql diff --git a/progs/sorting/job/gj_hybrid/13c.sdql b/progs/job/hybrid/gj/13c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/13c.sdql rename to progs/job/hybrid/gj/13c.sdql diff --git a/progs/sorting/job/gj_hybrid/13d.sdql b/progs/job/hybrid/gj/13d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/13d.sdql rename to progs/job/hybrid/gj/13d.sdql diff --git a/progs/sorting/job/gj_hybrid/14a.sdql b/progs/job/hybrid/gj/14a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/14a.sdql rename to progs/job/hybrid/gj/14a.sdql diff --git a/progs/sorting/job/gj_hybrid/14b.sdql b/progs/job/hybrid/gj/14b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/14b.sdql rename to progs/job/hybrid/gj/14b.sdql diff --git a/progs/sorting/job/gj_hybrid/14c.sdql b/progs/job/hybrid/gj/14c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/14c.sdql rename to progs/job/hybrid/gj/14c.sdql diff --git a/progs/sorting/job/gj_hybrid/15a.sdql b/progs/job/hybrid/gj/15a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/15a.sdql rename to progs/job/hybrid/gj/15a.sdql diff --git a/progs/sorting/job/gj_hybrid/15b.sdql b/progs/job/hybrid/gj/15b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/15b.sdql rename to progs/job/hybrid/gj/15b.sdql diff --git a/progs/sorting/job/gj_hybrid/15c.sdql b/progs/job/hybrid/gj/15c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/15c.sdql rename to progs/job/hybrid/gj/15c.sdql diff --git a/progs/sorting/job/gj_hybrid/15d.sdql b/progs/job/hybrid/gj/15d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/15d.sdql rename to progs/job/hybrid/gj/15d.sdql diff --git a/progs/sorting/job/gj_hybrid/16a.sdql b/progs/job/hybrid/gj/16a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/16a.sdql rename to progs/job/hybrid/gj/16a.sdql diff --git a/progs/sorting/job/gj_hybrid/16b.sdql b/progs/job/hybrid/gj/16b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/16b.sdql rename to progs/job/hybrid/gj/16b.sdql diff --git a/progs/sorting/job/gj_hybrid/16c.sdql b/progs/job/hybrid/gj/16c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/16c.sdql rename to progs/job/hybrid/gj/16c.sdql diff --git a/progs/sorting/job/gj_hybrid/16d.sdql b/progs/job/hybrid/gj/16d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/16d.sdql rename to progs/job/hybrid/gj/16d.sdql diff --git a/progs/sorting/job/gj_hybrid/17a.sdql b/progs/job/hybrid/gj/17a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17a.sdql rename to progs/job/hybrid/gj/17a.sdql diff --git a/progs/sorting/job/gj_hybrid/17b.sdql b/progs/job/hybrid/gj/17b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17b.sdql rename to progs/job/hybrid/gj/17b.sdql diff --git a/progs/sorting/job/gj_hybrid/17c.sdql b/progs/job/hybrid/gj/17c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17c.sdql rename to progs/job/hybrid/gj/17c.sdql diff --git a/progs/sorting/job/gj_hybrid/17d.sdql b/progs/job/hybrid/gj/17d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17d.sdql rename to progs/job/hybrid/gj/17d.sdql diff --git a/progs/sorting/job/gj_hybrid/17e.sdql b/progs/job/hybrid/gj/17e.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17e.sdql rename to progs/job/hybrid/gj/17e.sdql diff --git a/progs/sorting/job/gj_hybrid/17f.sdql b/progs/job/hybrid/gj/17f.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/17f.sdql rename to progs/job/hybrid/gj/17f.sdql diff --git a/progs/sorting/job/gj_hybrid/18a.sdql b/progs/job/hybrid/gj/18a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/18a.sdql rename to progs/job/hybrid/gj/18a.sdql diff --git a/progs/sorting/job/gj_hybrid/18b.sdql b/progs/job/hybrid/gj/18b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/18b.sdql rename to progs/job/hybrid/gj/18b.sdql diff --git a/progs/sorting/job/gj_hybrid/18c.sdql b/progs/job/hybrid/gj/18c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/18c.sdql rename to progs/job/hybrid/gj/18c.sdql diff --git a/progs/sorting/job/gj_hybrid/19a.sdql b/progs/job/hybrid/gj/19a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/19a.sdql rename to progs/job/hybrid/gj/19a.sdql diff --git a/progs/sorting/job/gj_hybrid/19b.sdql b/progs/job/hybrid/gj/19b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/19b.sdql rename to progs/job/hybrid/gj/19b.sdql diff --git a/progs/sorting/job/gj_hybrid/19c.sdql b/progs/job/hybrid/gj/19c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/19c.sdql rename to progs/job/hybrid/gj/19c.sdql diff --git a/progs/sorting/job/gj_hybrid/19d.sdql b/progs/job/hybrid/gj/19d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/19d.sdql rename to progs/job/hybrid/gj/19d.sdql diff --git a/progs/sorting/job/gj_hybrid/1a.sdql b/progs/job/hybrid/gj/1a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/1a.sdql rename to progs/job/hybrid/gj/1a.sdql diff --git a/progs/sorting/job/gj_hybrid/1b.sdql b/progs/job/hybrid/gj/1b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/1b.sdql rename to progs/job/hybrid/gj/1b.sdql diff --git a/progs/sorting/job/gj_hybrid/1c.sdql b/progs/job/hybrid/gj/1c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/1c.sdql rename to progs/job/hybrid/gj/1c.sdql diff --git a/progs/sorting/job/gj_hybrid/1d.sdql b/progs/job/hybrid/gj/1d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/1d.sdql rename to progs/job/hybrid/gj/1d.sdql diff --git a/progs/sorting/job/gj_hybrid/20a.sdql b/progs/job/hybrid/gj/20a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/20a.sdql rename to progs/job/hybrid/gj/20a.sdql diff --git a/progs/sorting/job/gj_hybrid/20b.sdql b/progs/job/hybrid/gj/20b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/20b.sdql rename to progs/job/hybrid/gj/20b.sdql diff --git a/progs/sorting/job/gj_hybrid/20c.sdql b/progs/job/hybrid/gj/20c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/20c.sdql rename to progs/job/hybrid/gj/20c.sdql diff --git a/progs/sorting/job/gj_hybrid/21a.sdql b/progs/job/hybrid/gj/21a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/21a.sdql rename to progs/job/hybrid/gj/21a.sdql diff --git a/progs/sorting/job/gj_hybrid/21b.sdql b/progs/job/hybrid/gj/21b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/21b.sdql rename to progs/job/hybrid/gj/21b.sdql diff --git a/progs/sorting/job/gj_hybrid/21c.sdql b/progs/job/hybrid/gj/21c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/21c.sdql rename to progs/job/hybrid/gj/21c.sdql diff --git a/progs/sorting/job/gj_hybrid/22a.sdql b/progs/job/hybrid/gj/22a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/22a.sdql rename to progs/job/hybrid/gj/22a.sdql diff --git a/progs/sorting/job/gj_hybrid/22b.sdql b/progs/job/hybrid/gj/22b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/22b.sdql rename to progs/job/hybrid/gj/22b.sdql diff --git a/progs/sorting/job/gj_hybrid/22c.sdql b/progs/job/hybrid/gj/22c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/22c.sdql rename to progs/job/hybrid/gj/22c.sdql diff --git a/progs/sorting/job/gj_hybrid/22d.sdql b/progs/job/hybrid/gj/22d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/22d.sdql rename to progs/job/hybrid/gj/22d.sdql diff --git a/progs/sorting/job/gj_hybrid/23a.sdql b/progs/job/hybrid/gj/23a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/23a.sdql rename to progs/job/hybrid/gj/23a.sdql diff --git a/progs/sorting/job/gj_hybrid/23b.sdql b/progs/job/hybrid/gj/23b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/23b.sdql rename to progs/job/hybrid/gj/23b.sdql diff --git a/progs/sorting/job/gj_hybrid/23c.sdql b/progs/job/hybrid/gj/23c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/23c.sdql rename to progs/job/hybrid/gj/23c.sdql diff --git a/progs/sorting/job/gj_hybrid/24a.sdql b/progs/job/hybrid/gj/24a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/24a.sdql rename to progs/job/hybrid/gj/24a.sdql diff --git a/progs/sorting/job/gj_hybrid/24b.sdql b/progs/job/hybrid/gj/24b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/24b.sdql rename to progs/job/hybrid/gj/24b.sdql diff --git a/progs/sorting/job/gj_hybrid/25a.sdql b/progs/job/hybrid/gj/25a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/25a.sdql rename to progs/job/hybrid/gj/25a.sdql diff --git a/progs/sorting/job/gj_hybrid/25b.sdql b/progs/job/hybrid/gj/25b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/25b.sdql rename to progs/job/hybrid/gj/25b.sdql diff --git a/progs/sorting/job/gj_hybrid/25c.sdql b/progs/job/hybrid/gj/25c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/25c.sdql rename to progs/job/hybrid/gj/25c.sdql diff --git a/progs/sorting/job/gj_hybrid/26a.sdql b/progs/job/hybrid/gj/26a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/26a.sdql rename to progs/job/hybrid/gj/26a.sdql diff --git a/progs/sorting/job/gj_hybrid/26b.sdql b/progs/job/hybrid/gj/26b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/26b.sdql rename to progs/job/hybrid/gj/26b.sdql diff --git a/progs/sorting/job/gj_hybrid/26c.sdql b/progs/job/hybrid/gj/26c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/26c.sdql rename to progs/job/hybrid/gj/26c.sdql diff --git a/progs/sorting/job/gj_hybrid/27a.sdql b/progs/job/hybrid/gj/27a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/27a.sdql rename to progs/job/hybrid/gj/27a.sdql diff --git a/progs/sorting/job/gj_hybrid/27b.sdql b/progs/job/hybrid/gj/27b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/27b.sdql rename to progs/job/hybrid/gj/27b.sdql diff --git a/progs/sorting/job/gj_hybrid/27c.sdql b/progs/job/hybrid/gj/27c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/27c.sdql rename to progs/job/hybrid/gj/27c.sdql diff --git a/progs/sorting/job/gj_hybrid/28a.sdql b/progs/job/hybrid/gj/28a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/28a.sdql rename to progs/job/hybrid/gj/28a.sdql diff --git a/progs/sorting/job/gj_hybrid/28b.sdql b/progs/job/hybrid/gj/28b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/28b.sdql rename to progs/job/hybrid/gj/28b.sdql diff --git a/progs/sorting/job/gj_hybrid/28c.sdql b/progs/job/hybrid/gj/28c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/28c.sdql rename to progs/job/hybrid/gj/28c.sdql diff --git a/progs/sorting/job/gj_hybrid/29a.sdql b/progs/job/hybrid/gj/29a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/29a.sdql rename to progs/job/hybrid/gj/29a.sdql diff --git a/progs/sorting/job/gj_hybrid/29b.sdql b/progs/job/hybrid/gj/29b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/29b.sdql rename to progs/job/hybrid/gj/29b.sdql diff --git a/progs/sorting/job/gj_hybrid/29c.sdql b/progs/job/hybrid/gj/29c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/29c.sdql rename to progs/job/hybrid/gj/29c.sdql diff --git a/progs/sorting/job/gj_hybrid/2a.sdql b/progs/job/hybrid/gj/2a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/2a.sdql rename to progs/job/hybrid/gj/2a.sdql diff --git a/progs/sorting/job/gj_hybrid/2b.sdql b/progs/job/hybrid/gj/2b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/2b.sdql rename to progs/job/hybrid/gj/2b.sdql diff --git a/progs/sorting/job/gj_hybrid/2d.sdql b/progs/job/hybrid/gj/2d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/2d.sdql rename to progs/job/hybrid/gj/2d.sdql diff --git a/progs/sorting/job/gj_hybrid/30a.sdql b/progs/job/hybrid/gj/30a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/30a.sdql rename to progs/job/hybrid/gj/30a.sdql diff --git a/progs/sorting/job/gj_hybrid/30b.sdql b/progs/job/hybrid/gj/30b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/30b.sdql rename to progs/job/hybrid/gj/30b.sdql diff --git a/progs/sorting/job/gj_hybrid/30c.sdql b/progs/job/hybrid/gj/30c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/30c.sdql rename to progs/job/hybrid/gj/30c.sdql diff --git a/progs/sorting/job/gj_hybrid/31a.sdql b/progs/job/hybrid/gj/31a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/31a.sdql rename to progs/job/hybrid/gj/31a.sdql diff --git a/progs/sorting/job/gj_hybrid/31b.sdql b/progs/job/hybrid/gj/31b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/31b.sdql rename to progs/job/hybrid/gj/31b.sdql diff --git a/progs/sorting/job/gj_hybrid/31c.sdql b/progs/job/hybrid/gj/31c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/31c.sdql rename to progs/job/hybrid/gj/31c.sdql diff --git a/progs/sorting/job/gj_hybrid/32b.sdql b/progs/job/hybrid/gj/32b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/32b.sdql rename to progs/job/hybrid/gj/32b.sdql diff --git a/progs/sorting/job/gj_hybrid/33a.sdql b/progs/job/hybrid/gj/33a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/33a.sdql rename to progs/job/hybrid/gj/33a.sdql diff --git a/progs/sorting/job/gj_hybrid/33b.sdql b/progs/job/hybrid/gj/33b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/33b.sdql rename to progs/job/hybrid/gj/33b.sdql diff --git a/progs/sorting/job/gj_hybrid/33c.sdql b/progs/job/hybrid/gj/33c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/33c.sdql rename to progs/job/hybrid/gj/33c.sdql diff --git a/progs/sorting/job/gj_hybrid/3a.sdql b/progs/job/hybrid/gj/3a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/3a.sdql rename to progs/job/hybrid/gj/3a.sdql diff --git a/progs/sorting/job/gj_hybrid/3a_optimised.sdql b/progs/job/hybrid/gj/3a_optimised.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/3a_optimised.sdql rename to progs/job/hybrid/gj/3a_optimised.sdql diff --git a/progs/sorting/job/gj_hybrid/3b.sdql b/progs/job/hybrid/gj/3b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/3b.sdql rename to progs/job/hybrid/gj/3b.sdql diff --git a/progs/sorting/job/gj_hybrid/3c.sdql b/progs/job/hybrid/gj/3c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/3c.sdql rename to progs/job/hybrid/gj/3c.sdql diff --git a/progs/sorting/job/gj_hybrid/4a.sdql b/progs/job/hybrid/gj/4a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/4a.sdql rename to progs/job/hybrid/gj/4a.sdql diff --git a/progs/sorting/job/gj_hybrid/4b.sdql b/progs/job/hybrid/gj/4b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/4b.sdql rename to progs/job/hybrid/gj/4b.sdql diff --git a/progs/sorting/job/gj_hybrid/4c.sdql b/progs/job/hybrid/gj/4c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/4c.sdql rename to progs/job/hybrid/gj/4c.sdql diff --git a/progs/sorting/job/gj_hybrid/5c.sdql b/progs/job/hybrid/gj/5c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/5c.sdql rename to progs/job/hybrid/gj/5c.sdql diff --git a/progs/sorting/job/gj_hybrid/6a.sdql b/progs/job/hybrid/gj/6a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6a.sdql rename to progs/job/hybrid/gj/6a.sdql diff --git a/progs/sorting/job/gj_hybrid/6b.sdql b/progs/job/hybrid/gj/6b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6b.sdql rename to progs/job/hybrid/gj/6b.sdql diff --git a/progs/sorting/job/gj_hybrid/6c.sdql b/progs/job/hybrid/gj/6c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6c.sdql rename to progs/job/hybrid/gj/6c.sdql diff --git a/progs/sorting/job/gj_hybrid/6d.sdql b/progs/job/hybrid/gj/6d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6d.sdql rename to progs/job/hybrid/gj/6d.sdql diff --git a/progs/sorting/job/gj_hybrid/6e.sdql b/progs/job/hybrid/gj/6e.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6e.sdql rename to progs/job/hybrid/gj/6e.sdql diff --git a/progs/sorting/job/gj_hybrid/6f.sdql b/progs/job/hybrid/gj/6f.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/6f.sdql rename to progs/job/hybrid/gj/6f.sdql diff --git a/progs/sorting/job/gj_hybrid/7a.sdql b/progs/job/hybrid/gj/7a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/7a.sdql rename to progs/job/hybrid/gj/7a.sdql diff --git a/progs/sorting/job/gj_hybrid/7b.sdql b/progs/job/hybrid/gj/7b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/7b.sdql rename to progs/job/hybrid/gj/7b.sdql diff --git a/progs/sorting/job/gj_hybrid/7c.sdql b/progs/job/hybrid/gj/7c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/7c.sdql rename to progs/job/hybrid/gj/7c.sdql diff --git a/progs/sorting/job/gj_hybrid/8a.sdql b/progs/job/hybrid/gj/8a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/8a.sdql rename to progs/job/hybrid/gj/8a.sdql diff --git a/progs/sorting/job/gj_hybrid/8b.sdql b/progs/job/hybrid/gj/8b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/8b.sdql rename to progs/job/hybrid/gj/8b.sdql diff --git a/progs/sorting/job/gj_hybrid/8c.sdql b/progs/job/hybrid/gj/8c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/8c.sdql rename to progs/job/hybrid/gj/8c.sdql diff --git a/progs/sorting/job/gj_hybrid/8d.sdql b/progs/job/hybrid/gj/8d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/8d.sdql rename to progs/job/hybrid/gj/8d.sdql diff --git a/progs/sorting/job/gj_hybrid/9a.sdql b/progs/job/hybrid/gj/9a.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/9a.sdql rename to progs/job/hybrid/gj/9a.sdql diff --git a/progs/sorting/job/gj_hybrid/9b.sdql b/progs/job/hybrid/gj/9b.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/9b.sdql rename to progs/job/hybrid/gj/9b.sdql diff --git a/progs/sorting/job/gj_hybrid/9c.sdql b/progs/job/hybrid/gj/9c.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/9c.sdql rename to progs/job/hybrid/gj/9c.sdql diff --git a/progs/sorting/job/gj_hybrid/9d.sdql b/progs/job/hybrid/gj/9d.sdql similarity index 100% rename from progs/sorting/job/gj_hybrid/9d.sdql rename to progs/job/hybrid/gj/9d.sdql diff --git a/progs/sorting/job/fj_pure/10a.sdql b/progs/job/sorting/fj/10a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/10a.sdql rename to progs/job/sorting/fj/10a.sdql diff --git a/progs/sorting/job/fj_pure/10b.sdql b/progs/job/sorting/fj/10b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/10b.sdql rename to progs/job/sorting/fj/10b.sdql diff --git a/progs/sorting/job/fj_pure/10c.sdql b/progs/job/sorting/fj/10c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/10c.sdql rename to progs/job/sorting/fj/10c.sdql diff --git a/progs/sorting/job/fj_pure/11a.sdql b/progs/job/sorting/fj/11a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/11a.sdql rename to progs/job/sorting/fj/11a.sdql diff --git a/progs/sorting/job/fj_pure/11b.sdql b/progs/job/sorting/fj/11b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/11b.sdql rename to progs/job/sorting/fj/11b.sdql diff --git a/progs/sorting/job/fj_pure/11c.sdql b/progs/job/sorting/fj/11c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/11c.sdql rename to progs/job/sorting/fj/11c.sdql diff --git a/progs/sorting/job/fj_pure/11d.sdql b/progs/job/sorting/fj/11d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/11d.sdql rename to progs/job/sorting/fj/11d.sdql diff --git a/progs/sorting/job/fj_pure/12a.sdql b/progs/job/sorting/fj/12a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/12a.sdql rename to progs/job/sorting/fj/12a.sdql diff --git a/progs/sorting/job/fj_pure/12b.sdql b/progs/job/sorting/fj/12b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/12b.sdql rename to progs/job/sorting/fj/12b.sdql diff --git a/progs/sorting/job/fj_pure/12c.sdql b/progs/job/sorting/fj/12c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/12c.sdql rename to progs/job/sorting/fj/12c.sdql diff --git a/progs/sorting/job/fj_pure/13a.sdql b/progs/job/sorting/fj/13a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/13a.sdql rename to progs/job/sorting/fj/13a.sdql diff --git a/progs/sorting/job/fj_pure/13b.sdql b/progs/job/sorting/fj/13b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/13b.sdql rename to progs/job/sorting/fj/13b.sdql diff --git a/progs/sorting/job/fj_pure/13c.sdql b/progs/job/sorting/fj/13c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/13c.sdql rename to progs/job/sorting/fj/13c.sdql diff --git a/progs/sorting/job/fj_pure/13d.sdql b/progs/job/sorting/fj/13d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/13d.sdql rename to progs/job/sorting/fj/13d.sdql diff --git a/progs/sorting/job/fj_pure/14a.sdql b/progs/job/sorting/fj/14a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/14a.sdql rename to progs/job/sorting/fj/14a.sdql diff --git a/progs/sorting/job/fj_pure/14b.sdql b/progs/job/sorting/fj/14b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/14b.sdql rename to progs/job/sorting/fj/14b.sdql diff --git a/progs/sorting/job/fj_pure/14c.sdql b/progs/job/sorting/fj/14c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/14c.sdql rename to progs/job/sorting/fj/14c.sdql diff --git a/progs/sorting/job/fj_pure/15a.sdql b/progs/job/sorting/fj/15a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/15a.sdql rename to progs/job/sorting/fj/15a.sdql diff --git a/progs/sorting/job/fj_pure/15b.sdql b/progs/job/sorting/fj/15b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/15b.sdql rename to progs/job/sorting/fj/15b.sdql diff --git a/progs/sorting/job/fj_pure/15c.sdql b/progs/job/sorting/fj/15c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/15c.sdql rename to progs/job/sorting/fj/15c.sdql diff --git a/progs/sorting/job/fj_pure/15d.sdql b/progs/job/sorting/fj/15d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/15d.sdql rename to progs/job/sorting/fj/15d.sdql diff --git a/progs/sorting/job/fj_pure/16a.sdql b/progs/job/sorting/fj/16a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/16a.sdql rename to progs/job/sorting/fj/16a.sdql diff --git a/progs/sorting/job/fj_pure/16b.sdql b/progs/job/sorting/fj/16b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/16b.sdql rename to progs/job/sorting/fj/16b.sdql diff --git a/progs/sorting/job/fj_pure/16c.sdql b/progs/job/sorting/fj/16c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/16c.sdql rename to progs/job/sorting/fj/16c.sdql diff --git a/progs/sorting/job/fj_pure/16d.sdql b/progs/job/sorting/fj/16d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/16d.sdql rename to progs/job/sorting/fj/16d.sdql diff --git a/progs/sorting/job/fj_pure/17a.sdql b/progs/job/sorting/fj/17a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17a.sdql rename to progs/job/sorting/fj/17a.sdql diff --git a/progs/sorting/job/fj_pure/17b.sdql b/progs/job/sorting/fj/17b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17b.sdql rename to progs/job/sorting/fj/17b.sdql diff --git a/progs/sorting/job/fj_pure/17c.sdql b/progs/job/sorting/fj/17c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17c.sdql rename to progs/job/sorting/fj/17c.sdql diff --git a/progs/sorting/job/fj_pure/17d.sdql b/progs/job/sorting/fj/17d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17d.sdql rename to progs/job/sorting/fj/17d.sdql diff --git a/progs/sorting/job/fj_pure/17e.sdql b/progs/job/sorting/fj/17e.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17e.sdql rename to progs/job/sorting/fj/17e.sdql diff --git a/progs/sorting/job/fj_pure/17f.sdql b/progs/job/sorting/fj/17f.sdql similarity index 100% rename from progs/sorting/job/fj_pure/17f.sdql rename to progs/job/sorting/fj/17f.sdql diff --git a/progs/sorting/job/fj_pure/18a.sdql b/progs/job/sorting/fj/18a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/18a.sdql rename to progs/job/sorting/fj/18a.sdql diff --git a/progs/sorting/job/fj_pure/18b.sdql b/progs/job/sorting/fj/18b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/18b.sdql rename to progs/job/sorting/fj/18b.sdql diff --git a/progs/sorting/job/fj_pure/18c.sdql b/progs/job/sorting/fj/18c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/18c.sdql rename to progs/job/sorting/fj/18c.sdql diff --git a/progs/sorting/job/fj_pure/19a.sdql b/progs/job/sorting/fj/19a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/19a.sdql rename to progs/job/sorting/fj/19a.sdql diff --git a/progs/sorting/job/fj_pure/19b.sdql b/progs/job/sorting/fj/19b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/19b.sdql rename to progs/job/sorting/fj/19b.sdql diff --git a/progs/sorting/job/fj_pure/19c.sdql b/progs/job/sorting/fj/19c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/19c.sdql rename to progs/job/sorting/fj/19c.sdql diff --git a/progs/sorting/job/fj_pure/19d.sdql b/progs/job/sorting/fj/19d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/19d.sdql rename to progs/job/sorting/fj/19d.sdql diff --git a/progs/sorting/job/fj_pure/1a.sdql b/progs/job/sorting/fj/1a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/1a.sdql rename to progs/job/sorting/fj/1a.sdql diff --git a/progs/sorting/job/fj_pure/1b.sdql b/progs/job/sorting/fj/1b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/1b.sdql rename to progs/job/sorting/fj/1b.sdql diff --git a/progs/sorting/job/fj_pure/1c.sdql b/progs/job/sorting/fj/1c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/1c.sdql rename to progs/job/sorting/fj/1c.sdql diff --git a/progs/sorting/job/fj_pure/1d.sdql b/progs/job/sorting/fj/1d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/1d.sdql rename to progs/job/sorting/fj/1d.sdql diff --git a/progs/sorting/job/fj_pure/20a.sdql b/progs/job/sorting/fj/20a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/20a.sdql rename to progs/job/sorting/fj/20a.sdql diff --git a/progs/sorting/job/fj_pure/20b.sdql b/progs/job/sorting/fj/20b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/20b.sdql rename to progs/job/sorting/fj/20b.sdql diff --git a/progs/sorting/job/fj_pure/20c.sdql b/progs/job/sorting/fj/20c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/20c.sdql rename to progs/job/sorting/fj/20c.sdql diff --git a/progs/sorting/job/fj_pure/21a.sdql b/progs/job/sorting/fj/21a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/21a.sdql rename to progs/job/sorting/fj/21a.sdql diff --git a/progs/sorting/job/fj_pure/21b.sdql b/progs/job/sorting/fj/21b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/21b.sdql rename to progs/job/sorting/fj/21b.sdql diff --git a/progs/sorting/job/fj_pure/21c.sdql b/progs/job/sorting/fj/21c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/21c.sdql rename to progs/job/sorting/fj/21c.sdql diff --git a/progs/sorting/job/fj_pure/22a.sdql b/progs/job/sorting/fj/22a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/22a.sdql rename to progs/job/sorting/fj/22a.sdql diff --git a/progs/sorting/job/fj_pure/22b.sdql b/progs/job/sorting/fj/22b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/22b.sdql rename to progs/job/sorting/fj/22b.sdql diff --git a/progs/sorting/job/fj_pure/22c.sdql b/progs/job/sorting/fj/22c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/22c.sdql rename to progs/job/sorting/fj/22c.sdql diff --git a/progs/sorting/job/fj_pure/22d.sdql b/progs/job/sorting/fj/22d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/22d.sdql rename to progs/job/sorting/fj/22d.sdql diff --git a/progs/sorting/job/fj_pure/23a.sdql b/progs/job/sorting/fj/23a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/23a.sdql rename to progs/job/sorting/fj/23a.sdql diff --git a/progs/sorting/job/fj_pure/23b.sdql b/progs/job/sorting/fj/23b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/23b.sdql rename to progs/job/sorting/fj/23b.sdql diff --git a/progs/sorting/job/fj_pure/23c.sdql b/progs/job/sorting/fj/23c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/23c.sdql rename to progs/job/sorting/fj/23c.sdql diff --git a/progs/sorting/job/fj_pure/24a.sdql b/progs/job/sorting/fj/24a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/24a.sdql rename to progs/job/sorting/fj/24a.sdql diff --git a/progs/sorting/job/fj_pure/24b.sdql b/progs/job/sorting/fj/24b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/24b.sdql rename to progs/job/sorting/fj/24b.sdql diff --git a/progs/sorting/job/fj_pure/25a.sdql b/progs/job/sorting/fj/25a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/25a.sdql rename to progs/job/sorting/fj/25a.sdql diff --git a/progs/sorting/job/fj_pure/25b.sdql b/progs/job/sorting/fj/25b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/25b.sdql rename to progs/job/sorting/fj/25b.sdql diff --git a/progs/sorting/job/fj_pure/25c.sdql b/progs/job/sorting/fj/25c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/25c.sdql rename to progs/job/sorting/fj/25c.sdql diff --git a/progs/sorting/job/fj_pure/26a.sdql b/progs/job/sorting/fj/26a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/26a.sdql rename to progs/job/sorting/fj/26a.sdql diff --git a/progs/sorting/job/fj_pure/26b.sdql b/progs/job/sorting/fj/26b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/26b.sdql rename to progs/job/sorting/fj/26b.sdql diff --git a/progs/sorting/job/fj_pure/26c.sdql b/progs/job/sorting/fj/26c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/26c.sdql rename to progs/job/sorting/fj/26c.sdql diff --git a/progs/sorting/job/fj_pure/27a.sdql b/progs/job/sorting/fj/27a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/27a.sdql rename to progs/job/sorting/fj/27a.sdql diff --git a/progs/sorting/job/fj_pure/27b.sdql b/progs/job/sorting/fj/27b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/27b.sdql rename to progs/job/sorting/fj/27b.sdql diff --git a/progs/sorting/job/fj_pure/27c.sdql b/progs/job/sorting/fj/27c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/27c.sdql rename to progs/job/sorting/fj/27c.sdql diff --git a/progs/sorting/job/fj_pure/28a.sdql b/progs/job/sorting/fj/28a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/28a.sdql rename to progs/job/sorting/fj/28a.sdql diff --git a/progs/sorting/job/fj_pure/28b.sdql b/progs/job/sorting/fj/28b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/28b.sdql rename to progs/job/sorting/fj/28b.sdql diff --git a/progs/sorting/job/fj_pure/28c.sdql b/progs/job/sorting/fj/28c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/28c.sdql rename to progs/job/sorting/fj/28c.sdql diff --git a/progs/sorting/job/fj_pure/29a.sdql b/progs/job/sorting/fj/29a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/29a.sdql rename to progs/job/sorting/fj/29a.sdql diff --git a/progs/sorting/job/fj_pure/29b.sdql b/progs/job/sorting/fj/29b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/29b.sdql rename to progs/job/sorting/fj/29b.sdql diff --git a/progs/sorting/job/fj_pure/29c.sdql b/progs/job/sorting/fj/29c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/29c.sdql rename to progs/job/sorting/fj/29c.sdql diff --git a/progs/sorting/job/fj_pure/2a.sdql b/progs/job/sorting/fj/2a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/2a.sdql rename to progs/job/sorting/fj/2a.sdql diff --git a/progs/sorting/job/fj_pure/2b.sdql b/progs/job/sorting/fj/2b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/2b.sdql rename to progs/job/sorting/fj/2b.sdql diff --git a/progs/sorting/job/fj_pure/2c.sdql b/progs/job/sorting/fj/2c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/2c.sdql rename to progs/job/sorting/fj/2c.sdql diff --git a/progs/sorting/job/fj_pure/2d.sdql b/progs/job/sorting/fj/2d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/2d.sdql rename to progs/job/sorting/fj/2d.sdql diff --git a/progs/sorting/job/fj_pure/30a.sdql b/progs/job/sorting/fj/30a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/30a.sdql rename to progs/job/sorting/fj/30a.sdql diff --git a/progs/sorting/job/fj_pure/30b.sdql b/progs/job/sorting/fj/30b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/30b.sdql rename to progs/job/sorting/fj/30b.sdql diff --git a/progs/sorting/job/fj_pure/30c.sdql b/progs/job/sorting/fj/30c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/30c.sdql rename to progs/job/sorting/fj/30c.sdql diff --git a/progs/sorting/job/fj_pure/31a.sdql b/progs/job/sorting/fj/31a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/31a.sdql rename to progs/job/sorting/fj/31a.sdql diff --git a/progs/sorting/job/fj_pure/31b.sdql b/progs/job/sorting/fj/31b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/31b.sdql rename to progs/job/sorting/fj/31b.sdql diff --git a/progs/sorting/job/fj_pure/31c.sdql b/progs/job/sorting/fj/31c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/31c.sdql rename to progs/job/sorting/fj/31c.sdql diff --git a/progs/sorting/job/fj_pure/32a.sdql b/progs/job/sorting/fj/32a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/32a.sdql rename to progs/job/sorting/fj/32a.sdql diff --git a/progs/sorting/job/fj_pure/32b.sdql b/progs/job/sorting/fj/32b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/32b.sdql rename to progs/job/sorting/fj/32b.sdql diff --git a/progs/sorting/job/fj_pure/33a.sdql b/progs/job/sorting/fj/33a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/33a.sdql rename to progs/job/sorting/fj/33a.sdql diff --git a/progs/sorting/job/fj_pure/33b.sdql b/progs/job/sorting/fj/33b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/33b.sdql rename to progs/job/sorting/fj/33b.sdql diff --git a/progs/sorting/job/fj_pure/33c.sdql b/progs/job/sorting/fj/33c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/33c.sdql rename to progs/job/sorting/fj/33c.sdql diff --git a/progs/sorting/job/fj_pure/3a.sdql b/progs/job/sorting/fj/3a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/3a.sdql rename to progs/job/sorting/fj/3a.sdql diff --git a/progs/sorting/job/fj_pure/3b.sdql b/progs/job/sorting/fj/3b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/3b.sdql rename to progs/job/sorting/fj/3b.sdql diff --git a/progs/sorting/job/fj_pure/3c.sdql b/progs/job/sorting/fj/3c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/3c.sdql rename to progs/job/sorting/fj/3c.sdql diff --git a/progs/sorting/job/fj_pure/4a.sdql b/progs/job/sorting/fj/4a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/4a.sdql rename to progs/job/sorting/fj/4a.sdql diff --git a/progs/sorting/job/fj_pure/4b.sdql b/progs/job/sorting/fj/4b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/4b.sdql rename to progs/job/sorting/fj/4b.sdql diff --git a/progs/sorting/job/fj_pure/4c.sdql b/progs/job/sorting/fj/4c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/4c.sdql rename to progs/job/sorting/fj/4c.sdql diff --git a/progs/sorting/job/fj_pure/5c.sdql b/progs/job/sorting/fj/5c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/5c.sdql rename to progs/job/sorting/fj/5c.sdql diff --git a/progs/sorting/job/fj_pure/6a.sdql b/progs/job/sorting/fj/6a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6a.sdql rename to progs/job/sorting/fj/6a.sdql diff --git a/progs/sorting/job/fj_pure/6b.sdql b/progs/job/sorting/fj/6b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6b.sdql rename to progs/job/sorting/fj/6b.sdql diff --git a/progs/sorting/job/fj_pure/6c.sdql b/progs/job/sorting/fj/6c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6c.sdql rename to progs/job/sorting/fj/6c.sdql diff --git a/progs/sorting/job/fj_pure/6d.sdql b/progs/job/sorting/fj/6d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6d.sdql rename to progs/job/sorting/fj/6d.sdql diff --git a/progs/sorting/job/fj_pure/6e.sdql b/progs/job/sorting/fj/6e.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6e.sdql rename to progs/job/sorting/fj/6e.sdql diff --git a/progs/sorting/job/fj_pure/6f.sdql b/progs/job/sorting/fj/6f.sdql similarity index 100% rename from progs/sorting/job/fj_pure/6f.sdql rename to progs/job/sorting/fj/6f.sdql diff --git a/progs/sorting/job/fj_pure/7a.sdql b/progs/job/sorting/fj/7a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/7a.sdql rename to progs/job/sorting/fj/7a.sdql diff --git a/progs/sorting/job/fj_pure/7b.sdql b/progs/job/sorting/fj/7b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/7b.sdql rename to progs/job/sorting/fj/7b.sdql diff --git a/progs/sorting/job/fj_pure/7c.sdql b/progs/job/sorting/fj/7c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/7c.sdql rename to progs/job/sorting/fj/7c.sdql diff --git a/progs/sorting/job/fj_pure/8a.sdql b/progs/job/sorting/fj/8a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/8a.sdql rename to progs/job/sorting/fj/8a.sdql diff --git a/progs/sorting/job/fj_pure/8b.sdql b/progs/job/sorting/fj/8b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/8b.sdql rename to progs/job/sorting/fj/8b.sdql diff --git a/progs/sorting/job/fj_pure/8c.sdql b/progs/job/sorting/fj/8c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/8c.sdql rename to progs/job/sorting/fj/8c.sdql diff --git a/progs/sorting/job/fj_pure/8d.sdql b/progs/job/sorting/fj/8d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/8d.sdql rename to progs/job/sorting/fj/8d.sdql diff --git a/progs/sorting/job/fj_pure/9a.sdql b/progs/job/sorting/fj/9a.sdql similarity index 100% rename from progs/sorting/job/fj_pure/9a.sdql rename to progs/job/sorting/fj/9a.sdql diff --git a/progs/sorting/job/fj_pure/9b.sdql b/progs/job/sorting/fj/9b.sdql similarity index 100% rename from progs/sorting/job/fj_pure/9b.sdql rename to progs/job/sorting/fj/9b.sdql diff --git a/progs/sorting/job/fj_pure/9c.sdql b/progs/job/sorting/fj/9c.sdql similarity index 100% rename from progs/sorting/job/fj_pure/9c.sdql rename to progs/job/sorting/fj/9c.sdql diff --git a/progs/sorting/job/fj_pure/9d.sdql b/progs/job/sorting/fj/9d.sdql similarity index 100% rename from progs/sorting/job/fj_pure/9d.sdql rename to progs/job/sorting/fj/9d.sdql diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index a4df7c6b..7874380d 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -526,6 +526,537 @@ class CppCodegenTestJOBFJ extends AnyFlatSpec with ParallelTestExecution { } } +class CppCodegenTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution { + it should "codegen JOB FJ 1" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/1a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/1b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/1c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/1d.sdql") + } + it should "codegen JOB FJ 2" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/2a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/2b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/2d.sdql") + } + it should "codegen JOB FJ 3" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/3a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/3b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/3c.sdql") + } + it should "codegen JOB FJ 4" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/4a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/4b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/4c.sdql") + } + it should "codegen JOB FJ 5" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/5c.sdql") + } + it should "codegen JOB FJ 6" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/6a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/6b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/6c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/6d.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/6e.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/6f.sdql") + } + it should "codegen JOB FJ 7" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/7a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/7b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/7c.sdql") + } + it should "codegen JOB FJ 8" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/8a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/8b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/8c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/8d.sdql") + } + it should "codegen JOB FJ 9" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/9a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/9b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/9c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/9d.sdql") + } + it should "codegen JOB FJ 10" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/10a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/10c.sdql") + } + it should "codegen JOB FJ 11" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/11a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/11b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/11c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/11d.sdql") + } + it should "codegen JOB FJ 12" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/12a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/12b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/12c.sdql") + } + it should "codegen JOB FJ 13" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/13a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/13b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/13c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/13d.sdql") + } + it should "codegen JOB FJ 14" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/14a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/14b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/14c.sdql") + } + it should "codegen JOB FJ 15" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/15a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/15b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/15c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/15d.sdql") + } + it should "codegen JOB FJ 16" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/16a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/16b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/16c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/16d.sdql") + } + it should "codegen JOB FJ 17" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/17a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/17b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/17c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/17d.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/17e.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/17f.sdql") + } + it should "codegen JOB FJ 18" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/18a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/18b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/18c.sdql") + } + it should "codegen JOB FJ 19" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/19a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/19b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/19c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/19d.sdql") + } + it should "codegen JOB FJ 20" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/20a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/20b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/20c.sdql") + } + it should "codegen JOB FJ 21" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/21a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/21b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/21c.sdql") + } + it should "codegen JOB FJ 22" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/22a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/22b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/22c.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/22d.sdql") + } + it should "codegen JOB FJ 23" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/23a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/23b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/23c.sdql") + } + it should "codegen JOB FJ 24" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/24a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/24b.sdql") + } + it should "codegen JOB FJ 25" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/25a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/25b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/25c.sdql") + } + it should "codegen JOB FJ 26" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/26a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/26b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/26c.sdql") + } + it should "codegen JOB FJ 27" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/27a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/27b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/27c.sdql") + } + it should "codegen JOB FJ 28" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/28a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/28b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/28c.sdql") + } + it should "codegen JOB FJ 29" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/29a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/29b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/29c.sdql") + } + it should "codegen JOB FJ 30" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/30a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/30b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/30c.sdql") + } + it should "codegen JOB FJ 31" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/31a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/31b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/31c.sdql") + } + it should "codegen JOB FJ 32" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/32b.sdql") + } + it should "codegen JOB FJ 33" in { + CodegenHelpers.compilesFile("progs/job/sorting/fj/33a.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/33b.sdql") + CodegenHelpers.compilesFile("progs/job/sorting/fj/33c.sdql") + } +} + +class CppCodegenTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { + it should "codegen JOB GJ 1" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/1a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/1b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/1c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/1d.sdql") + } + it should "codegen JOB GJ 2" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/2a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/2b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/2d.sdql") + } + it should "codegen JOB GJ 3" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/3a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/3b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/3c.sdql") + } + it should "codegen JOB GJ 4" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/4a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/4b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/4c.sdql") + } + it should "codegen JOB GJ 5" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/5c.sdql") + } + it should "codegen JOB GJ 6" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6d.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6e.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/6f.sdql") + } + it should "codegen JOB GJ 7" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/7a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/7b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/7c.sdql") + } + it should "codegen JOB GJ 8" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/8a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/8b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/8c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/8d.sdql") + } + it should "codegen JOB GJ 9" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/9a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/9b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/9c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/9d.sdql") + } + it should "codegen JOB GJ 10" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/10a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/10c.sdql") + } + it should "codegen JOB GJ 11" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/11a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/11b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/11c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/11d.sdql") + } + it should "codegen JOB GJ 12" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/12a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/12b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/12c.sdql") + } + it should "codegen JOB GJ 13" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/13a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/13b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/13c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/13d.sdql") + } + it should "codegen JOB GJ 14" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/14a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/14b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/14c.sdql") + } + it should "codegen JOB GJ 15" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/15a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/15b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/15c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/15d.sdql") + } + it should "codegen JOB GJ 16" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/16a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/16b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/16c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/16d.sdql") + } + it should "codegen JOB GJ 17" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17d.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17e.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/17f.sdql") + } + it should "codegen JOB GJ 18" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/18a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/18b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/18c.sdql") + } + it should "codegen JOB GJ 19" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/19a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/19b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/19c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/19d.sdql") + } + it should "codegen JOB GJ 20" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/20a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/20b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/20c.sdql") + } + it should "codegen JOB GJ 21" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/21a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/21b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/21c.sdql") + } + it should "codegen JOB GJ 22" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/22a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/22b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/22c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/22d.sdql") + } + it should "codegen JOB GJ 23" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/23a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/23b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/23c.sdql") + } + it should "codegen JOB GJ 24" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/24a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/24b.sdql") + } + it should "codegen JOB GJ 25" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/25a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/25b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/25c.sdql") + } + it should "codegen JOB GJ 26" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/26a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/26b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/26c.sdql") + } + it should "codegen JOB GJ 27" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/27a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/27b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/27c.sdql") + } + it should "codegen JOB GJ 28" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/28a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/28b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/28c.sdql") + } + it should "codegen JOB GJ 29" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/29a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/29b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/29c.sdql") + } + it should "codegen JOB GJ 30" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/30a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/30b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/30c.sdql") + } + it should "codegen JOB GJ 31" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/31a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/31b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/31c.sdql") + } + it should "codegen JOB GJ 32" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/32b.sdql") + } + it should "codegen JOB GJ 33" in { + CodegenHelpers.compilesFile("progs/job/hybrid/gj/33a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/33b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/gj/33c.sdql") + } +} + +class CppCodegenTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { + it should "codegen JOB FJ 1" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/1a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/1b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/1c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/1d.sdql") + } + it should "codegen JOB FJ 2" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/2a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/2b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/2d.sdql") + } + it should "codegen JOB FJ 3" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/3a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/3b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/3c.sdql") + } + it should "codegen JOB FJ 4" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/4a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/4b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/4c.sdql") + } + it should "codegen JOB FJ 5" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/5c.sdql") + } + it should "codegen JOB FJ 6" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6d.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6e.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/6f.sdql") + } + it should "codegen JOB FJ 7" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/7a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/7b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/7c.sdql") + } + it should "codegen JOB FJ 8" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/8a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/8b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/8c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/8d.sdql") + } + it should "codegen JOB FJ 9" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/9a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/9b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/9c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/9d.sdql") + } + it should "codegen JOB FJ 10" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/10a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/10c.sdql") + } + it should "codegen JOB FJ 11" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/11a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/11b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/11c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/11d.sdql") + } + it should "codegen JOB FJ 12" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/12a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/12b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/12c.sdql") + } + it should "codegen JOB FJ 13" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/13a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/13b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/13c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/13d.sdql") + } + it should "codegen JOB FJ 14" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/14a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/14b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/14c.sdql") + } + it should "codegen JOB FJ 15" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/15a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/15b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/15c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/15d.sdql") + } + it should "codegen JOB FJ 16" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/16a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/16b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/16c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/16d.sdql") + } + it should "codegen JOB FJ 17" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17d.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17e.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/17f.sdql") + } + it should "codegen JOB FJ 18" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/18a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/18b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/18c.sdql") + } + it should "codegen JOB FJ 19" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/19a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/19b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/19c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/19d.sdql") + } + it should "codegen JOB FJ 20" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/20a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/20b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/20c.sdql") + } + it should "codegen JOB FJ 21" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/21a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/21b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/21c.sdql") + } + it should "codegen JOB FJ 22" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/22a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/22b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/22c.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/22d.sdql") + } + it should "codegen JOB FJ 23" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/23a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/23b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/23c.sdql") + } + it should "codegen JOB FJ 24" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/24a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/24b.sdql") + } + it should "codegen JOB FJ 25" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/25a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/25b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/25c.sdql") + } + it should "codegen JOB FJ 26" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/26a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/26b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/26c.sdql") + } + it should "codegen JOB FJ 27" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/27a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/27b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/27c.sdql") + } + it should "codegen JOB FJ 28" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/28a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/28b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/28c.sdql") + } + it should "codegen JOB FJ 29" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/29a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/29b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/29c.sdql") + } + it should "codegen JOB FJ 30" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/30a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/30b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/30c.sdql") + } + it should "codegen JOB FJ 31" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/31a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/31b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/31c.sdql") + } + it should "codegen JOB FJ 32" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/32b.sdql") + } + it should "codegen JOB FJ 33" in { + CodegenHelpers.compilesFile("progs/job/hybrid/fj/33a.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/33b.sdql") + CodegenHelpers.compilesFile("progs/job/hybrid/fj/33c.sdql") + } +} + class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { it should "codegen LSQB GJ" in { CodegenHelpers.compilesFile("progs/lsqb/gj/q1.sdql") @@ -541,29 +1072,6 @@ class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { } } -class CppCodegenTestJOBSorting extends AnyFlatSpec with ParallelTestExecution { - it should "codegen JOB FJ 3a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/3a.sdql") - it should "codegen JOB FJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/3a.sdql") - it should "codegen JOB GJ 3a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/3a.sdql") - it should "codegen JOB GJ 3a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( - "progs/sorting/job/gj_hybrid/3a_optimised.sdql" - ) - it should "codegen JOB FJ 8a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/8a.sdql") - it should "codegen JOB FJ 8a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/8a.sdql") - it should "codegen JOB FJ 10a pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/10a.sdql") - it should "codegen JOB FJ 12b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/12b.sdql") - it should "codegen JOB FJ 12b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/12b.sdql") - it should "codegen JOB GJ 13a hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13a.sdql") - it should "codegen JOB GJ 13a hybrid sorting (optimised)" in CodegenHelpers.compilesFile( - "progs/sorting/job/gj_hybrid/13a_optimised.sdql" - ) - it should "codegen JOB GJ 13b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/gj_hybrid/13b.sdql") - it should "codegen JOB FJ 17b pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17b.sdql") - it should "codegen JOB FJ 17b hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/17b.sdql") - it should "codegen JOB FJ 17f pure sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_pure/17f.sdql") - it should "codegen JOB FJ 17f hybrid sorting" in CodegenHelpers.compilesFile("progs/sorting/job/fj_hybrid/17f.sdql") -} - object CodegenHelpers { def compilesFile(path: String): Unit = compilesExp(SourceCode.fromFile(path).exp) def compilesExp(e: Exp): Unit = assert(fromCpp(CppCodegen(Rewriter.rewrite(e))) == 0) diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 83d4f03c..f50bf665 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -472,6 +472,507 @@ class CppCompileTestJOBFJ extends AnyFlatSpec with ParallelTestExecution { } } +// note: DON'T run all cases in parallel - unless you have ~64GB of ram +class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBFJSorting extends Tag("TestJOBFJSorting") + + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJSorting in { + // 1-5 + CompileHelpers.assertOutputs("progs/job/sorting/fj/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/2d.sdql", "results/job/2d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/4c.sdql", "results/job/4c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/5c.sdql", "results/job/5c.result") + + // 8-15 + CompileHelpers.assertOutputs("progs/job/sorting/fj/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/11d.sdql", "results/job/11d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/12a.sdql", "results/job/12a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/12c.sdql", "results/job/12c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/job/sorting/fj/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/15d.sdql", "results/job/15d.result") + } + + it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJSorting in { + CompileHelpers.assertOutputs("progs/job/sorting/fj/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/7c.sdql", "results/job/7c.result") + } + + it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJSorting in { + CompileHelpers.assertOutputs("progs/job/sorting/fj/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/16d.sdql", "results/job/16d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/17a.sdql", "results/job/17a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/17f.sdql", "results/job/17f.result") + } + + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJSorting in { + // 18-20 + CompileHelpers.assertOutputs("progs/job/sorting/fj/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/job/sorting/fj/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJSorting in { + // 21-25 + CompileHelpers.assertOutputs("progs/job/sorting/fj/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/job/sorting/fj/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/job/sorting/fj/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/job/sorting/fj/33c.sdql", "results/job/33c.result") + } +} + +// note: DON'T run all cases in parallel - unless you have ~64GB of ram +class CppCompileTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBGJHybrid extends Tag("TestJOBGJHybrid") + + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBGJHybrid in { + // 1-5 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/2d.sdql", "results/job/2d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/4c.sdql", "results/job/4c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/5c.sdql", "results/job/5c.result") + + // 8-15 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/11d.sdql", "results/job/11d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/12a.sdql", "results/job/12a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/12c.sdql", "results/job/12c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/job/hybrid/gj/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/15d.sdql", "results/job/15d.result") + } + + it should "compile and run JOB FJ 6-7" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/7c.sdql", "results/job/7c.result") + } + + it should "compile and run JOB FJ 16-17" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/job/hybrid/gj/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/16d.sdql", "results/job/16d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17a.sdql", "results/job/17a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/17f.sdql", "results/job/17f.result") + } + + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBGJHybrid in { + // 18-20 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBGJHybrid in { + // 21-25 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/job/hybrid/gj/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/gj/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/33c.sdql", "results/job/33c.result") + } + + // TODO remove this after we "optimise" all the queries + it should "compile and run JOB GJ optimised" taggedAs TestJOBGJHybrid in { + CompileHelpers.assertOutputs("progs/job/hybrid/gj/3a_optimised.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/gj/13a_optimised.sdql", "results/job/13a.result") + } +} + +// note: DON'T run all cases in parallel - unless you have ~64GB of ram +class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBFJHybrid extends Tag("TestJOBFJHybrid") + + it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJHybrid in { + // 1-5 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/1a.sdql", "results/job/1a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/1b.sdql", "results/job/1b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/1c.sdql", "results/job/1c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/1d.sdql", "results/job/1d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/2a.sdql", "results/job/2a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/2b.sdql", "results/job/2b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/2d.sdql", "results/job/2d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/3b.sdql", "results/job/3b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/3c.sdql", "results/job/3c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/4a.sdql", "results/job/4a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/4b.sdql", "results/job/4b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/4c.sdql", "results/job/4c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/5c.sdql", "results/job/5c.result") + + // 8-15 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/8a.sdql", "results/job/8a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/8b.sdql", "results/job/8b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/8c.sdql", "results/job/8c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/8d.sdql", "results/job/8d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/9a.sdql", "results/job/9a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/9b.sdql", "results/job/9b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/9c.sdql", "results/job/9c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/9d.sdql", "results/job/9d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/10a.sdql", "results/job/10a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/10c.sdql", "results/job/10c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/11a.sdql", "results/job/11a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/11b.sdql", "results/job/11b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/11c.sdql", "results/job/11c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/11d.sdql", "results/job/11d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/12a.sdql", "results/job/12a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/12b.sdql", "results/job/12b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/12c.sdql", "results/job/12c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/13a.sdql", "results/job/13a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/13b.sdql", "results/job/13b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/13c.sdql", "results/job/13c.result") + // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " + CompileHelpers.assertOutputs("progs/job/hybrid/fj/13d.sdql", "results/job/13d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/14a.sdql", "results/job/14a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/14b.sdql", "results/job/14b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/14c.sdql", "results/job/14c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/15b.sdql", "results/job/15b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/15c.sdql", "results/job/15c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/15d.sdql", "results/job/15d.result") + } + + it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJHybrid in { + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6a.sdql", "results/job/6a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6b.sdql", "results/job/6b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6c.sdql", "results/job/6c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6d.sdql", "results/job/6d.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6e.sdql", "results/job/6e.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/6f.sdql", "results/job/6f.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/7a.sdql", "results/job/7a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/7b.sdql", "results/job/7b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/7c.sdql", "results/job/7c.result") + } + + it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJHybrid in { + CompileHelpers.assertOutputs("progs/job/hybrid/fj/16a.sdql", "results/job/16a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/16b.sdql", "results/job/16b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/16c.sdql", "results/job/16c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/16d.sdql", "results/job/16d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17a.sdql", "results/job/17a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17b.sdql", "results/job/17b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17c.sdql", "results/job/17c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17d.sdql", "results/job/17d.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17e.sdql", "results/job/17e.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/17f.sdql", "results/job/17f.result") + } + + it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJHybrid in { + // 18-20 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/18a.sdql", "results/job/18a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/18b.sdql", "results/job/18b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/18c.sdql", "results/job/18c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/19a.sdql", "results/job/19a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/19b.sdql", "results/job/19b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/19c.sdql", "results/job/19c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/19d.sdql", "results/job/19d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/20a.sdql", "results/job/20a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/20b.sdql", "results/job/20b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/20c.sdql", "results/job/20c.result") + + // 26 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/26a.sdql", "results/job/26a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/26b.sdql", "results/job/26b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/26c.sdql", "results/job/26c.result") + } + + it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJHybrid in { + // 21-25 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/21a.sdql", "results/job/21a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/21b.sdql", "results/job/21b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/21c.sdql", "results/job/21c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/22a.sdql", "results/job/22a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/22b.sdql", "results/job/22b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/22c.sdql", "results/job/22c.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/22d.sdql", "results/job/22d.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/23a.sdql", "results/job/23a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/23b.sdql", "results/job/23b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/23c.sdql", "results/job/23c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/24a.sdql", "results/job/24a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/24b.sdql", "results/job/24b.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/25a.sdql", "results/job/25a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/25b.sdql", "results/job/25b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/25c.sdql", "results/job/25c.result") + + // 27-33 + CompileHelpers.assertOutputs("progs/job/hybrid/fj/27a.sdql", "results/job/27a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/27b.sdql", "results/job/27b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/27c.sdql", "results/job/27c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/28a.sdql", "results/job/28a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/28b.sdql", "results/job/28b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/28c.sdql", "results/job/28c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/29a.sdql", "results/job/29a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/29b.sdql", "results/job/29b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/29c.sdql", "results/job/29c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/30a.sdql", "results/job/30a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/30b.sdql", "results/job/30b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/30c.sdql", "results/job/30c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/31a.sdql", "results/job/31a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/31b.sdql", "results/job/31b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/31c.sdql", "results/job/31c.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/32b.sdql", "results/job/32b.result") + + CompileHelpers.assertOutputs("progs/job/hybrid/fj/33a.sdql", "results/job/33a.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/33b.sdql", "results/job/33b.result") + CompileHelpers.assertOutputs("progs/job/hybrid/fj/33c.sdql", "results/job/33c.result") + } +} + class CppCompileTestLSQBGJ0_1 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { // note: these tests expect LSQB files with scaling factor 0.1 to be present in your datasets folder @@ -644,507 +1145,6 @@ class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with } } -// note: DON'T run all cases in parallel - unless you have ~64GB of ram -class CppCompileTestJOBFJSorting extends AnyFlatSpec with ParallelTestExecution { - - // note: these tests expect JOB files to be present in your datasets folder - private object TestJOBFJSorting extends Tag("TestJOBFJSorting") - - it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJSorting in { - // 1-5 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1a.sdql", "results/job/1a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1b.sdql", "results/job/1b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1c.sdql", "results/job/1c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/1d.sdql", "results/job/1d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2a.sdql", "results/job/2a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2b.sdql", "results/job/2b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/2d.sdql", "results/job/2d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3b.sdql", "results/job/3b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/3c.sdql", "results/job/3c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4a.sdql", "results/job/4a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4b.sdql", "results/job/4b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/4c.sdql", "results/job/4c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/5c.sdql", "results/job/5c.result") - - // 8-15 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8a.sdql", "results/job/8a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8b.sdql", "results/job/8b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8c.sdql", "results/job/8c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/8d.sdql", "results/job/8d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9a.sdql", "results/job/9a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9b.sdql", "results/job/9b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9c.sdql", "results/job/9c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/9d.sdql", "results/job/9d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/10a.sdql", "results/job/10a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/10c.sdql", "results/job/10c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11a.sdql", "results/job/11a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11b.sdql", "results/job/11b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11c.sdql", "results/job/11c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/11d.sdql", "results/job/11d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12a.sdql", "results/job/12a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12b.sdql", "results/job/12b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/12c.sdql", "results/job/12c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13a.sdql", "results/job/13a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13b.sdql", "results/job/13b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13c.sdql", "results/job/13c.result") - // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/13d.sdql", "results/job/13d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14a.sdql", "results/job/14a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14b.sdql", "results/job/14b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/14c.sdql", "results/job/14c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15a.sdql", "results/job/15a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15b.sdql", "results/job/15b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15c.sdql", "results/job/15c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/15d.sdql", "results/job/15d.result") - } - - it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6a.sdql", "results/job/6a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6b.sdql", "results/job/6b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6c.sdql", "results/job/6c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6d.sdql", "results/job/6d.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6e.sdql", "results/job/6e.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/6f.sdql", "results/job/6f.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7a.sdql", "results/job/7a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7b.sdql", "results/job/7b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/7c.sdql", "results/job/7c.result") - } - - it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJSorting in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16a.sdql", "results/job/16a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16b.sdql", "results/job/16b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16c.sdql", "results/job/16c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/16d.sdql", "results/job/16d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17a.sdql", "results/job/17a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17b.sdql", "results/job/17b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17c.sdql", "results/job/17c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17d.sdql", "results/job/17d.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17e.sdql", "results/job/17e.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/17f.sdql", "results/job/17f.result") - } - - it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJSorting in { - // 18-20 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18a.sdql", "results/job/18a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18b.sdql", "results/job/18b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/18c.sdql", "results/job/18c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19a.sdql", "results/job/19a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19b.sdql", "results/job/19b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19c.sdql", "results/job/19c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/19d.sdql", "results/job/19d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20a.sdql", "results/job/20a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20b.sdql", "results/job/20b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/20c.sdql", "results/job/20c.result") - - // 26 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26a.sdql", "results/job/26a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26b.sdql", "results/job/26b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/26c.sdql", "results/job/26c.result") - } - - it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJSorting in { - // 21-25 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21a.sdql", "results/job/21a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21b.sdql", "results/job/21b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/21c.sdql", "results/job/21c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22a.sdql", "results/job/22a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22b.sdql", "results/job/22b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22c.sdql", "results/job/22c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/22d.sdql", "results/job/22d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23a.sdql", "results/job/23a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23b.sdql", "results/job/23b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/23c.sdql", "results/job/23c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/24a.sdql", "results/job/24a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/24b.sdql", "results/job/24b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25a.sdql", "results/job/25a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25b.sdql", "results/job/25b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/25c.sdql", "results/job/25c.result") - - // 27-33 - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27a.sdql", "results/job/27a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27b.sdql", "results/job/27b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/27c.sdql", "results/job/27c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28a.sdql", "results/job/28a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28b.sdql", "results/job/28b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/28c.sdql", "results/job/28c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29a.sdql", "results/job/29a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29b.sdql", "results/job/29b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/29c.sdql", "results/job/29c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30a.sdql", "results/job/30a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30b.sdql", "results/job/30b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/30c.sdql", "results/job/30c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31a.sdql", "results/job/31a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31b.sdql", "results/job/31b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/31c.sdql", "results/job/31c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/32b.sdql", "results/job/32b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33a.sdql", "results/job/33a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33b.sdql", "results/job/33b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_pure/33c.sdql", "results/job/33c.result") - } -} - -// note: DON'T run all cases in parallel - unless you have ~64GB of ram -class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { - - // note: these tests expect JOB files to be present in your datasets folder - private object TestJOBFJHybrid extends Tag("TestJOBFJHybrid") - - it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBFJHybrid in { - // 1-5 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1a.sdql", "results/job/1a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1b.sdql", "results/job/1b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1c.sdql", "results/job/1c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/1d.sdql", "results/job/1d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2a.sdql", "results/job/2a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2b.sdql", "results/job/2b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/2d.sdql", "results/job/2d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3b.sdql", "results/job/3b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/3c.sdql", "results/job/3c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4a.sdql", "results/job/4a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4b.sdql", "results/job/4b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/4c.sdql", "results/job/4c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/5c.sdql", "results/job/5c.result") - - // 8-15 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8a.sdql", "results/job/8a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8b.sdql", "results/job/8b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8c.sdql", "results/job/8c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/8d.sdql", "results/job/8d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9a.sdql", "results/job/9a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9b.sdql", "results/job/9b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9c.sdql", "results/job/9c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/9d.sdql", "results/job/9d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/10a.sdql", "results/job/10a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/10c.sdql", "results/job/10c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11a.sdql", "results/job/11a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11b.sdql", "results/job/11b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11c.sdql", "results/job/11c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/11d.sdql", "results/job/11d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12a.sdql", "results/job/12a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12b.sdql", "results/job/12b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/12c.sdql", "results/job/12c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13a.sdql", "results/job/13a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13b.sdql", "results/job/13b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13c.sdql", "results/job/13c.result") - // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/13d.sdql", "results/job/13d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14a.sdql", "results/job/14a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14b.sdql", "results/job/14b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/14c.sdql", "results/job/14c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15a.sdql", "results/job/15a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15b.sdql", "results/job/15b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15c.sdql", "results/job/15c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/15d.sdql", "results/job/15d.result") - } - - it should "compile and run JOB FJ 6-7" taggedAs TestJOBFJHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6a.sdql", "results/job/6a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6b.sdql", "results/job/6b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6c.sdql", "results/job/6c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6d.sdql", "results/job/6d.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6e.sdql", "results/job/6e.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/6f.sdql", "results/job/6f.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7a.sdql", "results/job/7a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7b.sdql", "results/job/7b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/7c.sdql", "results/job/7c.result") - } - - it should "compile and run JOB FJ 16-17" taggedAs TestJOBFJHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16a.sdql", "results/job/16a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16b.sdql", "results/job/16b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16c.sdql", "results/job/16c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/16d.sdql", "results/job/16d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17a.sdql", "results/job/17a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17b.sdql", "results/job/17b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17c.sdql", "results/job/17c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17d.sdql", "results/job/17d.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17e.sdql", "results/job/17e.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/17f.sdql", "results/job/17f.result") - } - - it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBFJHybrid in { - // 18-20 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18a.sdql", "results/job/18a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18b.sdql", "results/job/18b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/18c.sdql", "results/job/18c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19a.sdql", "results/job/19a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19b.sdql", "results/job/19b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19c.sdql", "results/job/19c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/19d.sdql", "results/job/19d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20a.sdql", "results/job/20a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20b.sdql", "results/job/20b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/20c.sdql", "results/job/20c.result") - - // 26 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26a.sdql", "results/job/26a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26b.sdql", "results/job/26b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/26c.sdql", "results/job/26c.result") - } - - it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBFJHybrid in { - // 21-25 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21a.sdql", "results/job/21a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21b.sdql", "results/job/21b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/21c.sdql", "results/job/21c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22a.sdql", "results/job/22a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22b.sdql", "results/job/22b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22c.sdql", "results/job/22c.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/22d.sdql", "results/job/22d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23a.sdql", "results/job/23a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23b.sdql", "results/job/23b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/23c.sdql", "results/job/23c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/24a.sdql", "results/job/24a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/24b.sdql", "results/job/24b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25a.sdql", "results/job/25a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25b.sdql", "results/job/25b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/25c.sdql", "results/job/25c.result") - - // 27-33 - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27a.sdql", "results/job/27a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27b.sdql", "results/job/27b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/27c.sdql", "results/job/27c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28a.sdql", "results/job/28a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28b.sdql", "results/job/28b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/28c.sdql", "results/job/28c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29a.sdql", "results/job/29a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29b.sdql", "results/job/29b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/29c.sdql", "results/job/29c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30a.sdql", "results/job/30a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30b.sdql", "results/job/30b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/30c.sdql", "results/job/30c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31a.sdql", "results/job/31a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31b.sdql", "results/job/31b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/31c.sdql", "results/job/31c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/32b.sdql", "results/job/32b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33a.sdql", "results/job/33a.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33b.sdql", "results/job/33b.result") - CompileHelpers.assertOutputs("progs/sorting/job/fj_hybrid/33c.sdql", "results/job/33c.result") - } -} - -// note: DON'T run all cases in parallel - unless you have ~64GB of ram -class CppCompileTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { - - // note: these tests expect JOB files to be present in your datasets folder - private object TestJOBGJHybrid extends Tag("TestJOBGJHybrid") - - it should "compile and run JOB FJ 1-5 & 8-15" taggedAs TestJOBGJHybrid in { - // 1-5 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1a.sdql", "results/job/1a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1b.sdql", "results/job/1b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1c.sdql", "results/job/1c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/1d.sdql", "results/job/1d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2a.sdql", "results/job/2a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2b.sdql", "results/job/2b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/2d.sdql", "results/job/2d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3b.sdql", "results/job/3b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3c.sdql", "results/job/3c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4a.sdql", "results/job/4a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4b.sdql", "results/job/4b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/4c.sdql", "results/job/4c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/5c.sdql", "results/job/5c.result") - - // 8-15 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8a.sdql", "results/job/8a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8b.sdql", "results/job/8b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8c.sdql", "results/job/8c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/8d.sdql", "results/job/8d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9a.sdql", "results/job/9a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9b.sdql", "results/job/9b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9c.sdql", "results/job/9c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/9d.sdql", "results/job/9d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/10a.sdql", "results/job/10a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/10c.sdql", "results/job/10c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11a.sdql", "results/job/11a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11b.sdql", "results/job/11b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11c.sdql", "results/job/11c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/11d.sdql", "results/job/11d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12a.sdql", "results/job/12a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12b.sdql", "results/job/12b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/12c.sdql", "results/job/12c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a.sdql", "results/job/13a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13b.sdql", "results/job/13b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13c.sdql", "results/job/13c.result") - // note: producing_company min here is '68 Productions instead "O" Films due to ordering of ' < " - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13d.sdql", "results/job/13d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14a.sdql", "results/job/14a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14b.sdql", "results/job/14b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/14c.sdql", "results/job/14c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15a.sdql", "results/job/15a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15b.sdql", "results/job/15b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15c.sdql", "results/job/15c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/15d.sdql", "results/job/15d.result") - } - - it should "compile and run JOB FJ 6-7" taggedAs TestJOBGJHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6a.sdql", "results/job/6a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6b.sdql", "results/job/6b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6c.sdql", "results/job/6c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6d.sdql", "results/job/6d.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6e.sdql", "results/job/6e.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/6f.sdql", "results/job/6f.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7a.sdql", "results/job/7a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7b.sdql", "results/job/7b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/7c.sdql", "results/job/7c.result") - } - - it should "compile and run JOB FJ 16-17" taggedAs TestJOBGJHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16a.sdql", "results/job/16a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16b.sdql", "results/job/16b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16c.sdql", "results/job/16c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/16d.sdql", "results/job/16d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17a.sdql", "results/job/17a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17b.sdql", "results/job/17b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17c.sdql", "results/job/17c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17d.sdql", "results/job/17d.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17e.sdql", "results/job/17e.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/17f.sdql", "results/job/17f.result") - } - - it should "compile and run JOB FJ 18-20 & 26" taggedAs TestJOBGJHybrid in { - // 18-20 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18a.sdql", "results/job/18a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18b.sdql", "results/job/18b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/18c.sdql", "results/job/18c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19a.sdql", "results/job/19a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19b.sdql", "results/job/19b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19c.sdql", "results/job/19c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/19d.sdql", "results/job/19d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20a.sdql", "results/job/20a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20b.sdql", "results/job/20b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/20c.sdql", "results/job/20c.result") - - // 26 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26a.sdql", "results/job/26a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26b.sdql", "results/job/26b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/26c.sdql", "results/job/26c.result") - } - - it should "compile and run JOB FJ 21-25 & 27-33" taggedAs TestJOBGJHybrid in { - // 21-25 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21a.sdql", "results/job/21a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21b.sdql", "results/job/21b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/21c.sdql", "results/job/21c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22a.sdql", "results/job/22a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22b.sdql", "results/job/22b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22c.sdql", "results/job/22c.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/22d.sdql", "results/job/22d.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23a.sdql", "results/job/23a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23b.sdql", "results/job/23b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/23c.sdql", "results/job/23c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/24a.sdql", "results/job/24a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/24b.sdql", "results/job/24b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25a.sdql", "results/job/25a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25b.sdql", "results/job/25b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/25c.sdql", "results/job/25c.result") - - // 27-33 - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27a.sdql", "results/job/27a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27b.sdql", "results/job/27b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/27c.sdql", "results/job/27c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28a.sdql", "results/job/28a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28b.sdql", "results/job/28b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/28c.sdql", "results/job/28c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29a.sdql", "results/job/29a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29b.sdql", "results/job/29b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/29c.sdql", "results/job/29c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30a.sdql", "results/job/30a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30b.sdql", "results/job/30b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/30c.sdql", "results/job/30c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31a.sdql", "results/job/31a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31b.sdql", "results/job/31b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/31c.sdql", "results/job/31c.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/32b.sdql", "results/job/32b.result") - - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33a.sdql", "results/job/33a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33b.sdql", "results/job/33b.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/33c.sdql", "results/job/33c.result") - } - - // TODO remove this - it should "compile and run JOB GJ optimised" taggedAs TestJOBGJHybrid in { - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/3a_optimised.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/sorting/job/gj_hybrid/13a_optimised.sdql", "results/job/13a.result") - } -} - object DatasetsHelpers { sealed trait Dataset From 312feb40f575d201042aa5b9a9ac3493ec3be7a4 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:42:44 +0000 Subject: [PATCH 65/80] Small edit to GJ optimised queries --- progs/job/hybrid/gj/13a_optimised.sdql | 9 ++++----- progs/job/hybrid/gj/3a_optimised.sdql | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/progs/job/hybrid/gj/13a_optimised.sdql b/progs/job/hybrid/gj/13a_optimised.sdql index a2f33d21..d6f4a9a8 100644 --- a/progs/job/hybrid/gj/13a_optimised.sdql +++ b/progs/job/hybrid/gj/13a_optimised.sdql @@ -20,7 +20,7 @@ let cn_offsets = ext(`SortedIndices`, cn.id) timer let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in -let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in +let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in let interm0_trie0 = sum( <- t_trie0) if (x0 ∈ miidx_trie0) then let miidx_trie1 = miidx_trie0(x0) in @@ -28,17 +28,16 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- miidx_trie1) let miidx_off = miidx_offsets(miidx_i) - @phmap(t.size) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in -let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in -let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> { mc.company_type_id(mc_offsets(i)) -> { mc.company_id(mc_offsets(i)) -> 1 } } } in +let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in - sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in diff --git a/progs/job/hybrid/gj/3a_optimised.sdql b/progs/job/hybrid/gj/3a_optimised.sdql index d60b29b9..417fc846 100644 --- a/progs/job/hybrid/gj/3a_optimised.sdql +++ b/progs/job/hybrid/gj/3a_optimised.sdql @@ -32,3 +32,4 @@ sum( <- mi_trie0) let k_trie1 = k_trie0(x1) in let mn_interm0 = in promote[min_sum]() + From fb88faaaf32fd048fcc547e9bf86b0dcd7d76ee6 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:02:15 +0000 Subject: [PATCH 66/80] GJ hybrid optimised --- progs/job/hybrid/gj/10a.sdql | 2 +- progs/job/hybrid/gj/10c.sdql | 2 +- progs/job/hybrid/gj/11a.sdql | 7 +- progs/job/hybrid/gj/11b.sdql | 7 +- progs/job/hybrid/gj/11c.sdql | 7 +- progs/job/hybrid/gj/11d.sdql | 7 +- progs/job/hybrid/gj/12a.sdql | 7 +- progs/job/hybrid/gj/12b.sdql | 7 +- progs/job/hybrid/gj/12c.sdql | 7 +- progs/job/hybrid/gj/13a.sdql | 29 +++++---- progs/job/hybrid/gj/13a_optimised.sdql | 65 ------------------- progs/job/hybrid/gj/13b.sdql | 29 +++++---- progs/job/hybrid/gj/13c.sdql | 29 +++++---- progs/job/hybrid/gj/13d.sdql | 29 +++++---- progs/job/hybrid/gj/14a.sdql | 27 ++++---- progs/job/hybrid/gj/14b.sdql | 27 ++++---- progs/job/hybrid/gj/14c.sdql | 27 ++++---- progs/job/hybrid/gj/15a.sdql | 7 +- progs/job/hybrid/gj/15b.sdql | 7 +- progs/job/hybrid/gj/15c.sdql | 7 +- progs/job/hybrid/gj/15d.sdql | 7 +- progs/job/hybrid/gj/16a.sdql | 2 +- progs/job/hybrid/gj/16b.sdql | 2 +- progs/job/hybrid/gj/16c.sdql | 2 +- progs/job/hybrid/gj/16d.sdql | 2 +- progs/job/hybrid/gj/17a.sdql | 2 +- progs/job/hybrid/gj/17b.sdql | 2 +- progs/job/hybrid/gj/17c.sdql | 2 +- progs/job/hybrid/gj/17d.sdql | 2 +- progs/job/hybrid/gj/17e.sdql | 2 +- progs/job/hybrid/gj/17f.sdql | 2 +- progs/job/hybrid/gj/18a.sdql | 8 +-- progs/job/hybrid/gj/18b.sdql | 8 +-- progs/job/hybrid/gj/18c.sdql | 8 +-- progs/job/hybrid/gj/19a.sdql | 4 +- progs/job/hybrid/gj/19b.sdql | 4 +- progs/job/hybrid/gj/19c.sdql | 4 +- progs/job/hybrid/gj/19d.sdql | 4 +- progs/job/hybrid/gj/1a.sdql | 7 +- progs/job/hybrid/gj/1b.sdql | 7 +- progs/job/hybrid/gj/1c.sdql | 7 +- progs/job/hybrid/gj/1d.sdql | 7 +- progs/job/hybrid/gj/20a.sdql | 4 +- progs/job/hybrid/gj/20b.sdql | 4 +- progs/job/hybrid/gj/20c.sdql | 4 +- progs/job/hybrid/gj/21a.sdql | 33 +++++----- progs/job/hybrid/gj/21b.sdql | 33 +++++----- progs/job/hybrid/gj/21c.sdql | 33 +++++----- progs/job/hybrid/gj/22a.sdql | 6 +- progs/job/hybrid/gj/22b.sdql | 6 +- progs/job/hybrid/gj/22c.sdql | 6 +- progs/job/hybrid/gj/22d.sdql | 6 +- progs/job/hybrid/gj/23a.sdql | 8 +-- progs/job/hybrid/gj/23b.sdql | 8 +-- progs/job/hybrid/gj/23c.sdql | 8 +-- progs/job/hybrid/gj/24a.sdql | 14 ++-- progs/job/hybrid/gj/24b.sdql | 14 ++-- progs/job/hybrid/gj/25a.sdql | 24 +++---- progs/job/hybrid/gj/25b.sdql | 24 +++---- progs/job/hybrid/gj/25c.sdql | 24 +++---- progs/job/hybrid/gj/26a.sdql | 8 +-- progs/job/hybrid/gj/26b.sdql | 8 +-- progs/job/hybrid/gj/26c.sdql | 8 +-- progs/job/hybrid/gj/27a.sdql | 10 +-- progs/job/hybrid/gj/27b.sdql | 10 +-- progs/job/hybrid/gj/27c.sdql | 10 +-- progs/job/hybrid/gj/28a.sdql | 10 +-- progs/job/hybrid/gj/28b.sdql | 10 +-- progs/job/hybrid/gj/28c.sdql | 10 +-- progs/job/hybrid/gj/29a.sdql | 14 ++-- progs/job/hybrid/gj/29b.sdql | 14 ++-- progs/job/hybrid/gj/29c.sdql | 14 ++-- progs/job/hybrid/gj/30a.sdql | 10 +-- progs/job/hybrid/gj/30b.sdql | 10 +-- progs/job/hybrid/gj/30c.sdql | 10 +-- progs/job/hybrid/gj/31a.sdql | 34 +++++----- progs/job/hybrid/gj/31b.sdql | 34 +++++----- progs/job/hybrid/gj/31c.sdql | 34 +++++----- progs/job/hybrid/gj/32b.sdql | 7 +- progs/job/hybrid/gj/33a.sdql | 12 ++-- progs/job/hybrid/gj/33b.sdql | 12 ++-- progs/job/hybrid/gj/33c.sdql | 12 ++-- progs/job/hybrid/gj/3a.sdql | 7 +- progs/job/hybrid/gj/3a_optimised.sdql | 35 ---------- progs/job/hybrid/gj/3b.sdql | 7 +- progs/job/hybrid/gj/3c.sdql | 7 +- progs/job/hybrid/gj/6a.sdql | 2 +- progs/job/hybrid/gj/6b.sdql | 2 +- progs/job/hybrid/gj/6c.sdql | 2 +- progs/job/hybrid/gj/6d.sdql | 2 +- progs/job/hybrid/gj/6e.sdql | 2 +- progs/job/hybrid/gj/6f.sdql | 2 +- progs/job/hybrid/gj/7a.sdql | 4 +- progs/job/hybrid/gj/7b.sdql | 4 +- progs/job/hybrid/gj/7c.sdql | 4 +- progs/job/hybrid/gj/8a.sdql | 2 +- progs/job/hybrid/gj/8b.sdql | 2 +- progs/job/hybrid/gj/8c.sdql | 2 +- progs/job/hybrid/gj/8d.sdql | 2 +- progs/job/hybrid/gj/9a.sdql | 2 +- progs/job/hybrid/gj/9b.sdql | 2 +- progs/job/hybrid/gj/9c.sdql | 2 +- progs/job/hybrid/gj/9d.sdql | 2 +- .../scala/sdql/backend/CppCompileTest.scala | 6 -- 104 files changed, 508 insertions(+), 585 deletions(-) delete mode 100644 progs/job/hybrid/gj/13a_optimised.sdql delete mode 100644 progs/job/hybrid/gj/3a_optimised.sdql diff --git a/progs/job/hybrid/gj/10a.sdql b/progs/job/hybrid/gj/10a.sdql index 6eb0029f..1445f2a5 100644 --- a/progs/job/hybrid/gj/10a.sdql +++ b/progs/job/hybrid/gj/10a.sdql @@ -32,7 +32,7 @@ let interm0_trie0 = sum( <- mc_trie0) let mc_off = mc_offsets(mc_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/10c.sdql b/progs/job/hybrid/gj/10c.sdql index cd95e5ea..c2fd5984 100644 --- a/progs/job/hybrid/gj/10c.sdql +++ b/progs/job/hybrid/gj/10c.sdql @@ -32,7 +32,7 @@ let interm0_trie0 = sum( <- mc_trie0) let mc_off = mc_offsets(mc_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/11a.sdql b/progs/job/hybrid/gj/11a.sdql index b22de77e..9fdad054 100644 --- a/progs/job/hybrid/gj/11a.sdql +++ b/progs/job/hybrid/gj/11a.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mk_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in sum( <- mk_trie1) @@ -52,7 +53,7 @@ sum( <- mk_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/11b.sdql b/progs/job/hybrid/gj/11b.sdql index f41e49bb..f14cbdd1 100644 --- a/progs/job/hybrid/gj/11b.sdql +++ b/progs/job/hybrid/gj/11b.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mk_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in sum( <- mk_trie1) @@ -52,7 +53,7 @@ sum( <- mk_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/11c.sdql b/progs/job/hybrid/gj/11c.sdql index 3fe03fbe..98bbe7d2 100644 --- a/progs/job/hybrid/gj/11c.sdql +++ b/progs/job/hybrid/gj/11c.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mk_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in sum( <- mk_trie1) @@ -52,7 +53,7 @@ sum( <- mk_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_mc = sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/11d.sdql b/progs/job/hybrid/gj/11d.sdql index 91ebaae8..edd87f95 100644 --- a/progs/job/hybrid/gj/11d.sdql +++ b/progs/job/hybrid/gj/11d.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mk_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in sum( <- mk_trie1) @@ -52,7 +53,7 @@ sum( <- mk_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_mc = sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/12a.sdql b/progs/job/hybrid/gj/12a.sdql index 4c92d527..9050dad1 100644 --- a/progs/job/hybrid/gj/12a.sdql +++ b/progs/job/hybrid/gj/12a.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -52,7 +53,7 @@ sum( <- mi_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/12b.sdql b/progs/job/hybrid/gj/12b.sdql index 26452d19..decbad0a 100644 --- a/progs/job/hybrid/gj/12b.sdql +++ b/progs/job/hybrid/gj/12b.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -40,7 +40,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -53,6 +54,6 @@ sum( <- mi_trie0) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/12c.sdql b/progs/job/hybrid/gj/12c.sdql index b6d733a4..d22b7cbb 100644 --- a/progs/job/hybrid/gj/12c.sdql +++ b/progs/job/hybrid/gj/12c.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -40,7 +40,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -52,7 +53,7 @@ sum( <- mi_trie0) sum( <- mc_trie2) if (x4 ∈ cn_trie0) then let cn_trie1 = cn_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/13a.sdql b/progs/job/hybrid/gj/13a.sdql index 250e252c..7c0198ae 100644 --- a/progs/job/hybrid/gj/13a.sdql +++ b/progs/job/hybrid/gj/13a.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- miidx_trie1) let miidx_off = miidx_offsets(miidx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,22 +43,23 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in sum( <- mi_trie1) if (x2 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x2) in - sum( <- interm0_trie2) - if (x3 ∈ it_trie0) then - let it_trie1 = it_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x4) in - sum( <- mc_trie2) - if (x5 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x5) in - let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in - promote[min_sum]() + let x3 = interm0_tuple.col4 + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in + let mn_interm0 = in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/13a_optimised.sdql b/progs/job/hybrid/gj/13a_optimised.sdql deleted file mode 100644 index d6f4a9a8..00000000 --- a/progs/job/hybrid/gj/13a_optimised.sdql +++ /dev/null @@ -1,65 +0,0 @@ -let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") -let t_offsets = ext(`SortedIndices`, t.id) -let miidx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info_idx.csv") -let miidx_offsets = ext(`SortedIndices`, miidx.movie_id) -let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/movie_info.csv") -let mi_offsets = ext(`SortedIndices`, mi.movie_id, mi.info_type_id) -let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") -let mc_offsets = ext(`SortedIndices`, mc.movie_id, mc.company_type_id, mc.company_id) -let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/kt.csv") -let kt_offsets = ext(`SortedIndices`, kt.id) -let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it2.csv") -let it2_offsets = ext(`SortedIndices`, it2.id) -let it = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/13a/it.csv") -let it_offsets = ext(`SortedIndices`, it.id) -let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/13a/ct.csv") -let ct_offsets = ext(`SortedIndices`, ct.id) -let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/13a/cn.csv") -let cn_offsets = ext(`SortedIndices`, cn.id) - -timer - -let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in -let miidx_trie0 = sum( <- range(miidx.size)) @st(miidx.size) { miidx.movie_id(miidx_offsets(i)) -> @range { i -> 1 } } in -let interm0_trie0 = sum( <- t_trie0) - if (x0 ∈ miidx_trie0) then - let miidx_trie1 = miidx_trie0(x0) in - sum( <- t_trie1) - let t_off = t_offsets(t_i) - sum( <- miidx_trie1) - let miidx_off = miidx_offsets(miidx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } -in - -let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in -let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> 1 } } } in -let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in -let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in -let it_trie0 = sum( <- range(it.size)) @st(it.size) { it.id(it_offsets(i)) -> 1 } in -let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in -let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in -sum( <- mi_trie0) - if (x0 ∈ interm0_trie0) then - let interm0_trie1 = interm0_trie0(x0) in - if (x0 ∈ mc_trie0) then - let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) - let x1 = interm0_tuple(1) in - if (x1 ∈ kt_trie0) then - let kt_trie1 = kt_trie0(x1) in - sum( <- mi_trie1) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - let x3 = interm0_tuple(3) in - if (x3 ∈ it_trie0) then - let it_trie1 = it_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x4) in - sum( <- mc_trie2) - if (x5 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x5) in - let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = in - promote[min_sum]() - diff --git a/progs/job/hybrid/gj/13b.sdql b/progs/job/hybrid/gj/13b.sdql index 99d4918c..6987bc89 100644 --- a/progs/job/hybrid/gj/13b.sdql +++ b/progs/job/hybrid/gj/13b.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- miidx_trie1) let miidx_off = miidx_offsets(miidx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -43,22 +43,23 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in sum( <- mi_trie1) if (x2 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x2) in - sum( <- interm0_trie2) - if (x3 ∈ it_trie0) then - let it_trie1 = it_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x4) in - sum( <- mc_trie2) - if (x5 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x5) in - let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x3 = interm0_tuple.col4 + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/13c.sdql b/progs/job/hybrid/gj/13c.sdql index b2ea4cad..bcb8314d 100644 --- a/progs/job/hybrid/gj/13c.sdql +++ b/progs/job/hybrid/gj/13c.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- miidx_trie1) let miidx_off = miidx_offsets(miidx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -43,22 +43,23 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in sum( <- mi_trie1) if (x2 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x2) in - sum( <- interm0_trie2) - if (x3 ∈ it_trie0) then - let it_trie1 = it_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x4) in - sum( <- mc_trie2) - if (x5 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x5) in - let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x3 = interm0_tuple.col4 + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/13d.sdql b/progs/job/hybrid/gj/13d.sdql index 3a6056f9..909d0060 100644 --- a/progs/job/hybrid/gj/13d.sdql +++ b/progs/job/hybrid/gj/13d.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- miidx_trie1) let miidx_off = miidx_offsets(miidx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { t.kind_id(t_off) -> { miidx.info_type_id(miidx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -43,22 +43,23 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in sum( <- mi_trie1) if (x2 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x2) in - sum( <- interm0_trie2) - if (x3 ∈ it_trie0) then - let it_trie1 = it_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x4) in - sum( <- mc_trie2) - if (x5 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x5) in - let mn_interm0 = sum( <- interm0_trie3) promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x3 = interm0_tuple.col4 + if (x3 ∈ it_trie0) then + let it_trie1 = it_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x4) in + sum( <- mc_trie2) + if (x5 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x5) in + let mn_interm0 = in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/14a.sdql b/progs/job/hybrid/gj/14a.sdql index e55bc5ad..d2ca96d9 100644 --- a/progs/job/hybrid/gj/14a.sdql +++ b/progs/job/hybrid/gj/14a.sdql @@ -31,7 +31,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -42,18 +42,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- interm0_trie3) - if (x3 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x3) in - sum( <- mi_trie1) - if (x4 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in - promote[min_sum]() + let x2 = interm0_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/14b.sdql b/progs/job/hybrid/gj/14b.sdql index 75447858..c38179bb 100644 --- a/progs/job/hybrid/gj/14b.sdql +++ b/progs/job/hybrid/gj/14b.sdql @@ -31,7 +31,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -42,18 +42,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- interm0_trie3) - if (x3 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x3) in - sum( <- mi_trie1) - if (x4 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in - promote[min_sum]() + let x2 = interm0_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/14c.sdql b/progs/job/hybrid/gj/14c.sdql index ba3ce5dd..062c1620 100644 --- a/progs/job/hybrid/gj/14c.sdql +++ b/progs/job/hybrid/gj/14c.sdql @@ -31,7 +31,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { t.kind_id(t_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -42,18 +42,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ kt_trie0) then let kt_trie1 = kt_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- interm0_trie3) - if (x3 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x3) in - sum( <- mi_trie1) - if (x4 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x4) in - let mn_interm0 = sum( <- interm0_trie4) promote[min_sum]() in - promote[min_sum]() + let x2 = interm0_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + sum( <- mi_trie1) + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/15a.sdql b/progs/job/hybrid/gj/15a.sdql index ae9e9afe..ab09682b 100644 --- a/progs/job/hybrid/gj/15a.sdql +++ b/progs/job/hybrid/gj/15a.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,7 +43,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -58,6 +59,6 @@ sum( <- mi_trie0) if (x0 ∈ at_trie0) then let at_trie1 = at_trie0(x0) in let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/15b.sdql b/progs/job/hybrid/gj/15b.sdql index 2f7edc5f..c9225b51 100644 --- a/progs/job/hybrid/gj/15b.sdql +++ b/progs/job/hybrid/gj/15b.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,7 +43,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -58,6 +59,6 @@ sum( <- mi_trie0) if (x0 ∈ at_trie0) then let at_trie1 = at_trie0(x0) in let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/15c.sdql b/progs/job/hybrid/gj/15c.sdql index 247b7761..7cf5e405 100644 --- a/progs/job/hybrid/gj/15c.sdql +++ b/progs/job/hybrid/gj/15c.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,7 +43,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -58,6 +59,6 @@ sum( <- mi_trie0) if (x0 ∈ at_trie0) then let at_trie1 = at_trie0(x0) in let mn_mi = sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/15d.sdql b/progs/job/hybrid/gj/15d.sdql index 12ee96b0..bf110851 100644 --- a/progs/job/hybrid/gj/15d.sdql +++ b/progs/job/hybrid/gj/15d.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> 1 } } in @@ -43,7 +43,8 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -57,7 +58,7 @@ sum( <- mi_trie0) let cn_trie1 = cn_trie0(x4) in if (x0 ∈ at_trie0) then let at_trie1 = at_trie0(x0) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_at = sum( <- at_trie1) let at_off = at_offsets(at_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/16a.sdql b/progs/job/hybrid/gj/16a.sdql index 2fc7178c..7e5c3ece 100644 --- a/progs/job/hybrid/gj/16a.sdql +++ b/progs/job/hybrid/gj/16a.sdql @@ -39,7 +39,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/16b.sdql b/progs/job/hybrid/gj/16b.sdql index 02bad162..c7557f62 100644 --- a/progs/job/hybrid/gj/16b.sdql +++ b/progs/job/hybrid/gj/16b.sdql @@ -39,7 +39,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/16c.sdql b/progs/job/hybrid/gj/16c.sdql index b1a7ae55..d2a6d44b 100644 --- a/progs/job/hybrid/gj/16c.sdql +++ b/progs/job/hybrid/gj/16c.sdql @@ -39,7 +39,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/16d.sdql b/progs/job/hybrid/gj/16d.sdql index fa5e7a80..1ea020cc 100644 --- a/progs/job/hybrid/gj/16d.sdql +++ b/progs/job/hybrid/gj/16d.sdql @@ -39,7 +39,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17a.sdql b/progs/job/hybrid/gj/17a.sdql index 9260cc79..cf33d3ed 100644 --- a/progs/job/hybrid/gj/17a.sdql +++ b/progs/job/hybrid/gj/17a.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17b.sdql b/progs/job/hybrid/gj/17b.sdql index fbb31027..89bde47d 100644 --- a/progs/job/hybrid/gj/17b.sdql +++ b/progs/job/hybrid/gj/17b.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17c.sdql b/progs/job/hybrid/gj/17c.sdql index 590eec95..2c57302c 100644 --- a/progs/job/hybrid/gj/17c.sdql +++ b/progs/job/hybrid/gj/17c.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17d.sdql b/progs/job/hybrid/gj/17d.sdql index 99cdebfe..e1541461 100644 --- a/progs/job/hybrid/gj/17d.sdql +++ b/progs/job/hybrid/gj/17d.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17e.sdql b/progs/job/hybrid/gj/17e.sdql index 485b552b..22705792 100644 --- a/progs/job/hybrid/gj/17e.sdql +++ b/progs/job/hybrid/gj/17e.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/17f.sdql b/progs/job/hybrid/gj/17f.sdql index c0b7a298..d7ad0bf7 100644 --- a/progs/job/hybrid/gj/17f.sdql +++ b/progs/job/hybrid/gj/17f.sdql @@ -35,7 +35,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/18a.sdql b/progs/job/hybrid/gj/18a.sdql index 5b76e699..496684d8 100644 --- a/progs/job/hybrid/gj/18a.sdql +++ b/progs/job/hybrid/gj/18a.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -33,7 +33,8 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -41,8 +42,7 @@ let interm1_trie0 = sum( <- mi_trie0) let it1_trie1 = it1_trie0(x2) in sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie2) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/18b.sdql b/progs/job/hybrid/gj/18b.sdql index 7b2336e3..20b01e24 100644 --- a/progs/job/hybrid/gj/18b.sdql +++ b/progs/job/hybrid/gj/18b.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -33,7 +33,8 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -41,8 +42,7 @@ let interm1_trie0 = sum( <- mi_trie0) let it1_trie1 = it1_trie0(x2) in sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie2) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/18c.sdql b/progs/job/hybrid/gj/18c.sdql index 44c37f0b..a3208ae6 100644 --- a/progs/job/hybrid/gj/18c.sdql +++ b/progs/job/hybrid/gj/18c.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -33,7 +33,8 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col2 if (x1 ∈ it2_trie0) then let it2_trie1 = it2_trie0(x1) in sum( <- mi_trie1) @@ -41,8 +42,7 @@ let interm1_trie0 = sum( <- mi_trie0) let it1_trie1 = it1_trie0(x2) in sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie2) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/19a.sdql b/progs/job/hybrid/gj/19a.sdql index 34f60b32..dbf3164b 100644 --- a/progs/job/hybrid/gj/19a.sdql +++ b/progs/job/hybrid/gj/19a.sdql @@ -43,7 +43,7 @@ let interm0_trie0 = sum( <- mi_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/19b.sdql b/progs/job/hybrid/gj/19b.sdql index a0014dff..3c75dd7e 100644 --- a/progs/job/hybrid/gj/19b.sdql +++ b/progs/job/hybrid/gj/19b.sdql @@ -43,7 +43,7 @@ let interm0_trie0 = sum( <- mi_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/19c.sdql b/progs/job/hybrid/gj/19c.sdql index 1f105ead..afa658fc 100644 --- a/progs/job/hybrid/gj/19c.sdql +++ b/progs/job/hybrid/gj/19c.sdql @@ -43,7 +43,7 @@ let interm0_trie0 = sum( <- mi_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/19d.sdql b/progs/job/hybrid/gj/19d.sdql index 5cce5502..0d6a6eae 100644 --- a/progs/job/hybrid/gj/19d.sdql +++ b/progs/job/hybrid/gj/19d.sdql @@ -43,7 +43,7 @@ let interm0_trie0 = sum( <- mi_trie0) let t_off = t_offsets(t_i) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/1a.sdql b/progs/job/hybrid/gj/1a.sdql index 3e6ad967..abcc6c34 100644 --- a/progs/job/hybrid/gj/1a.sdql +++ b/progs/job/hybrid/gj/1a.sdql @@ -20,7 +20,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -29,13 +29,14 @@ let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) sum( <- mc_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ it_trie0) then let it_trie1 = it_trie0(x1) in sum( <- mc_trie1) if (x2 ∈ ct_trie0) then let ct_trie1 = ct_trie0(x2) in let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/1b.sdql b/progs/job/hybrid/gj/1b.sdql index 07f82aa3..d995033d 100644 --- a/progs/job/hybrid/gj/1b.sdql +++ b/progs/job/hybrid/gj/1b.sdql @@ -20,7 +20,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -29,13 +29,14 @@ let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) sum( <- mc_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ it_trie0) then let it_trie1 = it_trie0(x1) in sum( <- mc_trie1) if (x2 ∈ ct_trie0) then let ct_trie1 = ct_trie0(x2) in let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/1c.sdql b/progs/job/hybrid/gj/1c.sdql index 616d52ab..96393e68 100644 --- a/progs/job/hybrid/gj/1c.sdql +++ b/progs/job/hybrid/gj/1c.sdql @@ -20,7 +20,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -29,13 +29,14 @@ let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) sum( <- mc_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ it_trie0) then let it_trie1 = it_trie0(x1) in sum( <- mc_trie1) if (x2 ∈ ct_trie0) then let ct_trie1 = ct_trie0(x2) in let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/1d.sdql b/progs/job/hybrid/gj/1d.sdql index 1baa0af0..ffea9b15 100644 --- a/progs/job/hybrid/gj/1d.sdql +++ b/progs/job/hybrid/gj/1d.sdql @@ -20,7 +20,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -29,13 +29,14 @@ let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) sum( <- mc_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ it_trie0) then let it_trie1 = it_trie0(x1) in sum( <- mc_trie1) if (x2 ∈ ct_trie0) then let ct_trie1 = ct_trie0(x2) in let mn_mc = sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) in promote[min_sum]() in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/20a.sdql b/progs/job/hybrid/gj/20a.sdql index 8147db93..7b5c12ef 100644 --- a/progs/job/hybrid/gj/20a.sdql +++ b/progs/job/hybrid/gj/20a.sdql @@ -32,7 +32,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie2) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/20b.sdql b/progs/job/hybrid/gj/20b.sdql index 9558e60f..e50082e5 100644 --- a/progs/job/hybrid/gj/20b.sdql +++ b/progs/job/hybrid/gj/20b.sdql @@ -32,7 +32,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie2) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/20c.sdql b/progs/job/hybrid/gj/20c.sdql index b8bff54c..0349e2c5 100644 --- a/progs/job/hybrid/gj/20c.sdql +++ b/progs/job/hybrid/gj/20c.sdql @@ -32,7 +32,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie2) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/21a.sdql b/progs/job/hybrid/gj/21a.sdql index 5b8e0e44..3c09a2f9 100644 --- a/progs/job/hybrid/gj/21a.sdql +++ b/progs/job/hybrid/gj/21a.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in @@ -38,7 +38,7 @@ let interm1_trie0 = sum( <- mk_trie0) sum( <- mk_trie1) let mk_off = mk_offsets(mk_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -52,20 +52,21 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm1_trie1 = interm1_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm1_trie1) + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in - sum( <- interm1_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- mc_trie1) - if (x3 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x3) in - sum( <- mc_trie2) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in - let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x2 = interm1_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/21b.sdql b/progs/job/hybrid/gj/21b.sdql index b69c9410..daefdadc 100644 --- a/progs/job/hybrid/gj/21b.sdql +++ b/progs/job/hybrid/gj/21b.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in @@ -38,7 +38,7 @@ let interm1_trie0 = sum( <- mk_trie0) sum( <- mk_trie1) let mk_off = mk_offsets(mk_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -52,20 +52,21 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm1_trie1 = interm1_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm1_trie1) + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in - sum( <- interm1_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- mc_trie1) - if (x3 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x3) in - sum( <- mc_trie2) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in - let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x2 = interm1_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/21c.sdql b/progs/job/hybrid/gj/21c.sdql index 0692fc53..ad54cfcd 100644 --- a/progs/job/hybrid/gj/21c.sdql +++ b/progs/job/hybrid/gj/21c.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in @@ -38,7 +38,7 @@ let interm1_trie0 = sum( <- mk_trie0) sum( <- mk_trie1) let mk_off = mk_offsets(mk_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { interm0_tuple.col2 -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -52,20 +52,21 @@ sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm1_trie1 = interm1_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm1_trie1) + sum( <- interm1_trie1) + let x1 = interm1_tuple.col3 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in - sum( <- interm1_trie2) - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - sum( <- mc_trie1) - if (x3 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x3) in - sum( <- mc_trie2) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - let mn_interm1 = sum( <- interm1_trie3) promote[min_sum]() in - let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in - let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in - promote[min_sum]() + let x2 = interm1_tuple.col1 + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + sum( <- mc_trie1) + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + sum( <- mc_trie2) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + let mn_interm1 = in + let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in + let mn_cn = sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) in promote[min_sum]() in + promote[min_sum]() diff --git a/progs/job/hybrid/gj/22a.sdql b/progs/job/hybrid/gj/22a.sdql index 2621924d..59f3fc6b 100644 --- a/progs/job/hybrid/gj/22a.sdql +++ b/progs/job/hybrid/gj/22a.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -60,7 +60,7 @@ let interm1_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -74,7 +74,7 @@ let interm2_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/22b.sdql b/progs/job/hybrid/gj/22b.sdql index 2c1c5e9b..19fa85a6 100644 --- a/progs/job/hybrid/gj/22b.sdql +++ b/progs/job/hybrid/gj/22b.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -60,7 +60,7 @@ let interm1_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -74,7 +74,7 @@ let interm2_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/22c.sdql b/progs/job/hybrid/gj/22c.sdql index f1bc5b12..f51ca1db 100644 --- a/progs/job/hybrid/gj/22c.sdql +++ b/progs/job/hybrid/gj/22c.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -60,7 +60,7 @@ let interm1_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -74,7 +74,7 @@ let interm2_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/22d.sdql b/progs/job/hybrid/gj/22d.sdql index f244a8b7..20aa23dc 100644 --- a/progs/job/hybrid/gj/22d.sdql +++ b/progs/job/hybrid/gj/22d.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -60,7 +60,7 @@ let interm1_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -74,7 +74,7 @@ let interm2_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/23a.sdql b/progs/job/hybrid/gj/23a.sdql index f10fb14a..ca3588ac 100644 --- a/progs/job/hybrid/gj/23a.sdql +++ b/progs/job/hybrid/gj/23a.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct1_trie1 = cct1_trie0(x0) in sum( <- cc_trie1) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -45,7 +45,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- kt_trie1) let kt_off = kt_offsets(kt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/23b.sdql b/progs/job/hybrid/gj/23b.sdql index 4d88932a..59796005 100644 --- a/progs/job/hybrid/gj/23b.sdql +++ b/progs/job/hybrid/gj/23b.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct1_trie1 = cct1_trie0(x0) in sum( <- cc_trie1) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -45,7 +45,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- kt_trie1) let kt_off = kt_offsets(kt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/23c.sdql b/progs/job/hybrid/gj/23c.sdql index eb7b6eda..a524d3ed 100644 --- a/progs/job/hybrid/gj/23c.sdql +++ b/progs/job/hybrid/gj/23c.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct1_trie1 = cct1_trie0(x0) in sum( <- cc_trie1) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -45,7 +45,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- kt_trie1) let kt_off = kt_offsets(kt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie3) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/24a.sdql b/progs/job/hybrid/gj/24a.sdql index 136ac0c1..05399f63 100644 --- a/progs/job/hybrid/gj/24a.sdql +++ b/progs/job/hybrid/gj/24a.sdql @@ -34,7 +34,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -47,7 +47,8 @@ let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -58,10 +59,9 @@ let interm1_trie0 = sum( <- mi_trie0) let cn_trie1 = cn_trie0(x3) in sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie2) - sum( <- mc_trie2) - let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -71,7 +71,7 @@ let interm2_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/24b.sdql b/progs/job/hybrid/gj/24b.sdql index 457ae2ca..aa6238b6 100644 --- a/progs/job/hybrid/gj/24b.sdql +++ b/progs/job/hybrid/gj/24b.sdql @@ -34,7 +34,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -47,7 +47,8 @@ let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in sum( <- mi_trie1) @@ -58,10 +59,9 @@ let interm1_trie0 = sum( <- mi_trie0) let cn_trie1 = cn_trie0(x3) in sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie2) - sum( <- mc_trie2) - let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -71,7 +71,7 @@ let interm2_trie0 = sum( <- n_trie0) let an_trie1 = an_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/25a.sdql b/progs/job/hybrid/gj/25a.sdql index e583d9ae..4038a668 100644 --- a/progs/job/hybrid/gj/25a.sdql +++ b/progs/job/hybrid/gj/25a.sdql @@ -33,7 +33,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,19 +43,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/25b.sdql b/progs/job/hybrid/gj/25b.sdql index 4bdf7a9a..d1396dd3 100644 --- a/progs/job/hybrid/gj/25b.sdql +++ b/progs/job/hybrid/gj/25b.sdql @@ -33,7 +33,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,19 +43,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/25c.sdql b/progs/job/hybrid/gj/25c.sdql index d47e8176..5776c1a2 100644 --- a/progs/job/hybrid/gj/25c.sdql +++ b/progs/job/hybrid/gj/25c.sdql @@ -33,7 +33,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -43,19 +43,19 @@ let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offset let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/26a.sdql b/progs/job/hybrid/gj/26a.sdql index 34c48c81..2bddb45e 100644 --- a/progs/job/hybrid/gj/26a.sdql +++ b/progs/job/hybrid/gj/26a.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/26b.sdql b/progs/job/hybrid/gj/26b.sdql index ad41824e..5a43153e 100644 --- a/progs/job/hybrid/gj/26b.sdql +++ b/progs/job/hybrid/gj/26b.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/26c.sdql b/progs/job/hybrid/gj/26c.sdql index d9d34576..58fcbe68 100644 --- a/progs/job/hybrid/gj/26c.sdql +++ b/progs/job/hybrid/gj/26c.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -63,7 +63,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -77,7 +77,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/27a.sdql b/progs/job/hybrid/gj/27a.sdql index 056d677b..ea705135 100644 --- a/progs/job/hybrid/gj/27a.sdql +++ b/progs/job/hybrid/gj/27a.sdql @@ -34,7 +34,7 @@ let interm0_trie0 = sum( <- ml_trie0) let ml_off = ml_offsets(ml_i) sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- cc_trie0) sum( <- cc_trie3) let cc_off = cc_offsets(cc_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -62,7 +62,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -82,7 +82,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -96,7 +96,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in diff --git a/progs/job/hybrid/gj/27b.sdql b/progs/job/hybrid/gj/27b.sdql index 5eec42a2..1c78c473 100644 --- a/progs/job/hybrid/gj/27b.sdql +++ b/progs/job/hybrid/gj/27b.sdql @@ -34,7 +34,7 @@ let interm0_trie0 = sum( <- ml_trie0) let ml_off = ml_offsets(ml_i) sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- cc_trie0) sum( <- cc_trie3) let cc_off = cc_offsets(cc_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -62,7 +62,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -82,7 +82,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -96,7 +96,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in diff --git a/progs/job/hybrid/gj/27c.sdql b/progs/job/hybrid/gj/27c.sdql index f62a1497..4945b3a0 100644 --- a/progs/job/hybrid/gj/27c.sdql +++ b/progs/job/hybrid/gj/27c.sdql @@ -34,7 +34,7 @@ let interm0_trie0 = sum( <- ml_trie0) let ml_off = ml_offsets(ml_i) sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let cc_trie0 = sum( <- range(cc.size)) @st(cc.size) { cc.subject_id(cc_offsets(i)) -> @st(cc.size) { cc.status_id(cc_offsets(i)) -> @st(cc.size) { cc.movie_id(cc_offsets(i)) -> @range { i -> 1 } } } } in @@ -52,7 +52,7 @@ let interm1_trie0 = sum( <- cc_trie0) sum( <- cc_trie3) let cc_off = cc_offsets(cc_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -62,7 +62,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -82,7 +82,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -96,7 +96,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in diff --git a/progs/job/hybrid/gj/28a.sdql b/progs/job/hybrid/gj/28a.sdql index 5edddb7d..3a1e98cf 100644 --- a/progs/job/hybrid/gj/28a.sdql +++ b/progs/job/hybrid/gj/28a.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -67,7 +67,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -87,7 +87,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -101,7 +101,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/28b.sdql b/progs/job/hybrid/gj/28b.sdql index a5a68c3e..2d8f7416 100644 --- a/progs/job/hybrid/gj/28b.sdql +++ b/progs/job/hybrid/gj/28b.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -67,7 +67,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -87,7 +87,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -101,7 +101,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/28c.sdql b/progs/job/hybrid/gj/28c.sdql index 9f693006..cf1b88b7 100644 --- a/progs/job/hybrid/gj/28c.sdql +++ b/progs/job/hybrid/gj/28c.sdql @@ -40,7 +40,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -53,7 +53,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.kind_id(t_offsets(i)) -> @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } } in @@ -67,7 +67,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie2) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.company_type_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } } in @@ -87,7 +87,7 @@ let interm3_trie0 = sum( <- mc_trie0) sum( <- cn_trie1) let cn_off = cn_offsets(cn_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -101,7 +101,7 @@ let interm4_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/29a.sdql b/progs/job/hybrid/gj/29a.sdql index c56fdf5d..7290dfd6 100644 --- a/progs/job/hybrid/gj/29a.sdql +++ b/progs/job/hybrid/gj/29a.sdql @@ -46,7 +46,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -55,7 +55,7 @@ let interm1_trie0 = sum( <- t_trie0) let interm0_trie1 = interm0_trie0(x0) in sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -69,7 +69,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -83,7 +83,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -97,7 +97,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in @@ -111,7 +111,7 @@ let interm5_trie0 = sum( <- pi_trie0) let it3_trie1 = it3_trie0(x1) in sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -120,7 +120,7 @@ let interm6_trie0 = sum( <- n_trie0) let interm5_trie1 = interm5_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/29b.sdql b/progs/job/hybrid/gj/29b.sdql index 626c6e61..065b9fb9 100644 --- a/progs/job/hybrid/gj/29b.sdql +++ b/progs/job/hybrid/gj/29b.sdql @@ -46,7 +46,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -55,7 +55,7 @@ let interm1_trie0 = sum( <- t_trie0) let interm0_trie1 = interm0_trie0(x0) in sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -69,7 +69,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -83,7 +83,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -97,7 +97,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in @@ -111,7 +111,7 @@ let interm5_trie0 = sum( <- pi_trie0) let it3_trie1 = it3_trie0(x1) in sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -120,7 +120,7 @@ let interm6_trie0 = sum( <- n_trie0) let interm5_trie1 = interm5_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/29c.sdql b/progs/job/hybrid/gj/29c.sdql index 8c44de00..343367b4 100644 --- a/progs/job/hybrid/gj/29c.sdql +++ b/progs/job/hybrid/gj/29c.sdql @@ -46,7 +46,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -55,7 +55,7 @@ let interm1_trie0 = sum( <- t_trie0) let interm0_trie1 = interm0_trie0(x0) in sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.company_id(mc_offsets(i)) -> @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } } in @@ -69,7 +69,7 @@ let interm2_trie0 = sum( <- mc_trie0) sum( <- mc_trie2) let mc_off = mc_offsets(mc_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -83,7 +83,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -97,7 +97,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let pi_trie0 = sum( <- range(pi.size)) @st(pi.size) { pi.person_id(pi_offsets(i)) -> @st(pi.size) { pi.info_type_id(pi_offsets(i)) -> @range { i -> 1 } } } in @@ -111,7 +111,7 @@ let interm5_trie0 = sum( <- pi_trie0) let it3_trie1 = it3_trie0(x1) in sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { pi.person_id(pi_off) -> @smallvecdict(4) { -> 1 } } in let n_trie0 = sum( <- range(n.size)) @st(n.size) { n.id(n_offsets(i)) -> @range { i -> 1 } } in @@ -120,7 +120,7 @@ let interm6_trie0 = sum( <- n_trie0) let interm5_trie1 = interm5_trie0(x0) in sum( <- n_trie1) let n_off = n_offsets(n_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/30a.sdql b/progs/job/hybrid/gj/30a.sdql index a28a9184..56b516f9 100644 --- a/progs/job/hybrid/gj/30a.sdql +++ b/progs/job/hybrid/gj/30a.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -59,7 +59,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -73,7 +73,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -87,7 +87,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/30b.sdql b/progs/job/hybrid/gj/30b.sdql index ef22097c..3a5e75ce 100644 --- a/progs/job/hybrid/gj/30b.sdql +++ b/progs/job/hybrid/gj/30b.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -59,7 +59,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -73,7 +73,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -87,7 +87,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/30c.sdql b/progs/job/hybrid/gj/30c.sdql index 2f060f99..08d0e7a4 100644 --- a/progs/job/hybrid/gj/30c.sdql +++ b/progs/job/hybrid/gj/30c.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- cc_trie0) let cct2_trie1 = cct2_trie0(x1) in sum( <- cc_trie2) let cc_off = cc_offsets(cc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](cc.size)) { cc.movie_id(cc_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.info_type_id(mi_idx_offsets(i)) -> @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } } in @@ -49,7 +49,7 @@ let interm1_trie0 = sum( <- mi_idx_trie0) let interm0_trie1 = interm0_trie0(x1) in sum( <- mi_idx_trie2) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx.size)) { mi_idx.movie_id(mi_idx_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -59,7 +59,7 @@ let interm2_trie0 = sum( <- t_trie0) sum( <- t_trie1) let t_off = t_offsets(t_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } } in @@ -73,7 +73,7 @@ let interm3_trie0 = sum( <- mk_trie0) sum( <- mk_trie2) let mk_off = mk_offsets(mk_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -87,7 +87,7 @@ let interm4_trie0 = sum( <- mi_trie0) sum( <- mi_trie2) let mi_off = mi_offsets(mi_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/31a.sdql b/progs/job/hybrid/gj/31a.sdql index 39ad3809..d90ff19b 100644 --- a/progs/job/hybrid/gj/31a.sdql +++ b/progs/job/hybrid/gj/31a.sdql @@ -37,7 +37,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -51,24 +51,24 @@ let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - sum( <- mc_trie2) - let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/31b.sdql b/progs/job/hybrid/gj/31b.sdql index c6235fc2..a8146b13 100644 --- a/progs/job/hybrid/gj/31b.sdql +++ b/progs/job/hybrid/gj/31b.sdql @@ -37,7 +37,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -51,24 +51,24 @@ let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - sum( <- mc_trie2) - let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/31c.sdql b/progs/job/hybrid/gj/31c.sdql index fc752d18..44a2befc 100644 --- a/progs/job/hybrid/gj/31c.sdql +++ b/progs/job/hybrid/gj/31c.sdql @@ -37,7 +37,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- mi_idx_trie1) let mi_idx_off = mi_idx_offsets(mi_idx_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> { mi_idx.info_type_id(mi_idx_off) -> @smallvecdict(0) { -> 1 } } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> @st(mi.size) { mi.info_type_id(mi_offsets(i)) -> @range { i -> 1 } } } in @@ -51,24 +51,24 @@ let interm1_trie0 = sum( <- mi_trie0) if (x0 ∈ mc_trie0) then let interm0_trie1 = interm0_trie0(x0) in let mc_trie1 = mc_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - sum( <- interm0_trie2) - if (x2 ∈ it2_trie0) then - let it2_trie1 = it2_trie0(x2) in - sum( <- mi_trie1) - if (x3 ∈ it1_trie0) then - let it1_trie1 = it1_trie0(x3) in - sum( <- mc_trie1) - if (x4 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x4) in - sum( <- mi_trie2) - let mi_off = mi_offsets(mi_i) - sum( <- interm0_trie3) - sum( <- mc_trie2) - let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mi.movie_id(mi_off) -> @smallvecdict(0) { -> 1 } } + let x2 = interm0_tuple.col3 + if (x2 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x2) in + sum( <- mi_trie1) + if (x3 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x3) in + sum( <- mc_trie1) + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + sum( <- mi_trie2) + let mi_off = mi_offsets(mi_i) + sum( <- mc_trie2) + let mc_off = mc_offsets(mc_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mi.size)) { mi.movie_id(mi_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/32b.sdql b/progs/job/hybrid/gj/32b.sdql index 1de26e7e..0e741514 100644 --- a/progs/job/hybrid/gj/32b.sdql +++ b/progs/job/hybrid/gj/32b.sdql @@ -28,7 +28,7 @@ let interm0_trie0 = sum( <- t1_trie0) let ml_off = ml_offsets(ml_i) sum( <- t2_trie1) let t2_off = t2_offsets(t2_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t1.id(t1_off) -> { ml.link_type_id(ml_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { t1.id(t1_off) -> @smallvecdict(4) { -> 1 } } in let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @st(mk.size) { mk.keyword_id(mk_offsets(i)) -> 1 } } in @@ -37,13 +37,14 @@ let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 sum( <- mk_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 if (x1 ∈ lt_trie0) then let lt_trie1 = lt_trie0(x1) in sum( <- mk_trie1) if (x2 ∈ k_trie0) then let k_trie1 = k_trie0(x2) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in let mn_lt = sum( <- lt_trie1) let lt_off = lt_offsets(lt_i) in promote[min_sum]() in promote[min_sum]() diff --git a/progs/job/hybrid/gj/33a.sdql b/progs/job/hybrid/gj/33a.sdql index 1a8df21d..fe401951 100644 --- a/progs/job/hybrid/gj/33a.sdql +++ b/progs/job/hybrid/gj/33a.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- ml_trie0) let lt_trie1 = lt_trie0(x0) in sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in @@ -50,7 +50,7 @@ let interm1_trie0 = sum( <- mi_idx1_trie0) sum( <- mi_idx1_trie2) let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } in let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in @@ -64,7 +64,7 @@ let interm2_trie0 = sum( <- mi_idx2_trie0) sum( <- mi_idx2_trie2) let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in @@ -78,7 +78,7 @@ let interm3_trie0 = sum( <- t1_trie0) sum( <- t1_trie2) let t1_off = t1_offsets(t1_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in @@ -92,7 +92,7 @@ let interm4_trie0 = sum( <- t2_trie0) sum( <- t2_trie2) let t2_off = t2_offsets(t2_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in @@ -108,7 +108,7 @@ let interm5_trie0 = sum( <- mc1_trie0) sum( <- cn1_trie1) let cn1_off = cn1_offsets(cn1_i) sum( <- interm4_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/33b.sdql b/progs/job/hybrid/gj/33b.sdql index fec5f152..934f597d 100644 --- a/progs/job/hybrid/gj/33b.sdql +++ b/progs/job/hybrid/gj/33b.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- ml_trie0) let lt_trie1 = lt_trie0(x0) in sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in @@ -50,7 +50,7 @@ let interm1_trie0 = sum( <- mi_idx1_trie0) sum( <- mi_idx1_trie2) let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } in let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in @@ -64,7 +64,7 @@ let interm2_trie0 = sum( <- mi_idx2_trie0) sum( <- mi_idx2_trie2) let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in @@ -78,7 +78,7 @@ let interm3_trie0 = sum( <- t1_trie0) sum( <- t1_trie2) let t1_off = t1_offsets(t1_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in @@ -92,7 +92,7 @@ let interm4_trie0 = sum( <- t2_trie0) sum( <- t2_trie2) let t2_off = t2_offsets(t2_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in @@ -108,7 +108,7 @@ let interm5_trie0 = sum( <- mc1_trie0) sum( <- cn1_trie1) let cn1_off = cn1_offsets(cn1_i) sum( <- interm4_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/33c.sdql b/progs/job/hybrid/gj/33c.sdql index dd917514..f61081b5 100644 --- a/progs/job/hybrid/gj/33c.sdql +++ b/progs/job/hybrid/gj/33c.sdql @@ -36,7 +36,7 @@ let interm0_trie0 = sum( <- ml_trie0) let lt_trie1 = lt_trie0(x0) in sum( <- ml_trie1) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { ml.movie_id(ml_off) -> @smallvecdict(4) { -> 1 } } in let mi_idx1_trie0 = sum( <- range(mi_idx1.size)) @st(mi_idx1.size) { mi_idx1.info_type_id(mi_idx1_offsets(i)) -> @st(mi_idx1.size) { mi_idx1.movie_id(mi_idx1_offsets(i)) -> @range { i -> 1 } } } in @@ -50,7 +50,7 @@ let interm1_trie0 = sum( <- mi_idx1_trie0) sum( <- mi_idx1_trie2) let mi_idx1_off = mi_idx1_offsets(mi_idx1_i) sum( <- interm0_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx1.size)) { interm0_tuple.col2 -> @smallvecdict(4) { -> 1 } } in let mi_idx2_trie0 = sum( <- range(mi_idx2.size)) @st(mi_idx2.size) { mi_idx2.info_type_id(mi_idx2_offsets(i)) -> @st(mi_idx2.size) { mi_idx2.movie_id(mi_idx2_offsets(i)) -> @range { i -> 1 } } } in @@ -64,7 +64,7 @@ let interm2_trie0 = sum( <- mi_idx2_trie0) sum( <- mi_idx2_trie2) let mi_idx2_off = mi_idx2_offsets(mi_idx2_i) sum( <- interm1_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mi_idx2.size)) { interm1_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t1_trie0 = sum( <- range(t1.size)) @st(t1.size) { t1.kind_id(t1_offsets(i)) -> @st(t1.size) { t1.id(t1_offsets(i)) -> @range { i -> 1 } } } in @@ -78,7 +78,7 @@ let interm3_trie0 = sum( <- t1_trie0) sum( <- t1_trie2) let t1_off = t1_offsets(t1_i) sum( <- interm2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { interm2_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let t2_trie0 = sum( <- range(t2.size)) @st(t2.size) { t2.kind_id(t2_offsets(i)) -> @st(t2.size) { t2.id(t2_offsets(i)) -> @range { i -> 1 } } } in @@ -92,7 +92,7 @@ let interm4_trie0 = sum( <- t2_trie0) sum( <- t2_trie2) let t2_off = t2_offsets(t2_i) sum( <- interm3_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t2.size)) { interm3_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc1_trie0 = sum( <- range(mc1.size)) @st(mc1.size) { mc1.company_id(mc1_offsets(i)) -> @st(mc1.size) { mc1.movie_id(mc1_offsets(i)) -> @range { i -> 1 } } } in @@ -108,7 +108,7 @@ let interm5_trie0 = sum( <- mc1_trie0) sum( <- cn1_trie1) let cn1_off = cn1_offsets(cn1_i) sum( <- interm4_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc1.size)) { interm4_tuple.col1 -> @smallvecdict(4) { -> 1 } } in let mc2_trie0 = sum( <- range(mc2.size)) @st(mc2.size) { mc2.company_id(mc2_offsets(i)) -> @st(mc2.size) { mc2.movie_id(mc2_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/3a.sdql b/progs/job/hybrid/gj/3a.sdql index 05565c0e..9a907952 100644 --- a/progs/job/hybrid/gj/3a.sdql +++ b/progs/job/hybrid/gj/3a.sdql @@ -18,7 +18,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -26,9 +26,10 @@ let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/3a_optimised.sdql b/progs/job/hybrid/gj/3a_optimised.sdql deleted file mode 100644 index 417fc846..00000000 --- a/progs/job/hybrid/gj/3a_optimised.sdql +++ /dev/null @@ -1,35 +0,0 @@ -let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") -let mk_offsets = ext(`SortedIndices`, mk.movie_id) -let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") -let t_offsets = ext(`SortedIndices`, t.id) -let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") -let mi_offsets = ext(`SortedIndices`, mi.movie_id) -let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") -let k_offsets = ext(`SortedIndices`, k.id) - -timer - -let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in -let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in -let interm0_trie0 = sum( <- mk_trie0) - if (x0 ∈ t_trie0) then - let t_trie1 = t_trie0(x0) in - sum( <- mk_trie1) - let mk_off = mk_offsets(mk_i) - sum( <- t_trie1) - let t_off = t_offsets(t_i) in - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } -in - -let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in -let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in -sum( <- mi_trie0) - if (x0 ∈ interm0_trie0) then - let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) - let x1 = interm0_tuple.col1 - if (x1 ∈ k_trie0) then - let k_trie1 = k_trie0(x1) in - let mn_interm0 = in - promote[min_sum]() - diff --git a/progs/job/hybrid/gj/3b.sdql b/progs/job/hybrid/gj/3b.sdql index 2a2d567b..c04ff3a0 100644 --- a/progs/job/hybrid/gj/3b.sdql +++ b/progs/job/hybrid/gj/3b.sdql @@ -18,7 +18,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -26,9 +26,10 @@ let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/3c.sdql b/progs/job/hybrid/gj/3c.sdql index ef666371..7b3763ec 100644 --- a/progs/job/hybrid/gj/3c.sdql +++ b/progs/job/hybrid/gj/3c.sdql @@ -18,7 +18,7 @@ let interm0_trie0 = sum( <- mk_trie0) let mk_off = mk_offsets(mk_i) sum( <- t_trie1) let t_off = t_offsets(t_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> { mk.keyword_id(mk_off) -> @smallvecdict(0) { -> 1 } } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let mi_trie0 = sum( <- range(mi.size)) @st(mi.size) { mi.movie_id(mi_offsets(i)) -> 1 } in @@ -26,9 +26,10 @@ let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 sum( <- mi_trie0) if (x0 ∈ interm0_trie0) then let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 if (x1 ∈ k_trie0) then let k_trie1 = k_trie0(x1) in - let mn_interm0 = sum( <- interm0_trie2) promote[min_sum]() in + let mn_interm0 = in promote[min_sum]() diff --git a/progs/job/hybrid/gj/6a.sdql b/progs/job/hybrid/gj/6a.sdql index e71c530a..7f212064 100644 --- a/progs/job/hybrid/gj/6a.sdql +++ b/progs/job/hybrid/gj/6a.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/6b.sdql b/progs/job/hybrid/gj/6b.sdql index 1405a829..01425f71 100644 --- a/progs/job/hybrid/gj/6b.sdql +++ b/progs/job/hybrid/gj/6b.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/6c.sdql b/progs/job/hybrid/gj/6c.sdql index 2d8f042f..b32bae49 100644 --- a/progs/job/hybrid/gj/6c.sdql +++ b/progs/job/hybrid/gj/6c.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/6d.sdql b/progs/job/hybrid/gj/6d.sdql index 3f697b49..85061421 100644 --- a/progs/job/hybrid/gj/6d.sdql +++ b/progs/job/hybrid/gj/6d.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/6e.sdql b/progs/job/hybrid/gj/6e.sdql index 00c2aa56..d1c560fd 100644 --- a/progs/job/hybrid/gj/6e.sdql +++ b/progs/job/hybrid/gj/6e.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/6f.sdql b/progs/job/hybrid/gj/6f.sdql index 72a08f9c..e13aba22 100644 --- a/progs/job/hybrid/gj/6f.sdql +++ b/progs/job/hybrid/gj/6f.sdql @@ -26,7 +26,7 @@ let interm0_trie0 = sum( <- mk_trie0) let t_off = t_offsets(t_i) sum( <- k_trie1) let k_off = k_offsets(k_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/7a.sdql b/progs/job/hybrid/gj/7a.sdql index b8be41fb..8d7fb6b4 100644 --- a/progs/job/hybrid/gj/7a.sdql +++ b/progs/job/hybrid/gj/7a.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- n_trie0) let n_off = n_offsets(n_i) sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -46,7 +46,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie2) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/7b.sdql b/progs/job/hybrid/gj/7b.sdql index 5b9d5a41..73803d1f 100644 --- a/progs/job/hybrid/gj/7b.sdql +++ b/progs/job/hybrid/gj/7b.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- n_trie0) let n_off = n_offsets(n_i) sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -46,7 +46,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie2) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/7c.sdql b/progs/job/hybrid/gj/7c.sdql index 0d6c216b..109f42b7 100644 --- a/progs/job/hybrid/gj/7c.sdql +++ b/progs/job/hybrid/gj/7c.sdql @@ -30,7 +30,7 @@ let interm0_trie0 = sum( <- n_trie0) let n_off = n_offsets(n_i) sum( <- pi_trie2) let pi_off = pi_offsets(pi_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](pi.size)) { n.id(n_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](n.size)) { n.id(n_off) -> @smallvecdict(4) { -> 1 } } in let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> @range { i -> 1 } } in @@ -46,7 +46,7 @@ let interm1_trie0 = sum( <- t_trie0) let t_off = t_offsets(t_i) sum( <- ml_trie2) let ml_off = ml_offsets(ml_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](ml.size)) { t.id(t_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](t.size)) { t.id(t_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.person_id(ci_offsets(i)) -> 1 } } in diff --git a/progs/job/hybrid/gj/8a.sdql b/progs/job/hybrid/gj/8a.sdql index 858fc7b0..629e401c 100644 --- a/progs/job/hybrid/gj/8a.sdql +++ b/progs/job/hybrid/gj/8a.sdql @@ -22,7 +22,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/8b.sdql b/progs/job/hybrid/gj/8b.sdql index 93c65f94..e544a09d 100644 --- a/progs/job/hybrid/gj/8b.sdql +++ b/progs/job/hybrid/gj/8b.sdql @@ -22,7 +22,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/8c.sdql b/progs/job/hybrid/gj/8c.sdql index d806b911..0365b4ac 100644 --- a/progs/job/hybrid/gj/8c.sdql +++ b/progs/job/hybrid/gj/8c.sdql @@ -22,7 +22,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/8d.sdql b/progs/job/hybrid/gj/8d.sdql index 0cc9cc3f..88ab6173 100644 --- a/progs/job/hybrid/gj/8d.sdql +++ b/progs/job/hybrid/gj/8d.sdql @@ -22,7 +22,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> 1 } } } in diff --git a/progs/job/hybrid/gj/9a.sdql b/progs/job/hybrid/gj/9a.sdql index 3a1be59a..a3f4eb78 100644 --- a/progs/job/hybrid/gj/9a.sdql +++ b/progs/job/hybrid/gj/9a.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/9b.sdql b/progs/job/hybrid/gj/9b.sdql index 08d049f2..3ad2f4ef 100644 --- a/progs/job/hybrid/gj/9b.sdql +++ b/progs/job/hybrid/gj/9b.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/9c.sdql b/progs/job/hybrid/gj/9c.sdql index 9848790e..4eb50aab 100644 --- a/progs/job/hybrid/gj/9c.sdql +++ b/progs/job/hybrid/gj/9c.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in diff --git a/progs/job/hybrid/gj/9d.sdql b/progs/job/hybrid/gj/9d.sdql index 6dad321e..a2409abd 100644 --- a/progs/job/hybrid/gj/9d.sdql +++ b/progs/job/hybrid/gj/9d.sdql @@ -24,7 +24,7 @@ let interm0_trie0 = sum( <- mc_trie0) let cn_trie1 = cn_trie0(x0) in sum( <- mc_trie1) let mc_off = mc_offsets(mc_i) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(0) { -> 1 } } + @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } in let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @st(ci.size) { ci.movie_id(ci_offsets(i)) -> @st(ci.size) { ci.role_id(ci_offsets(i)) -> @st(ci.size) { ci.person_role_id(ci_offsets(i)) -> 1 } } } } in diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index f50bf665..620f5e87 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -800,12 +800,6 @@ class CppCompileTestJOBGJHybrid extends AnyFlatSpec with ParallelTestExecution { CompileHelpers.assertOutputs("progs/job/hybrid/gj/33b.sdql", "results/job/33b.result") CompileHelpers.assertOutputs("progs/job/hybrid/gj/33c.sdql", "results/job/33c.result") } - - // TODO remove this after we "optimise" all the queries - it should "compile and run JOB GJ optimised" taggedAs TestJOBGJHybrid in { - CompileHelpers.assertOutputs("progs/job/hybrid/gj/3a_optimised.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/job/hybrid/gj/13a_optimised.sdql", "results/job/13a.result") - } } // note: DON'T run all cases in parallel - unless you have ~64GB of ram From b21b449b6a9fcf0b3c9070575a5e39597d5016f2 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:44:19 +0000 Subject: [PATCH 67/80] Revised queries (new plans for JOB FJ) --- build.sbt | 1 + progs/job/revised/14a.sdql | 58 +++++++++++++++++ progs/job/revised/15a.sdql | 64 +++++++++++++++++++ progs/job/revised/15b.sdql | 64 +++++++++++++++++++ progs/job/revised/17b.sdql | 51 +++++++++++++++ progs/job/revised/3a.sdql | 33 ++++++++++ progs/job/revised/3b.sdql | 33 ++++++++++ .../scala/sdql/backend/CppCodegenTest.scala | 17 +++++ .../scala/sdql/backend/CppCompileTest.scala | 21 ++++++ 9 files changed, 342 insertions(+) create mode 100644 progs/job/revised/14a.sdql create mode 100644 progs/job/revised/15a.sdql create mode 100644 progs/job/revised/15b.sdql create mode 100644 progs/job/revised/17b.sdql create mode 100644 progs/job/revised/3a.sdql create mode 100644 progs/job/revised/3b.sdql diff --git a/build.sbt b/build.sbt index 5a64c8cb..8c31cb62 100644 --- a/build.sbt +++ b/build.sbt @@ -20,6 +20,7 @@ Test / testOptions ++= Seq( Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJSorting"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJHybrid"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBRevised"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/job/revised/14a.sdql b/progs/job/revised/14a.sdql new file mode 100644 index 00000000..577803c5 --- /dev/null +++ b/progs/job/revised/14a.sdql @@ -0,0 +1,58 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/14a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi_idx = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi_idx.csv") +let mi_idx_offsets = ext(`SortedIndices`, mi_idx.movie_id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/14a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let kt = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/14a/kt.csv") +let kt_offsets = ext(`SortedIndices`, kt.id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/14a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it2 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it2.csv") +let it2_offsets = ext(`SortedIndices`, it2.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/14a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) + +timer + +let mi_idx_trie0 = sum( <- range(mi_idx.size)) @st(mi_idx.size) { mi_idx.movie_id(mi_idx_offsets(i)) -> @range { i -> 1 } } in +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mi_idx_trie0) then + if (x0 ∈ mk_trie0) then + let mi_idx_trie1 = mi_idx_trie0(x0) in + let mk_trie1 = mk_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + sum( <- mi_idx_trie1) + let mi_idx_off = mi_idx_offsets(mi_idx_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let kt_trie0 = sum( <- range(kt.size)) @st(kt.size) { kt.id(kt_offsets(i)) -> 1 } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it2_trie0 = sum( <- range(it2.size)) @st(it2.size) { it2.id(it2_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col3 in + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + let x2 = interm0_tuple.col1 in + if (x2 ∈ k_trie0) then + let k_trie1 = k_trie0(x2) in + let x3 = interm0_tuple.col4 in + if (x3 ∈ it2_trie0) then + let it2_trie1 = it2_trie0(x3) in + let x4 = mi.info_type_id(mi_off) in + if (x4 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x4) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/job/revised/15a.sdql b/progs/job/revised/15a.sdql new file mode 100644 index 00000000..1060f3e3 --- /dev/null +++ b/progs/job/revised/15a.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15a/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15a/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15a/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mk_trie0) then + let mk_trie1 = mk_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/job/revised/15b.sdql b/progs/job/revised/15b.sdql new file mode 100644 index 00000000..03cd4deb --- /dev/null +++ b/progs/job/revised/15b.sdql @@ -0,0 +1,64 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/15b/mc.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/keyword.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let it1 = load[ int}, info: @vec {int -> string}, size: int>]("datasets/job/15b/it1.csv") +let it1_offsets = ext(`SortedIndices`, it1.id) +let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") +let ct_offsets = ext(`SortedIndices`, ct.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/15b/cn.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let at = load[ int}, movie_id: @vec {int -> int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, note: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/aka_title.csv") +let at_offsets = ext(`SortedIndices`, at.movie_id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mk_trie0) then + let mk_trie1 = mk_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let it1_trie0 = sum( <- range(it1.size)) @st(it1.size) { it1.id(it1_offsets(i)) -> 1 } in +let ct_trie0 = sum( <- range(ct.size)) @st(ct.size) { ct.id(ct_offsets(i)) -> 1 } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let at_trie0 = sum( <- range(at.size)) @st(at.size) { at.movie_id(at_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ mc_trie0) then + if (x0 ∈ interm0_trie0) then + let mc_trie1 = mc_trie0(x0) in + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let x2 = mi.info_type_id(mi_off) in + if (x2 ∈ it1_trie0) then + let it1_trie1 = it1_trie0(x2) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x3 = mc.company_type_id(mc_off) in + if (x3 ∈ ct_trie0) then + let ct_trie1 = ct_trie0(x3) in + let x4 = mc.company_id(mc_off) in + if (x4 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x4) in + if (x0 ∈ at_trie0) then + let at_trie1 = at_trie0(x0) in + let mn_mi = in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/job/revised/17b.sdql b/progs/job/revised/17b.sdql new file mode 100644 index 00000000..eb70467b --- /dev/null +++ b/progs/job/revised/17b.sdql @@ -0,0 +1,51 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") +let mc_offsets = ext(`SortedIndices`, mc.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/17b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) +let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/company_name.csv") +let cn_offsets = ext(`SortedIndices`, cn.id) +let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/cast_info.csv") +let ci_offsets = ext(`SortedIndices`, ci.person_id) +let n = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> string}, gender: @vec {int -> string}, name_pcode_cf: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/17b/n.csv") +let n_offsets = ext(`SortedIndices`, n.id) + +timer + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +let t_trie0 = sum( <- range(t.size)) @st(t.size) { t.id(t_offsets(i)) -> 1 } in +let mc_trie0 = sum( <- range(mc.size)) @st(mc.size) { mc.movie_id(mc_offsets(i)) -> @range { i -> 1 } } in +let cn_trie0 = sum( <- range(cn.size)) @st(cn.size) { cn.id(cn_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(mk.size)) + let x0 = mk.keyword_id(mk_off) in + if (x0 ∈ k_trie0) then + let k_trie1 = k_trie0(x0) in + let x1 = mk.movie_id(mk_off) in + if (x1 ∈ t_trie0) then + if (x1 ∈ mc_trie0) then + let t_trie1 = t_trie0(x1) in + let mc_trie1 = mc_trie0(x1) in + sum( <- mc_trie1) + let mc_off = mc_offsets(mc_i) + let x2 = mc.company_id(mc_off) in + if (x2 ∈ cn_trie0) then + let cn_trie1 = cn_trie0(x2) in + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let ci_trie0 = sum( <- range(ci.size)) @st(ci.size) { ci.person_id(ci_offsets(i)) -> @range { i -> 1 } } in +sum( <- range(n.size)) + let x0 = n.id(n_off) in + if (x0 ∈ ci_trie0) then + let ci_trie1 = ci_trie0(x0) in + sum( <- ci_trie1) + let ci_off = ci_offsets(ci_i) + let x1 = ci.movie_id(ci_off) in + if (x1 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x1) in + let mn_n = in + promote[min_sum]() + diff --git a/progs/job/revised/3a.sdql b/progs/job/revised/3a.sdql new file mode 100644 index 00000000..15bc034a --- /dev/null +++ b/progs/job/revised/3a.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3a/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3a/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3a/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mk_trie0) then + let mk_trie1 = mk_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/progs/job/revised/3b.sdql b/progs/job/revised/3b.sdql new file mode 100644 index 00000000..0bfb1717 --- /dev/null +++ b/progs/job/revised/3b.sdql @@ -0,0 +1,33 @@ +let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") +let mk_offsets = ext(`SortedIndices`, mk.movie_id) +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/3b/t.csv") +let t_offsets = ext(`SortedIndices`, t.id) +let mi = load[ int}, movie_id: @vec {int -> int}, info_type_id: @vec {int -> int}, info: @vec {int -> string}, note: @vec {int -> string}, size: int>]("datasets/job/3b/mi.csv") +let mi_offsets = ext(`SortedIndices`, mi.movie_id) +let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/3b/k.csv") +let k_offsets = ext(`SortedIndices`, k.id) + +timer + +let mk_trie0 = sum( <- range(mk.size)) @st(mk.size) { mk.movie_id(mk_offsets(i)) -> @range { i -> 1 } } in +let interm0_trie0 = sum( <- range(t.size)) + let x0 = t.id(t_off) in + if (x0 ∈ mk_trie0) then + let mk_trie1 = mk_trie0(x0) in + sum( <- mk_trie1) + let mk_off = mk_offsets(mk_i) + @phmap(promote[min_sum](1000000) + promote[min_sum](mk.size)) { mk.movie_id(mk_off) -> @smallvecdict(4) { -> 1 } } +in + +let k_trie0 = sum( <- range(k.size)) @st(k.size) { k.id(k_offsets(i)) -> 1 } in +sum( <- range(mi.size)) + let x0 = mi.movie_id(mi_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- interm0_trie1) + let x1 = interm0_tuple.col1 in + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + let mn_interm0 = in + promote[min_sum]() + diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 7874380d..fc231c44 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -1057,6 +1057,23 @@ class CppCodegenTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { } } +class CppCodegenTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { + it should "codegen JOB FJ 3" in { + CodegenHelpers.compilesFile("progs/job/revised/3a.sdql") + CodegenHelpers.compilesFile("progs/job/revised/3b.sdql") + } + it should "codegen JOB FJ 14" in { + CodegenHelpers.compilesFile("progs/job/revised/14a.sdql") + } + it should "codegen JOB FJ 15" in { + CodegenHelpers.compilesFile("progs/job/revised/15a.sdql") + CodegenHelpers.compilesFile("progs/job/revised/15b.sdql") + } + it should "codegen JOB FJ 17" in { + CodegenHelpers.compilesFile("progs/job/revised/17b.sdql") + } +} + class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { it should "codegen LSQB GJ" in { CodegenHelpers.compilesFile("progs/lsqb/gj/q1.sdql") diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 620f5e87..f8d3a4b1 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -967,6 +967,27 @@ class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { } } +class CppCompileTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBRevised extends Tag("TestJOBRevised") + + it should "compile and run JOB FJ 3" taggedAs TestJOBRevised in { + CompileHelpers.assertOutputs("progs/job/revised/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/revised/3b.sdql", "results/job/3b.result") + } + it should "compile and run JOB FJ 14" taggedAs TestJOBRevised in { + CompileHelpers.assertOutputs("progs/job/revised/14a.sdql", "results/job/14a.result") + } + it should "compile and run JOB FJ 15" taggedAs TestJOBRevised in { + CompileHelpers.assertOutputs("progs/job/revised/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/job/revised/15b.sdql", "results/job/15b.result") + } + it should "compile and run JOB FJ 17" taggedAs TestJOBRevised in { + CompileHelpers.assertOutputs("progs/job/revised/17b.sdql", "results/job/17b.result") + } +} + class CppCompileTestLSQBGJ0_1 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { // note: these tests expect LSQB files with scaling factor 0.1 to be present in your datasets folder From eb382e1b95a729f749a3ee16d04db51fb3650d04 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:48:30 +0000 Subject: [PATCH 68/80] Bumped munit version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 8c31cb62..edfa6fd6 100644 --- a/build.sbt +++ b/build.sbt @@ -4,7 +4,7 @@ libraryDependencies ++= Seq( "com.lihaoyi" %% "fastparse" % "3.1.1", "junit" % "junit-dep" % "4.11" % "test", "org.scalatest" % "scalatest_2.13" % "3.2.19" % "test", - "org.scalameta" %% "munit" % "1.0.0" // for pretty printing expressions + "org.scalameta" %% "munit" % "1.0.2" // for pretty printing expressions ) // Note: IntelliJ accepts -P but SBT requires no. of threads From 0a25db465a043db339fd1bbf542de62812a8badf Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:53:20 +0000 Subject: [PATCH 69/80] LSQB FJ hybrid --- progs/lsqb/hybrid/fj/q1.sdql | 70 ++++++++++++++++++++++++++++++++++++ progs/lsqb/hybrid/fj/q2.sdql | 23 ++++++++++++ progs/lsqb/hybrid/fj/q4.sdql | 24 +++++++++++++ progs/lsqb/hybrid/fj/q5.sdql | 20 +++++++++++ 4 files changed, 137 insertions(+) create mode 100644 progs/lsqb/hybrid/fj/q1.sdql create mode 100644 progs/lsqb/hybrid/fj/q2.sdql create mode 100644 progs/lsqb/hybrid/fj/q4.sdql create mode 100644 progs/lsqb/hybrid/fj/q5.sdql diff --git a/progs/lsqb/hybrid/fj/q1.sdql b/progs/lsqb/hybrid/fj/q1.sdql new file mode 100644 index 00000000..97347313 --- /dev/null +++ b/progs/lsqb/hybrid/fj/q1.sdql @@ -0,0 +1,70 @@ +let tagclass = load[ long}, isSubclassOf_TagClassId: @vec {int -> long}, size: int>]("datasets/lsqb/TagClass.csv") in +let tagclass_offsets = ext(`SortedIndices`, tagclass.TagClassId) +let tag = load[ long}, hasType_TagClassId: @vec {int -> long}, size: int>]("datasets/lsqb/Tag.csv") in +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.CommentId) +let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let post_offsets = ext(`SortedIndices`, post.PostId) +let forum = load[ long}, hasModerator_PersonId: @vec {int -> long}, size: int>]("datasets/lsqb/Forum.csv") in +let forum_offsets = ext(`SortedIndices`, forum.ForumId) +let fhp = load[ long}, PersonId: @vec {int -> long}, size: int>]("datasets/lsqb/Forum_hasMember_Person.csv") in +let person = load[ long}, isLocatedIn_CityId: @vec {int -> long}, size: int>]("datasets/lsqb/Person.csv") in +let person_offsets = ext(`SortedIndices`, person.PersonId) +let city = load[ long}, isPartOf_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/City.csv") in +let city_offsets = ext(`SortedIndices`, city.CityId) +let country = load[ long}, isPartOf_ContinentId: @vec {int -> long}, size: int>]("datasets/lsqb/Country.csv") in +let country_offsets = ext(`SortedIndices`, country.CountryId) + +timer + +let tagclass_trie0 = sum( <- range(tagclass.size)) @st(tagclass.size) { tagclass.TagClassId(tagclass_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(tag.size)) + let x0 = tag.hasType_TagClassId(tag_off) in + if (x0 ∈ tagclass_trie0) then + let tagclass_trie1 = tagclass_trie0(x0) in + { tag.TagId(tag_off) -> tagclass_trie1 } + +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.CommentId(comment_offsets(i)) -> @range { i -> 1 } } in +let post_trie0 = sum( <- range(post.size)) @st(post.size) { post.PostId(post_offsets(i)) -> @range { i -> 1 } } in +let forum_trie0 = sum( <- range(forum.size)) @st(forum.size) { forum.ForumId(forum_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- range(cht.size)) + let x0 = cht.TagId(cht_off) in + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + let x1 = cht.CommentId(cht_off) in + if (x1 ∈ comment_trie0) then + let comment_trie1 = comment_trie0(x1) in + sum( <- comment_trie1) + let comment_off = comment_offsets(comment_i) in + let x2 = comment.replyOf_PostId(comment_off) in + if (x2 ∈ post_trie0) then + let post_trie1 = post_trie0(x2) in + sum( <- post_trie1) + let post_off = post_offsets(post_i) in + let x3 = post.Forum_containerOfId(post_off) in + if (x3 ∈ forum_trie0) then + let forum_trie1 = forum_trie0(x3) in + { x3 -> forum_trie1 * interm0_trie1 } + +let person_trie0 = sum( <- range(person.size)) @st(person.size) { person.PersonId(person_offsets(i)) -> @range { i -> 1 } } in +let city_trie0 = sum( <- range(city.size)) @st(city.size) { city.CityId(city_offsets(i)) -> @range { i -> 1 } } in +let country_trie0 = sum( <- range(country.size)) @st(country.size) { country.CountryId(country_offsets(i)) -> 1 } in +sum( <- range(fhp.size)) + let x0 = fhp.ForumId(fhp_off) in + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + let x1 = fhp.PersonId(fhp_off) in + if (x1 ∈ person_trie0) then + let person_trie1 = person_trie0(x1) in + sum( <- person_trie1) + let person_off = person_offsets(person_i) in + let x2 = person.isLocatedIn_CityId(person_off) in + if (x2 ∈ city_trie0) then + let city_trie1 = city_trie0(x2) in + sum( <- city_trie1) + let city_off = city_offsets(city_i) in + let x3 = city.isPartOf_CountryId(city_off) in + if (x3 ∈ country_trie0) then + let country_trie1 = country_trie0(x3) in + interm1_trie1 * country_trie1 \ No newline at end of file diff --git a/progs/lsqb/hybrid/fj/q2.sdql b/progs/lsqb/hybrid/fj/q2.sdql new file mode 100644 index 00000000..593c873f --- /dev/null +++ b/progs/lsqb/hybrid/fj/q2.sdql @@ -0,0 +1,23 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let post_offsets = ext(`SortedIndices`, post.PostId) +let pkp = load[ long}, Person2Id: @vec {int -> long}, size: int>]("datasets/lsqb/Person_knows_Person.csv") in +let pkp_offsets = ext(`SortedIndices`, pkp.Person2Id, pkp.Person1Id) + +timer + +let post_trie0 = sum( <- range(post.size)) @st(post.size) { post.PostId(post_offsets(i)) -> @range { i -> 1 } } in +let pkp_trie0 = sum( <- range(pkp.size)) @st(pkp.size) { pkp.Person2Id(pkp_offsets(i)) -> @st { pkp.Person1Id(pkp_offsets(i)) -> 1 } } in +sum( <- range(comment.size)) + let x0 = comment.replyOf_PostId(comment_off) in + if (x0 ∈ post_trie0) then + let post_trie1 = post_trie0(x0) in + sum( <- post_trie1) + let post_off = post_offsets(post_i) in + let x1 = post.hasCreator_PersonId(post_off) in + if (x1 ∈ pkp_trie0) then + let pkp_trie1 = pkp_trie0(x1) in + let x2 = comment.hasCreator_PersonId(comment_off) in + if (x2 ∈ pkp_trie1) then + let pkp_trie2 = pkp_trie1(x2) in + pkp_trie2 \ No newline at end of file diff --git a/progs/lsqb/hybrid/fj/q4.sdql b/progs/lsqb/hybrid/fj/q4.sdql new file mode 100644 index 00000000..91152d86 --- /dev/null +++ b/progs/lsqb/hybrid/fj/q4.sdql @@ -0,0 +1,24 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +let pht_offsets = ext(`SortedIndices`, pht.PostId) +let plp = load[ long}, PostId: @vec {int -> long}, size: int>]("datasets/lsqb/Person_likes_Post.csv") in +let plp_offsets = ext(`SortedIndices`, plp.PostId) + +timer + +let pht_trie0 = sum( <- range(pht.size)) @st(pht.size) { pht.PostId(pht_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- range(post.size)) + let x0 = post.PostId(post_off) in + if (x0 ∈ pht_trie0) then + let pht_trie1 = pht_trie0(x0) in + { x0 -> pht_trie1 } + + +let plp_trie0 = sum( <- range(plp.size)) @st(plp.size) { plp.PostId(plp_offsets(i)) -> 1 } in +sum( <- range(comment.size)) + let x0 = comment.replyOf_PostId(comment_off) in + if ((x0 ∈ interm0_trie0) && (x0 ∈ plp_trie0)) then + let interm0_trie1 = interm0_trie0(x0) in + let plp_trie1 = plp_trie0(x0) in + interm0_trie1 * plp_trie1 \ No newline at end of file diff --git a/progs/lsqb/hybrid/fj/q5.sdql b/progs/lsqb/hybrid/fj/q5.sdql new file mode 100644 index 00000000..e6d11f32 --- /dev/null +++ b/progs/lsqb/hybrid/fj/q5.sdql @@ -0,0 +1,20 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.CommentId) +let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in +let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +let pht_offsets = ext(`SortedIndices`, pht.PostId) + +timer + +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.CommentId(comment_offsets(i)) -> @range { i -> 1 } } in +let pht_trie0 = sum( <- range(pht.size)) @st(pht.size) { pht.PostId(pht_offsets(i)) -> 1 } in +sum( <- range(cht.size)) + let x0 = cht.CommentId(cht_off) in + if (x0 ∈ comment_trie0) then + let comment_trie1 = comment_trie0(x0) in + sum( <- comment_trie1) + let comment_off = comment_offsets(comment_i) in + let x1 = comment.replyOf_PostId(comment_off) in + if (x1 ∈ pht_trie0) then + let pht_trie1 = pht_trie0(x1) in + pht_trie1 \ No newline at end of file From afaf9e19418a6754101a518200c651f036ac5796 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 19:04:33 +0000 Subject: [PATCH 70/80] LSQB GJ hybrid --- progs/lsqb/hybrid/gj/q1.sdql | 67 ++++++++++++++++++++++++++++++++++++ progs/lsqb/hybrid/gj/q2.sdql | 22 ++++++++++++ progs/lsqb/hybrid/gj/q4.sdql | 26 ++++++++++++++ progs/lsqb/hybrid/gj/q5.sdql | 19 ++++++++++ 4 files changed, 134 insertions(+) create mode 100644 progs/lsqb/hybrid/gj/q1.sdql create mode 100644 progs/lsqb/hybrid/gj/q2.sdql create mode 100644 progs/lsqb/hybrid/gj/q4.sdql create mode 100644 progs/lsqb/hybrid/gj/q5.sdql diff --git a/progs/lsqb/hybrid/gj/q1.sdql b/progs/lsqb/hybrid/gj/q1.sdql new file mode 100644 index 00000000..21f1a709 --- /dev/null +++ b/progs/lsqb/hybrid/gj/q1.sdql @@ -0,0 +1,67 @@ +let tagclass = load[ long}, isSubclassOf_TagClassId: @vec {int -> long}, size: int>]("datasets/lsqb/TagClass.csv") in +let tagclass_offsets = ext(`SortedIndices`, tagclass.TagClassId) +let tag = load[ long}, hasType_TagClassId: @vec {int -> long}, size: int>]("datasets/lsqb/Tag.csv") in +let tag_offsets = ext(`SortedIndices`, tag.hasType_TagClassId) +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.CommentId, comment.replyOf_PostId) +let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in +let cht_offsets = ext(`SortedIndices`, cht.TagId, cht.CommentId) +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let post_offsets = ext(`SortedIndices`, post.PostId) +let forum = load[ long}, hasModerator_PersonId: @vec {int -> long}, size: int>]("datasets/lsqb/Forum.csv") in +let forum_offsets = ext(`SortedIndices`, forum.ForumId) +let fhp = load[ long}, PersonId: @vec {int -> long}, size: int>]("datasets/lsqb/Forum_hasMember_Person.csv") in +let fhp_offsets = ext(`SortedIndices`, fhp.ForumId, fhp.PersonId) +let person = load[ long}, isLocatedIn_CityId: @vec {int -> long}, size: int>]("datasets/lsqb/Person.csv") in +let person_offsets = ext(`SortedIndices`, person.PersonId, person.isLocatedIn_CityId) +let city = load[ long}, isPartOf_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/City.csv") in +let city_offsets = ext(`SortedIndices`, city.CityId, city.isPartOf_CountryId) +let country = load[ long}, isPartOf_ContinentId: @vec {int -> long}, size: int>]("datasets/lsqb/Country.csv") in +let country_offsets = ext(`SortedIndices`, country.CountryId) + +timer + +let tag_trie0 = sum( <- range(tag.size)) @st(tag.size) { tag.hasType_TagClassId(tag_offsets(i)) -> @range { i -> 1 } } in +let tagclass_trie0 = sum( <- range(tagclass.size)) @st(tagclass.size) { tagclass.TagClassId(tagclass_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- tag_trie0) + if (x0 ∈ tagclass_trie0) then + let tagclass_trie1 = tagclass_trie0(x0) in + sum ( <- tag_trie1) + let tag_off = tag_offsets(tag_i) + { tag.TagId(tag_off) -> tagclass_trie1 } + +let cht_trie0 = sum( <- range(cht.size)) @st(cht.size) { cht.TagId(i) -> @st { cht.CommentId(i) -> 1 } } in // isn't using cht_offsets +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.CommentId(comment_offsets(i)) -> @st { comment.replyOf_PostId(comment_offsets(i)) -> 1 } } in +let post_trie0 = sum( <- range(post.size)) @st(post.size) { post.PostId(post_offsets(i)) -> @st { post.Forum_containerOfId(post_offsets(i)) -> 1 } } in +let forum_trie0 = sum( <- range(forum.size)) @st(forum.size) { forum.ForumId(forum_offsets(i)) -> 1 } in +let interm1_trie0 = sum( <- cht_trie0) + if (x0 ∈ interm0_trie0) then + let interm0_trie1 = interm0_trie0(x0) in + sum( <- cht_trie1) + if (x1 ∈ comment_trie0) then + let comment_trie1 = comment_trie0(x1) in + sum( <- comment_trie1) + if (x2 ∈ post_trie0) then + let post_trie1 = post_trie0(x2) in + sum( <- post_trie1) + if (x3 ∈ forum_trie0) then + let forum_trie1 = forum_trie0(x3) in + { x3 -> cht_trie2 * comment_trie2 * post_trie2 * forum_trie1 * interm0_trie1 } + +let fhp_trie0 = sum( <- range(fhp.size)) @st(fhp.size) { fhp.ForumId(i) -> @st { fhp.PersonId(i) -> 1 } } in // isn't using fhp_offsets +let person_trie0 = sum( <- range(person.size)) @st(person.size) { person.PersonId(person_offsets(i)) -> @st { person.isLocatedIn_CityId(person_offsets(i)) -> 1 } } in +let city_trie0 = sum( <- range(city.size)) @st(city.size) { city.CityId(city_offsets(i)) -> @st { city.isPartOf_CountryId(city_offsets(i)) -> 1 } } in +let country_trie0 = sum( <- range(country.size)) @st(country.size) { country.CountryId(country_offsets(i)) -> 1 } in +sum( <- fhp_trie0) + if (x0 ∈ interm1_trie0) then + let interm1_trie1 = interm1_trie0(x0) in + sum( <- fhp_trie1) + if (x1 ∈ person_trie0) then + let person_trie1 = person_trie0(x1) in + sum( <- person_trie1) + if (x2 ∈ city_trie0) then + let city_trie1 = city_trie0(x2) in + sum( <- city_trie1) + if (x3 ∈ country_trie0) then + let country_trie1 = country_trie0(x3) in + fhp_trie2 * interm1_trie1 * person_trie2 * city_trie2 * country_trie1 \ No newline at end of file diff --git a/progs/lsqb/hybrid/gj/q2.sdql b/progs/lsqb/hybrid/gj/q2.sdql new file mode 100644 index 00000000..a8c436c8 --- /dev/null +++ b/progs/lsqb/hybrid/gj/q2.sdql @@ -0,0 +1,22 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.replyOf_PostId, comment.hasCreator_PersonId) +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let post_offsets = ext(`SortedIndices`, post.PostId) +let pkp = load[ long}, Person2Id: @vec {int -> long}, size: int>]("datasets/lsqb/Person_knows_Person.csv") in +let pkp_offsets = ext(`SortedIndices`, pkp.Person2Id, pkp.Person1Id) + +timer + +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.replyOf_PostId(comment_offsets(i)) -> @st { comment.hasCreator_PersonId(comment_offsets(i)) -> 1 } } in +let post_trie0 = sum( <- range(post.size)) @st(post.size) { post.PostId(post_offsets(i)) -> @st { post.hasCreator_PersonId(post_offsets(i)) -> 1 } } in +let pkp_trie0 = sum( <- range(pkp.size)) @st(pkp.size) { pkp.Person2Id(pkp_offsets(i)) -> @st { pkp.Person1Id(pkp_offsets(i)) -> 1 } } in +sum( <- comment_trie0) + if (x0 ∈ post_trie0) then + let post_trie1 = post_trie0(x0) in + sum( <- post_trie1) + if (x1 ∈ pkp_trie0) then + let pkp_trie1 = pkp_trie0(x1) in + sum( <- comment_trie1) + if (x2 ∈ pkp_trie1) then + let pkp_trie2 = pkp_trie1(x2) in + comment_trie2 * post_trie2 * pkp_trie2 \ No newline at end of file diff --git a/progs/lsqb/hybrid/gj/q4.sdql b/progs/lsqb/hybrid/gj/q4.sdql new file mode 100644 index 00000000..d57b2b9f --- /dev/null +++ b/progs/lsqb/hybrid/gj/q4.sdql @@ -0,0 +1,26 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.replyOf_PostId) +let post = load[ long}, hasCreator_PersonId: @vec {int -> long}, Forum_containerOfId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, size: int>]("datasets/lsqb/Post.csv") in +let post_offsets = ext(`SortedIndices`, post.PostId) +let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +let pht_offsets = ext(`SortedIndices`, pht.PostId) +let plp = load[ long}, PostId: @vec {int -> long}, size: int>]("datasets/lsqb/Person_likes_Post.csv") in +let plp_offsets = ext(`SortedIndices`, plp.PostId) + +timer + +let post_trie0 = sum( <- range(post.size)) @st(post.size) { post.PostId(post_offsets(i)) -> 1 } in +let pht_trie0 = sum( <- range(pht.size)) @st(pht.size) { pht.PostId(pht_offsets(i)) -> 1 } in +let interm0_trie0 = sum( <- post_trie0) + if (x0 ∈ pht_trie0) then + let pht_trie1 = pht_trie0(x0) in + { x0 -> pht_trie1 * post_trie1 } + + +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.replyOf_PostId(comment_offsets(i)) -> 1 } in +let plp_trie0 = sum( <- range(plp.size)) @st(plp.size) { plp.PostId(plp_offsets(i)) -> 1 } in +sum( <- comment_trie0) + if ((x0 ∈ interm0_trie0) && (x0 ∈ plp_trie0)) then + let interm0_trie1 = interm0_trie0(x0) in + let plp_trie1 = plp_trie0(x0) in + interm0_trie1 * plp_trie1 * comment_trie1 diff --git a/progs/lsqb/hybrid/gj/q5.sdql b/progs/lsqb/hybrid/gj/q5.sdql new file mode 100644 index 00000000..bffba4c9 --- /dev/null +++ b/progs/lsqb/hybrid/gj/q5.sdql @@ -0,0 +1,19 @@ +let comment = load[ long}, hasCreator_PersonId: @vec {int -> long}, isLocatedIn_CountryId: @vec {int -> long}, replyOf_PostId: @vec {int -> long}, replyOf_CommentId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment.csv") in +let comment_offsets = ext(`SortedIndices`, comment.CommentId, comment.replyOf_PostId) +let cht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Comment_hasTag_Tag.csv") in +let cht_offsets = ext(`SortedIndices`, cht.CommentId) +let pht = load[ long}, TagId: @vec {int -> long}, size: int>]("datasets/lsqb/Post_hasTag_Tag.csv") in +let pht_offsets = ext(`SortedIndices`, pht.PostId) + +timer + +let comment_trie0 = sum( <- range(comment.size)) @st(comment.size) { comment.CommentId(comment_offsets(i)) -> @st { comment.replyOf_PostId(comment_offsets(i)) -> 1 } } in +let cht_trie0 = sum( <- range(cht.size)) @st(cht.size) { cht.CommentId(cht_offsets(i)) -> 1 } in +let pht_trie0 = sum( <- range(pht.size)) @st(pht.size) { pht.PostId(pht_offsets(i)) -> 1 } in +sum( <- cht_trie0) + if (x0 ∈ comment_trie0) then + let comment_trie1 = comment_trie0(x0) in + sum( <- comment_trie1) + if (x1 ∈ pht_trie0) then + let pht_trie1 = pht_trie0(x1) in + comment_trie2 * pht_trie1 * cht_trie1 \ No newline at end of file From b9ce440ec6e75a776f830361bcf373ad530b1762 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:21:55 +0000 Subject: [PATCH 71/80] Added unit tests --- .../scala/sdql/backend/CppCodegenTest.scala | 8 +++++ .../scala/sdql/backend/CppCompileTest.scala | 32 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index fc231c44..dff57da8 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -1077,15 +1077,23 @@ class CppCodegenTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { class CppCodegenTestLSQB extends AnyFlatSpec with ParallelTestExecution { it should "codegen LSQB GJ" in { CodegenHelpers.compilesFile("progs/lsqb/gj/q1.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/gj/q1.sdql") CodegenHelpers.compilesFile("progs/lsqb/gj/q2.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/gj/q2.sdql") CodegenHelpers.compilesFile("progs/lsqb/gj/q4.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/gj/q4.sdql") CodegenHelpers.compilesFile("progs/lsqb/gj/q5.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/gj/q5.sdql") } it should "codegen LSQB FJ" in { CodegenHelpers.compilesFile("progs/lsqb/fj/q1.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/fj/q1.sdql") CodegenHelpers.compilesFile("progs/lsqb/fj/q2.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/fj/q2.sdql") CodegenHelpers.compilesFile("progs/lsqb/fj/q4.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/fj/q4.sdql") CodegenHelpers.compilesFile("progs/lsqb/fj/q5.sdql") + CodegenHelpers.compilesFile("progs/lsqb/hybrid/fj/q5.sdql") } } diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index f8d3a4b1..6eb3454b 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -998,15 +998,19 @@ class CppCompileTestLSQBGJ0_1 extends AnyFlatSpec with ParallelTestExecution wit it should "compile and run LSQB GJ Q1 SF=0.1" taggedAs TestLSQBGJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q1.sdql", "results/lsqb/SF_0.1/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q1.sdql", "results/lsqb/SF_0.1/q1.result") } it should "compile and run LSQB GJ Q2 SF=0.1" taggedAs TestLSQBGJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q2.sdql", "results/lsqb/SF_0.1/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q2.sdql", "results/lsqb/SF_0.1/q2.result") } it should "compile and run LSQB GJ Q4 SF=0.1" taggedAs TestLSQBGJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q4.sdql", "results/lsqb/SF_0.1/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q4.sdql", "results/lsqb/SF_0.1/q4.result") } it should "compile and run LSQB GJ Q5 SF=0.1" taggedAs TestLSQBGJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q5.sdql", "results/lsqb/SF_0.1/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q5.sdql", "results/lsqb/SF_0.1/q5.result") } } class CppCompileTestLSQBFJ0_1 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { @@ -1019,15 +1023,19 @@ class CppCompileTestLSQBFJ0_1 extends AnyFlatSpec with ParallelTestExecution wit it should "compile and run LSQB FJ Q1 SF=0.1" taggedAs TestLSQBFJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q1.sdql", "results/lsqb/SF_0.1/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q1.sdql", "results/lsqb/SF_0.1/q1.result") } it should "compile and run LSQB FJ Q2 SF=0.1" taggedAs TestLSQBFJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q2.sdql", "results/lsqb/SF_0.1/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q2.sdql", "results/lsqb/SF_0.1/q2.result") } it should "compile and run LSQB FJ Q4 SF=0.1" taggedAs TestLSQBFJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q4.sdql", "results/lsqb/SF_0.1/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q4.sdql", "results/lsqb/SF_0.1/q4.result") } it should "compile and run LSQB FJ Q5 SF=0.1" taggedAs TestLSQBFJ0_1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q5.sdql", "results/lsqb/SF_0.1/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q5.sdql", "results/lsqb/SF_0.1/q5.result") } } @@ -1041,15 +1049,19 @@ class CppCompileTestLSQBGJ0_3 extends AnyFlatSpec with ParallelTestExecution wit it should "compile and run LSQB GJ Q1 SF=0.3" taggedAs TestLSQBGJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q1.sdql", "results/lsqb/SF_0.3/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q1.sdql", "results/lsqb/SF_0.3/q1.result") } it should "compile and run LSQB GJ Q2 SF=0.3" taggedAs TestLSQBGJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q2.sdql", "results/lsqb/SF_0.3/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q2.sdql", "results/lsqb/SF_0.3/q2.result") } it should "compile and run LSQB GJ Q4 SF=0.3" taggedAs TestLSQBGJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q4.sdql", "results/lsqb/SF_0.3/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q4.sdql", "results/lsqb/SF_0.3/q4.result") } it should "compile and run LSQB GJ Q5 SF=0.3" taggedAs TestLSQBGJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q5.sdql", "results/lsqb/SF_0.3/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q5.sdql", "results/lsqb/SF_0.3/q5.result") } } class CppCompileTestLSQBFJ0_3 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { @@ -1062,15 +1074,19 @@ class CppCompileTestLSQBFJ0_3 extends AnyFlatSpec with ParallelTestExecution wit it should "compile and run LSQB FJ Q1 SF=0.3" taggedAs TestLSQBFJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q1.sdql", "results/lsqb/SF_0.3/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q1.sdql", "results/lsqb/SF_0.3/q1.result") } it should "compile and run LSQB FJ Q2 SF=0.3" taggedAs TestLSQBFJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q2.sdql", "results/lsqb/SF_0.3/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q2.sdql", "results/lsqb/SF_0.3/q2.result") } it should "compile and run LSQB FJ Q4 SF=0.3" taggedAs TestLSQBFJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q4.sdql", "results/lsqb/SF_0.3/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q4.sdql", "results/lsqb/SF_0.3/q4.result") } it should "compile and run LSQB FJ Q5 SF=0.3" taggedAs TestLSQBFJ0_3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q5.sdql", "results/lsqb/SF_0.3/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q5.sdql", "results/lsqb/SF_0.3/q5.result") } } @@ -1084,15 +1100,19 @@ class CppCompileTestLSQBGJ1 extends AnyFlatSpec with ParallelTestExecution with it should "compile and run LSQB GJ Q1 SF=1" taggedAs TestLSQBGJ1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q1.sdql", "results/lsqb/SF_1/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q1.sdql", "results/lsqb/SF_1/q1.result") } it should "compile and run LSQB GJ Q2 SF=1" taggedAs TestLSQBGJ1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q2.sdql", "results/lsqb/SF_1/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q2.sdql", "results/lsqb/SF_1/q2.result") } it should "compile and run LSQB GJ Q4 SF=1" taggedAs TestLSQBGJ1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q4.sdql", "results/lsqb/SF_1/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q4.sdql", "results/lsqb/SF_1/q4.result") } it should "compile and run LSQB GJ Q5 SF=1" taggedAs TestLSQBGJ1 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q5.sdql", "results/lsqb/SF_1/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q5.sdql", "results/lsqb/SF_1/q5.result") } } class CppCompileTestLSQBFJ1 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { @@ -1105,15 +1125,19 @@ class CppCompileTestLSQBFJ1 extends AnyFlatSpec with ParallelTestExecution with it should "compile and run LSQB FJ Q1 SF=1" taggedAs TestLSQBFJ1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q1.sdql", "results/lsqb/SF_1/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q1.sdql", "results/lsqb/SF_1/q1.result") } it should "compile and run LSQB FJ Q2 SF=1" taggedAs TestLSQBFJ1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q2.sdql", "results/lsqb/SF_1/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q2.sdql", "results/lsqb/SF_1/q2.result") } it should "compile and run LSQB FJ Q4 SF=1" taggedAs TestLSQBFJ1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q4.sdql", "results/lsqb/SF_1/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q4.sdql", "results/lsqb/SF_1/q4.result") } it should "compile and run LSQB FJ Q5 SF=1" taggedAs TestLSQBFJ1 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q5.sdql", "results/lsqb/SF_1/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q5.sdql", "results/lsqb/SF_1/q5.result") } } @@ -1127,15 +1151,19 @@ class CppCompileTestLSQBGJ3 extends AnyFlatSpec with ParallelTestExecution with it should "compile and run LSQB GJ Q1 SF=3" taggedAs TestLSQBGJ3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q1.sdql", "results/lsqb/SF_3/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q1.sdql", "results/lsqb/SF_3/q1.result") } it should "compile and run LSQB GJ Q2 SF=3" taggedAs TestLSQBGJ3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q2.sdql", "results/lsqb/SF_3/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q2.sdql", "results/lsqb/SF_3/q2.result") } it should "compile and run LSQB GJ Q4 SF=3" taggedAs TestLSQBGJ3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q4.sdql", "results/lsqb/SF_3/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q4.sdql", "results/lsqb/SF_3/q4.result") } it should "compile and run LSQB GJ Q5 SF=3" taggedAs TestLSQBGJ3 in { CompileHelpers.assertOutputs("progs/lsqb/gj/q5.sdql", "results/lsqb/SF_3/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/gj/q5.sdql", "results/lsqb/SF_3/q5.result") } } class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with BeforeAndAfterAll { @@ -1148,15 +1176,19 @@ class CppCompileTestLSQBFJ3 extends AnyFlatSpec with ParallelTestExecution with it should "compile and run LSQB FJ Q1 SF=3" taggedAs TestLSQBFJ3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q1.sdql", "results/lsqb/SF_3/q1.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q1.sdql", "results/lsqb/SF_3/q1.result") } it should "compile and run LSQB FJ Q2 SF=3" taggedAs TestLSQBFJ3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q2.sdql", "results/lsqb/SF_3/q2.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q2.sdql", "results/lsqb/SF_3/q2.result") } it should "compile and run LSQB FJ Q4 SF=3" taggedAs TestLSQBFJ3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q4.sdql", "results/lsqb/SF_3/q4.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q4.sdql", "results/lsqb/SF_3/q4.result") } it should "compile and run LSQB FJ Q5 SF=3" taggedAs TestLSQBFJ3 in { CompileHelpers.assertOutputs("progs/lsqb/fj/q5.sdql", "results/lsqb/SF_3/q5.result") + CompileHelpers.assertOutputs("progs/lsqb/hybrid/fj/q5.sdql", "results/lsqb/SF_3/q5.result") } } From 3cf42249cd8d65aa1b55e44d95b022ba9270e2ea Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:37:02 +0000 Subject: [PATCH 72/80] Updated revised path (for consistency) --- build.sbt | 2 +- progs/job/revised/{ => fj}/14a.sdql | 0 progs/job/revised/{ => fj}/15a.sdql | 0 progs/job/revised/{ => fj}/15b.sdql | 0 progs/job/revised/{ => fj}/17b.sdql | 0 progs/job/revised/{ => fj}/3a.sdql | 0 progs/job/revised/{ => fj}/3b.sdql | 0 .../scala/sdql/backend/CppCodegenTest.scala | 12 +++++----- .../scala/sdql/backend/CppCompileTest.scala | 24 +++++++++---------- 9 files changed, 19 insertions(+), 19 deletions(-) rename progs/job/revised/{ => fj}/14a.sdql (100%) rename progs/job/revised/{ => fj}/15a.sdql (100%) rename progs/job/revised/{ => fj}/15b.sdql (100%) rename progs/job/revised/{ => fj}/17b.sdql (100%) rename progs/job/revised/{ => fj}/3a.sdql (100%) rename progs/job/revised/{ => fj}/3b.sdql (100%) diff --git a/build.sbt b/build.sbt index edfa6fd6..0d72e966 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ Test / testOptions ++= Seq( Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJSorting"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJHybrid"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), - Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBRevised"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJRevised"), // require converting from Parquet to CSV the LSQB datasets of https://github.com/remysucre/gj-vs-binary Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBGJ0_1"), Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestLSQBFJ0_1"), diff --git a/progs/job/revised/14a.sdql b/progs/job/revised/fj/14a.sdql similarity index 100% rename from progs/job/revised/14a.sdql rename to progs/job/revised/fj/14a.sdql diff --git a/progs/job/revised/15a.sdql b/progs/job/revised/fj/15a.sdql similarity index 100% rename from progs/job/revised/15a.sdql rename to progs/job/revised/fj/15a.sdql diff --git a/progs/job/revised/15b.sdql b/progs/job/revised/fj/15b.sdql similarity index 100% rename from progs/job/revised/15b.sdql rename to progs/job/revised/fj/15b.sdql diff --git a/progs/job/revised/17b.sdql b/progs/job/revised/fj/17b.sdql similarity index 100% rename from progs/job/revised/17b.sdql rename to progs/job/revised/fj/17b.sdql diff --git a/progs/job/revised/3a.sdql b/progs/job/revised/fj/3a.sdql similarity index 100% rename from progs/job/revised/3a.sdql rename to progs/job/revised/fj/3a.sdql diff --git a/progs/job/revised/3b.sdql b/progs/job/revised/fj/3b.sdql similarity index 100% rename from progs/job/revised/3b.sdql rename to progs/job/revised/fj/3b.sdql diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index dff57da8..76ea12f5 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -1059,18 +1059,18 @@ class CppCodegenTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { class CppCodegenTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 3" in { - CodegenHelpers.compilesFile("progs/job/revised/3a.sdql") - CodegenHelpers.compilesFile("progs/job/revised/3b.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/3a.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/3b.sdql") } it should "codegen JOB FJ 14" in { - CodegenHelpers.compilesFile("progs/job/revised/14a.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/14a.sdql") } it should "codegen JOB FJ 15" in { - CodegenHelpers.compilesFile("progs/job/revised/15a.sdql") - CodegenHelpers.compilesFile("progs/job/revised/15b.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/15a.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/15b.sdql") } it should "codegen JOB FJ 17" in { - CodegenHelpers.compilesFile("progs/job/revised/17b.sdql") + CodegenHelpers.compilesFile("progs/job/revised/fj/17b.sdql") } } diff --git a/src/test/scala/sdql/backend/CppCompileTest.scala b/src/test/scala/sdql/backend/CppCompileTest.scala index 6eb3454b..94fc1f51 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -967,24 +967,24 @@ class CppCompileTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { } } -class CppCompileTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { +class CppCompileTestJOBFJRevised extends AnyFlatSpec with ParallelTestExecution { // note: these tests expect JOB files to be present in your datasets folder - private object TestJOBRevised extends Tag("TestJOBRevised") + private object TestJOBFJRevised extends Tag("TestJOBFJRevised") - it should "compile and run JOB FJ 3" taggedAs TestJOBRevised in { - CompileHelpers.assertOutputs("progs/job/revised/3a.sdql", "results/job/3a.result") - CompileHelpers.assertOutputs("progs/job/revised/3b.sdql", "results/job/3b.result") + it should "compile and run JOB FJ 3" taggedAs TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/3a.sdql", "results/job/3a.result") + CompileHelpers.assertOutputs("progs/job/revised/fj/3b.sdql", "results/job/3b.result") } - it should "compile and run JOB FJ 14" taggedAs TestJOBRevised in { - CompileHelpers.assertOutputs("progs/job/revised/14a.sdql", "results/job/14a.result") + it should "compile and run JOB FJ 14" taggedAs TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/14a.sdql", "results/job/14a.result") } - it should "compile and run JOB FJ 15" taggedAs TestJOBRevised in { - CompileHelpers.assertOutputs("progs/job/revised/15a.sdql", "results/job/15a.result") - CompileHelpers.assertOutputs("progs/job/revised/15b.sdql", "results/job/15b.result") + it should "compile and run JOB FJ 15" taggedAs TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/15a.sdql", "results/job/15a.result") + CompileHelpers.assertOutputs("progs/job/revised/fj/15b.sdql", "results/job/15b.result") } - it should "compile and run JOB FJ 17" taggedAs TestJOBRevised in { - CompileHelpers.assertOutputs("progs/job/revised/17b.sdql", "results/job/17b.result") + it should "compile and run JOB FJ 17" taggedAs TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/17b.sdql", "results/job/17b.result") } } From bac5a360ee4259f31dcb9a06eb3569b5047ef8e0 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 28 Nov 2024 12:28:36 +0000 Subject: [PATCH 73/80] Performance fix (affected e.g. FJ sorting 18a) --- src/main/scala/sdql/backend/CppCodegen.scala | 3 +-- src/main/scala/sdql/ir/Type.scala | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/sdql/backend/CppCodegen.scala b/src/main/scala/sdql/backend/CppCodegen.scala index ea357863..77642e02 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -31,8 +31,7 @@ object CppCodegen { s"constexpr auto $name = ${run(e1)(Map(), isTernary = false, benchmarkRuns)};" case _ => val isRetrieval = cond(e1) { case _: FieldNode | _: Get => true } - def isDict = cond(TypeInference.run(e1)) { case _: DictType => true } - val cppName = if (isRetrieval && isDict) s"&$name" else name + val cppName = if (isRetrieval && !TypeInference.run(e1).isScalar) s"&$name" else name val semicolon = if (cond(e1) { case _: Initialise => true }) "" else ";" s"auto $cppName = ${run(e1)(typesCtx, isTernary, benchmarkRuns)}$semicolon" } diff --git a/src/main/scala/sdql/ir/Type.scala b/src/main/scala/sdql/ir/Type.scala index d01a1848..9997463b 100644 --- a/src/main/scala/sdql/ir/Type.scala +++ b/src/main/scala/sdql/ir/Type.scala @@ -63,8 +63,9 @@ object VarCharType { def apply(maxLen: Int): Type = StringType(Some(maxLen)) } object ScalarType { def unapply(tp: Type): Option[Type] = Some(tp).filter(isScalar) def isScalar(tp: Type): Boolean = tp match { - case RealType | IntType | _: StringType | DateType | BoolType => true - case _ => false + case RealType | IntType | LongType | _: StringType | DateType | BoolType => true + case _: DictType | _: RecordType => false + case _: CustomSemiRingType => false // could be handled more precisely } } From cafbf51151d23b76bbeb64f0f803a2e3819e4234 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 28 Nov 2024 14:11:43 +0000 Subject: [PATCH 74/80] Delete old leftover queries from FJ sorting --- progs/job/sorting/fj/10b.sdql | 41 ----------------------------------- progs/job/sorting/fj/2c.sdql | 26 ---------------------- progs/job/sorting/fj/32a.sdql | 38 -------------------------------- 3 files changed, 105 deletions(-) delete mode 100644 progs/job/sorting/fj/10b.sdql delete mode 100644 progs/job/sorting/fj/2c.sdql delete mode 100644 progs/job/sorting/fj/32a.sdql diff --git a/progs/job/sorting/fj/10b.sdql b/progs/job/sorting/fj/10b.sdql deleted file mode 100644 index 11ca2a59..00000000 --- a/progs/job/sorting/fj/10b.sdql +++ /dev/null @@ -1,41 +0,0 @@ -let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") -let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10b/t.csv") -let ct = load[ int}, kind: @vec {int -> string}, size: int>]("datasets/job/company_type.csv") -let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/10b/cn.csv") -let ci = load[ int}, person_id: @vec {int -> int}, movie_id: @vec {int -> int}, person_role_id: @vec {int -> int}, note: @vec {int -> string}, nr_order: @vec {int -> int}, role_id: @vec {int -> int}, size: int>]("datasets/job/10b/ci.csv") -let rt = load[ int}, role: @vec {int -> string}, size: int>]("datasets/job/10b/rt.csv") -let chn = load[ int}, name: @vec {int -> string}, imdb_index: @vec {int -> string}, imdb_id: @vec {int -> int}, name_pcode_cf: @vec {int -> string}, surname_pcode: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/char_name.csv") - -let ct_trie0 = sum( <- range(ct.size)) @phmap(ct.size) { unique(ct.id(i)) -> 1 } in -let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in -let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in -let interm0_trie0 = sum( <- range(mc.size)) - let x0 = mc.company_type_id(mc_off) in - if (x0 ∈ ct_trie0) then - let ct_trie1 = ct_trie0(x0) in - let x1 = mc.company_id(mc_off) in - if (x1 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x1) in - let x2 = mc.movie_id(mc_off) in - if (x2 ∈ t_trie0) then - let t_trie1 = t_trie0(x2) in - sum( <- t_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](mc.size)) { mc.movie_id(mc_off) -> @smallvecdict(4) { -> 1 } } -in - -let rt_trie0 = sum( <- range(rt.size)) @phmap(rt.size) { unique(rt.id(i)) -> 1 } in -let chn_trie0 = sum( <- range(chn.size)) @phmap(chn.size) { chn.id(i) -> @smallvecdict(4) { i -> 1 } } in -sum( <- range(ci.size)) - let x0 = ci.role_id(ci_off) in - if (x0 ∈ rt_trie0) then - let rt_trie1 = rt_trie0(x0) in - let x1 = ci.movie_id(ci_off) in - if (x1 ∈ interm0_trie0) then - let interm0_trie1 = interm0_trie0(x1) in - let x2 = ci.person_role_id(ci_off) in - if (x2 ∈ chn_trie0) then - let chn_trie1 = chn_trie0(x2) in - let mn_interm0 = sum( <- interm0_trie1) promote[min_sum]() in - let mn_chn = sum( <- chn_trie1) promote[min_sum]() in - promote[min_sum]() - diff --git a/progs/job/sorting/fj/2c.sdql b/progs/job/sorting/fj/2c.sdql deleted file mode 100644 index 951db358..00000000 --- a/progs/job/sorting/fj/2c.sdql +++ /dev/null @@ -1,26 +0,0 @@ -let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") -let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") -let mc = load[ int}, movie_id: @vec {int -> int}, company_id: @vec {int -> int}, company_type_id: @vec {int -> int}, note: @vec {int -> string}, size: int>]("datasets/job/movie_companies.csv") -let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/2c/k.csv") -let cn = load[ int}, name: @vec {int -> string}, country_code: @vec {int -> string}, imdb_id: @vec {int -> string}, name_pcode_nf: @vec {int -> string}, name_pcode_sf: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/2c/cn.csv") - -let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in -let t_trie0 = sum( <- range(t.size)) @phmap(t.size) { t.id(i) -> @smallvecdict(4) { i -> 1 } } in -let mc_trie0 = sum( <- range(mc.size)) @phmap(mc.size) { mc.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in -let cn_trie0 = sum( <- range(cn.size)) @phmap(cn.size) { unique(cn.id(i)) -> 1 } in -sum( <- range(mk.size)) - let x0 = mk.keyword_id(mk_off) in - if (x0 ∈ k_trie0) then - let k_trie1 = k_trie0(x0) in - let x1 = mk.movie_id(mk_off) in - if (x1 ∈ t_trie0) then - if (x1 ∈ mc_trie0) then - let t_trie1 = t_trie0(x1) in - let mc_trie1 = mc_trie0(x1) in - sum( <- mc_trie1) - let x2 = mc.company_id(mc_off) in - if (x2 ∈ cn_trie0) then - let cn_trie1 = cn_trie0(x2) in - let mn_t = sum( <- t_trie1) promote[min_sum]() in - promote[min_sum]() - diff --git a/progs/job/sorting/fj/32a.sdql b/progs/job/sorting/fj/32a.sdql deleted file mode 100644 index 54ca3197..00000000 --- a/progs/job/sorting/fj/32a.sdql +++ /dev/null @@ -1,38 +0,0 @@ -let t1 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") -let ml = load[ int}, movie_id: @vec {int -> int}, linked_movie_id: @vec {int -> int}, link_type_id: @vec {int -> int}, size: int>]("datasets/job/movie_link.csv") -let t2 = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> int}, season_nr: @vec {int -> int}, episode_nr: @vec {int -> int}, series_years: @vec {int -> string}, md5sum: @vec {int -> string}, size: int>]("datasets/job/title.csv") -let mk = load[ int}, movie_id: @vec {int -> int}, keyword_id: @vec {int -> int}, size: int>]("datasets/job/movie_keyword.csv") -let lt = load[ int}, link: @vec {int -> string}, size: int>]("datasets/job/link_type.csv") -let k = load[ int}, keyword: @vec {int -> string}, phonetic_code: @vec {int -> string}, size: int>]("datasets/job/32a/k.csv") - -let ml_trie0 = sum( <- range(ml.size)) @phmap(ml.size) { ml.movie_id(i) -> @smallvecdict(4) { i -> 1 } } in -let t2_trie0 = sum( <- range(t2.size)) @phmap(t2.size) { t2.id(i) -> @smallvecdict(4) { i -> 1 } } in -let interm0_trie0 = sum( <- range(t1.size)) - let x0 = t1.id(t1_off) in - if (x0 ∈ ml_trie0) then - let ml_trie1 = ml_trie0(x0) in - sum( <- ml_trie1) - let x1 = ml.linked_movie_id(ml_off) in - if (x1 ∈ t2_trie0) then - let t2_trie1 = t2_trie0(x1) in - sum( <- t2_trie1) - @phmap(promote[min_sum](1000000) + promote[min_sum](t1.size)) { t1.id(t1_off) -> @smallvecdict(4) { -> 1 } } -in - -let lt_trie0 = sum( <- range(lt.size)) @phmap(lt.size) { lt.id(i) -> @smallvecdict(4) { i -> 1 } } in -let k_trie0 = sum( <- range(k.size)) @phmap(k.size) { unique(k.id(i)) -> 1 } in -sum( <- range(mk.size)) - let x0 = mk.movie_id(mk_off) in - if (x0 ∈ interm0_trie0) then - let interm0_trie1 = interm0_trie0(x0) in - sum( <- interm0_trie1) - let x1 = interm0_tuple.col3 in - if (x1 ∈ lt_trie0) then - let lt_trie1 = lt_trie0(x1) in - let x2 = mk.keyword_id(mk_off) in - if (x2 ∈ k_trie0) then - let k_trie1 = k_trie0(x2) in - let mn_interm0 = in - let mn_lt = sum( <- lt_trie1) promote[min_sum]() in - promote[min_sum]() - From e5a295756965b9d3243c622b303c5c13e35aaeba Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:02:10 +0000 Subject: [PATCH 75/80] Renamed for consistency --- src/test/scala/sdql/backend/CppCodegenTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/scala/sdql/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index 76ea12f5..77bb4c96 100644 --- a/src/test/scala/sdql/backend/CppCodegenTest.scala +++ b/src/test/scala/sdql/backend/CppCodegenTest.scala @@ -1057,7 +1057,7 @@ class CppCodegenTestJOBFJHybrid extends AnyFlatSpec with ParallelTestExecution { } } -class CppCodegenTestJOBRevised extends AnyFlatSpec with ParallelTestExecution { +class CppCodegenTestJOBFJRevised extends AnyFlatSpec with ParallelTestExecution { it should "codegen JOB FJ 3" in { CodegenHelpers.compilesFile("progs/job/revised/fj/3a.sdql") CodegenHelpers.compilesFile("progs/job/revised/fj/3b.sdql") From 225e7369c6e43f4060e37960ef6e79d64ff6447b Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 29 Nov 2024 19:56:12 +0000 Subject: [PATCH 76/80] Json free join query plans --- build.sbt | 12 +- plans/job/fj/10a.json | 226 ++++++ plans/job/fj/10c.json | 226 ++++++ plans/job/fj/11a.json | 244 ++++++ plans/job/fj/11b.json | 244 ++++++ plans/job/fj/11c.json | 244 ++++++ plans/job/fj/11d.json | 244 ++++++ plans/job/fj/12a.json | 251 ++++++ plans/job/fj/12b.json | 235 ++++++ plans/job/fj/12c.json | 251 ++++++ plans/job/fj/13a.json | 280 +++++++ plans/job/fj/13b.json | 280 +++++++ plans/job/fj/13c.json | 280 +++++++ plans/job/fj/13d.json | 280 +++++++ plans/job/fj/14a.json | 261 ++++++ plans/job/fj/14b.json | 261 ++++++ plans/job/fj/14c.json | 261 ++++++ plans/job/fj/15a.json | 254 ++++++ plans/job/fj/15b.json | 254 ++++++ plans/job/fj/15c.json | 254 ++++++ plans/job/fj/15d.json | 254 ++++++ plans/job/fj/16a.json | 232 ++++++ plans/job/fj/16b.json | 232 ++++++ plans/job/fj/16c.json | 232 ++++++ plans/job/fj/16d.json | 232 ++++++ plans/job/fj/17a.json | 201 +++++ plans/job/fj/17b.json | 201 +++++ plans/job/fj/17c.json | 201 +++++ plans/job/fj/17d.json | 201 +++++ plans/job/fj/17e.json | 201 +++++ plans/job/fj/17f.json | 201 +++++ plans/job/fj/18a.json | 312 +++++++ plans/job/fj/18b.json | 312 +++++++ plans/job/fj/18c.json | 312 +++++++ plans/job/fj/19a.json | 323 ++++++++ plans/job/fj/19b.json | 323 ++++++++ plans/job/fj/19c.json | 323 ++++++++ plans/job/fj/19d.json | 323 ++++++++ plans/job/fj/1a.json | 198 +++++ plans/job/fj/1b.json | 198 +++++ plans/job/fj/1c.json | 198 +++++ plans/job/fj/1d.json | 198 +++++ plans/job/fj/20a.json | 321 ++++++++ plans/job/fj/20b.json | 321 ++++++++ plans/job/fj/20c.json | 330 ++++++++ plans/job/fj/21a.json | 326 ++++++++ plans/job/fj/21b.json | 326 ++++++++ plans/job/fj/21c.json | 326 ++++++++ plans/job/fj/22a.json | 464 +++++++++++ plans/job/fj/22b.json | 464 +++++++++++ plans/job/fj/22c.json | 464 +++++++++++ plans/job/fj/22d.json | 464 +++++++++++ plans/job/fj/23a.json | 476 +++++++++++ plans/job/fj/23b.json | 476 +++++++++++ plans/job/fj/23c.json | 476 +++++++++++ plans/job/fj/24a.json | 433 ++++++++++ plans/job/fj/24b.json | 433 ++++++++++ plans/job/fj/25a.json | 371 +++++++++ plans/job/fj/25b.json | 371 +++++++++ plans/job/fj/25c.json | 371 +++++++++ plans/job/fj/26a.json | 506 ++++++++++++ plans/job/fj/26b.json | 497 ++++++++++++ plans/job/fj/26c.json | 497 ++++++++++++ plans/job/fj/27a.json | 581 +++++++++++++ plans/job/fj/27b.json | 581 +++++++++++++ plans/job/fj/27c.json | 581 +++++++++++++ plans/job/fj/28a.json | 619 ++++++++++++++ plans/job/fj/28b.json | 619 ++++++++++++++ plans/job/fj/28c.json | 619 ++++++++++++++ plans/job/fj/29a.json | 711 ++++++++++++++++ plans/job/fj/29b.json | 711 ++++++++++++++++ plans/job/fj/29c.json | 711 ++++++++++++++++ plans/job/fj/2a.json | 112 +++ plans/job/fj/2b.json | 112 +++ plans/job/fj/2d.json | 112 +++ plans/job/fj/30a.json | 566 +++++++++++++ plans/job/fj/30b.json | 566 +++++++++++++ plans/job/fj/30c.json | 566 +++++++++++++ plans/job/fj/31a.json | 411 ++++++++++ plans/job/fj/31b.json | 411 ++++++++++ plans/job/fj/31c.json | 411 ++++++++++ plans/job/fj/32b.json | 226 ++++++ plans/job/fj/33a.json | 768 ++++++++++++++++++ plans/job/fj/33b.json | 768 ++++++++++++++++++ plans/job/fj/33c.json | 768 ++++++++++++++++++ plans/job/fj/3a.json | 153 ++++ plans/job/fj/3b.json | 153 ++++ plans/job/fj/3c.json | 153 ++++ plans/job/fj/4a.json | 121 +++ plans/job/fj/4b.json | 121 +++ plans/job/fj/4c.json | 121 +++ plans/job/fj/5c.json | 112 +++ plans/job/fj/6a.json | 196 +++++ plans/job/fj/6b.json | 196 +++++ plans/job/fj/6c.json | 196 +++++ plans/job/fj/6d.json | 196 +++++ plans/job/fj/6e.json | 196 +++++ plans/job/fj/6f.json | 196 +++++ plans/job/fj/7a.json | 289 +++++++ plans/job/fj/7b.json | 289 +++++++ plans/job/fj/7c.json | 282 +++++++ plans/job/fj/8a.json | 210 +++++ plans/job/fj/8b.json | 198 +++++ plans/job/fj/8c.json | 204 +++++ plans/job/fj/8d.json | 204 +++++ plans/job/fj/9a.json | 239 ++++++ plans/job/fj/9b.json | 242 ++++++ plans/job/fj/9c.json | 236 ++++++ plans/job/fj/9d.json | 236 ++++++ plans/job/gj/10a.json | 226 ++++++ plans/job/gj/10c.json | 226 ++++++ plans/job/gj/11a.json | 244 ++++++ plans/job/gj/11b.json | 244 ++++++ plans/job/gj/11c.json | 244 ++++++ plans/job/gj/11d.json | 244 ++++++ plans/job/gj/12a.json | 251 ++++++ plans/job/gj/12b.json | 235 ++++++ plans/job/gj/12c.json | 251 ++++++ plans/job/gj/13a.json | 280 +++++++ plans/job/gj/13b.json | 280 +++++++ plans/job/gj/13c.json | 280 +++++++ plans/job/gj/13d.json | 280 +++++++ plans/job/gj/14a.json | 261 ++++++ plans/job/gj/14b.json | 261 ++++++ plans/job/gj/14c.json | 261 ++++++ plans/job/gj/15a.json | 254 ++++++ plans/job/gj/15b.json | 254 ++++++ plans/job/gj/15c.json | 254 ++++++ plans/job/gj/15d.json | 254 ++++++ plans/job/gj/16a.json | 238 ++++++ plans/job/gj/16b.json | 238 ++++++ plans/job/gj/16c.json | 238 ++++++ plans/job/gj/16d.json | 238 ++++++ plans/job/gj/17a.json | 201 +++++ plans/job/gj/17b.json | 201 +++++ plans/job/gj/17c.json | 201 +++++ plans/job/gj/17d.json | 201 +++++ plans/job/gj/17e.json | 201 +++++ plans/job/gj/17f.json | 201 +++++ plans/job/gj/18a.json | 312 +++++++ plans/job/gj/18b.json | 312 +++++++ plans/job/gj/18c.json | 312 +++++++ plans/job/gj/19a.json | 323 ++++++++ plans/job/gj/19b.json | 323 ++++++++ plans/job/gj/19c.json | 323 ++++++++ plans/job/gj/19d.json | 323 ++++++++ plans/job/gj/1a.json | 198 +++++ plans/job/gj/1b.json | 198 +++++ plans/job/gj/1c.json | 198 +++++ plans/job/gj/1d.json | 198 +++++ plans/job/gj/20a.json | 327 ++++++++ plans/job/gj/20b.json | 327 ++++++++ plans/job/gj/20c.json | 336 ++++++++ plans/job/gj/21a.json | 326 ++++++++ plans/job/gj/21b.json | 326 ++++++++ plans/job/gj/21c.json | 326 ++++++++ plans/job/gj/22a.json | 464 +++++++++++ plans/job/gj/22b.json | 464 +++++++++++ plans/job/gj/22c.json | 464 +++++++++++ plans/job/gj/22d.json | 464 +++++++++++ plans/job/gj/23a.json | 476 +++++++++++ plans/job/gj/23b.json | 476 +++++++++++ plans/job/gj/23c.json | 476 +++++++++++ plans/job/gj/24a.json | 433 ++++++++++ plans/job/gj/24b.json | 433 ++++++++++ plans/job/gj/25a.json | 371 +++++++++ plans/job/gj/25b.json | 371 +++++++++ plans/job/gj/25c.json | 371 +++++++++ plans/job/gj/26a.json | 506 ++++++++++++ plans/job/gj/26b.json | 497 ++++++++++++ plans/job/gj/26c.json | 497 ++++++++++++ plans/job/gj/27a.json | 581 +++++++++++++ plans/job/gj/27b.json | 581 +++++++++++++ plans/job/gj/27c.json | 581 +++++++++++++ plans/job/gj/28a.json | 619 ++++++++++++++ plans/job/gj/28b.json | 619 ++++++++++++++ plans/job/gj/28c.json | 619 ++++++++++++++ plans/job/gj/29a.json | 711 ++++++++++++++++ plans/job/gj/29b.json | 711 ++++++++++++++++ plans/job/gj/29c.json | 711 ++++++++++++++++ plans/job/gj/2a.json | 112 +++ plans/job/gj/2b.json | 112 +++ plans/job/gj/2d.json | 112 +++ plans/job/gj/30a.json | 566 +++++++++++++ plans/job/gj/30b.json | 566 +++++++++++++ plans/job/gj/30c.json | 566 +++++++++++++ plans/job/gj/31a.json | 411 ++++++++++ plans/job/gj/31b.json | 411 ++++++++++ plans/job/gj/31c.json | 411 ++++++++++ plans/job/gj/32b.json | 226 ++++++ plans/job/gj/33a.json | 768 ++++++++++++++++++ plans/job/gj/33b.json | 768 ++++++++++++++++++ plans/job/gj/33c.json | 768 ++++++++++++++++++ plans/job/gj/3a.json | 153 ++++ plans/job/gj/3b.json | 153 ++++ plans/job/gj/3c.json | 153 ++++ plans/job/gj/4a.json | 121 +++ plans/job/gj/4b.json | 121 +++ plans/job/gj/4c.json | 121 +++ plans/job/gj/5c.json | 112 +++ plans/job/gj/6a.json | 196 +++++ plans/job/gj/6b.json | 196 +++++ plans/job/gj/6c.json | 196 +++++ plans/job/gj/6d.json | 196 +++++ plans/job/gj/6e.json | 196 +++++ plans/job/gj/6f.json | 196 +++++ plans/job/gj/7a.json | 283 +++++++ plans/job/gj/7b.json | 283 +++++++ plans/job/gj/7c.json | 282 +++++++ plans/job/gj/8a.json | 210 +++++ plans/job/gj/8b.json | 210 +++++ plans/job/gj/8c.json | 210 +++++ plans/job/gj/8d.json | 210 +++++ plans/job/gj/9a.json | 239 ++++++ plans/job/gj/9b.json | 248 ++++++ plans/job/gj/9c.json | 248 ++++++ plans/job/gj/9d.json | 248 ++++++ src/main/scala/sdql/model/OptPlanModel.scala | 19 + .../scala/sdql/model/OptPlanModelTest.scala | 40 + 219 files changed, 70591 insertions(+), 4 deletions(-) create mode 100644 plans/job/fj/10a.json create mode 100644 plans/job/fj/10c.json create mode 100644 plans/job/fj/11a.json create mode 100644 plans/job/fj/11b.json create mode 100644 plans/job/fj/11c.json create mode 100644 plans/job/fj/11d.json create mode 100644 plans/job/fj/12a.json create mode 100644 plans/job/fj/12b.json create mode 100644 plans/job/fj/12c.json create mode 100644 plans/job/fj/13a.json create mode 100644 plans/job/fj/13b.json create mode 100644 plans/job/fj/13c.json create mode 100644 plans/job/fj/13d.json create mode 100644 plans/job/fj/14a.json create mode 100644 plans/job/fj/14b.json create mode 100644 plans/job/fj/14c.json create mode 100644 plans/job/fj/15a.json create mode 100644 plans/job/fj/15b.json create mode 100644 plans/job/fj/15c.json create mode 100644 plans/job/fj/15d.json create mode 100644 plans/job/fj/16a.json create mode 100644 plans/job/fj/16b.json create mode 100644 plans/job/fj/16c.json create mode 100644 plans/job/fj/16d.json create mode 100644 plans/job/fj/17a.json create mode 100644 plans/job/fj/17b.json create mode 100644 plans/job/fj/17c.json create mode 100644 plans/job/fj/17d.json create mode 100644 plans/job/fj/17e.json create mode 100644 plans/job/fj/17f.json create mode 100644 plans/job/fj/18a.json create mode 100644 plans/job/fj/18b.json create mode 100644 plans/job/fj/18c.json create mode 100644 plans/job/fj/19a.json create mode 100644 plans/job/fj/19b.json create mode 100644 plans/job/fj/19c.json create mode 100644 plans/job/fj/19d.json create mode 100644 plans/job/fj/1a.json create mode 100644 plans/job/fj/1b.json create mode 100644 plans/job/fj/1c.json create mode 100644 plans/job/fj/1d.json create mode 100644 plans/job/fj/20a.json create mode 100644 plans/job/fj/20b.json create mode 100644 plans/job/fj/20c.json create mode 100644 plans/job/fj/21a.json create mode 100644 plans/job/fj/21b.json create mode 100644 plans/job/fj/21c.json create mode 100644 plans/job/fj/22a.json create mode 100644 plans/job/fj/22b.json create mode 100644 plans/job/fj/22c.json create mode 100644 plans/job/fj/22d.json create mode 100644 plans/job/fj/23a.json create mode 100644 plans/job/fj/23b.json create mode 100644 plans/job/fj/23c.json create mode 100644 plans/job/fj/24a.json create mode 100644 plans/job/fj/24b.json create mode 100644 plans/job/fj/25a.json create mode 100644 plans/job/fj/25b.json create mode 100644 plans/job/fj/25c.json create mode 100644 plans/job/fj/26a.json create mode 100644 plans/job/fj/26b.json create mode 100644 plans/job/fj/26c.json create mode 100644 plans/job/fj/27a.json create mode 100644 plans/job/fj/27b.json create mode 100644 plans/job/fj/27c.json create mode 100644 plans/job/fj/28a.json create mode 100644 plans/job/fj/28b.json create mode 100644 plans/job/fj/28c.json create mode 100644 plans/job/fj/29a.json create mode 100644 plans/job/fj/29b.json create mode 100644 plans/job/fj/29c.json create mode 100644 plans/job/fj/2a.json create mode 100644 plans/job/fj/2b.json create mode 100644 plans/job/fj/2d.json create mode 100644 plans/job/fj/30a.json create mode 100644 plans/job/fj/30b.json create mode 100644 plans/job/fj/30c.json create mode 100644 plans/job/fj/31a.json create mode 100644 plans/job/fj/31b.json create mode 100644 plans/job/fj/31c.json create mode 100644 plans/job/fj/32b.json create mode 100644 plans/job/fj/33a.json create mode 100644 plans/job/fj/33b.json create mode 100644 plans/job/fj/33c.json create mode 100644 plans/job/fj/3a.json create mode 100644 plans/job/fj/3b.json create mode 100644 plans/job/fj/3c.json create mode 100644 plans/job/fj/4a.json create mode 100644 plans/job/fj/4b.json create mode 100644 plans/job/fj/4c.json create mode 100644 plans/job/fj/5c.json create mode 100644 plans/job/fj/6a.json create mode 100644 plans/job/fj/6b.json create mode 100644 plans/job/fj/6c.json create mode 100644 plans/job/fj/6d.json create mode 100644 plans/job/fj/6e.json create mode 100644 plans/job/fj/6f.json create mode 100644 plans/job/fj/7a.json create mode 100644 plans/job/fj/7b.json create mode 100644 plans/job/fj/7c.json create mode 100644 plans/job/fj/8a.json create mode 100644 plans/job/fj/8b.json create mode 100644 plans/job/fj/8c.json create mode 100644 plans/job/fj/8d.json create mode 100644 plans/job/fj/9a.json create mode 100644 plans/job/fj/9b.json create mode 100644 plans/job/fj/9c.json create mode 100644 plans/job/fj/9d.json create mode 100644 plans/job/gj/10a.json create mode 100644 plans/job/gj/10c.json create mode 100644 plans/job/gj/11a.json create mode 100644 plans/job/gj/11b.json create mode 100644 plans/job/gj/11c.json create mode 100644 plans/job/gj/11d.json create mode 100644 plans/job/gj/12a.json create mode 100644 plans/job/gj/12b.json create mode 100644 plans/job/gj/12c.json create mode 100644 plans/job/gj/13a.json create mode 100644 plans/job/gj/13b.json create mode 100644 plans/job/gj/13c.json create mode 100644 plans/job/gj/13d.json create mode 100644 plans/job/gj/14a.json create mode 100644 plans/job/gj/14b.json create mode 100644 plans/job/gj/14c.json create mode 100644 plans/job/gj/15a.json create mode 100644 plans/job/gj/15b.json create mode 100644 plans/job/gj/15c.json create mode 100644 plans/job/gj/15d.json create mode 100644 plans/job/gj/16a.json create mode 100644 plans/job/gj/16b.json create mode 100644 plans/job/gj/16c.json create mode 100644 plans/job/gj/16d.json create mode 100644 plans/job/gj/17a.json create mode 100644 plans/job/gj/17b.json create mode 100644 plans/job/gj/17c.json create mode 100644 plans/job/gj/17d.json create mode 100644 plans/job/gj/17e.json create mode 100644 plans/job/gj/17f.json create mode 100644 plans/job/gj/18a.json create mode 100644 plans/job/gj/18b.json create mode 100644 plans/job/gj/18c.json create mode 100644 plans/job/gj/19a.json create mode 100644 plans/job/gj/19b.json create mode 100644 plans/job/gj/19c.json create mode 100644 plans/job/gj/19d.json create mode 100644 plans/job/gj/1a.json create mode 100644 plans/job/gj/1b.json create mode 100644 plans/job/gj/1c.json create mode 100644 plans/job/gj/1d.json create mode 100644 plans/job/gj/20a.json create mode 100644 plans/job/gj/20b.json create mode 100644 plans/job/gj/20c.json create mode 100644 plans/job/gj/21a.json create mode 100644 plans/job/gj/21b.json create mode 100644 plans/job/gj/21c.json create mode 100644 plans/job/gj/22a.json create mode 100644 plans/job/gj/22b.json create mode 100644 plans/job/gj/22c.json create mode 100644 plans/job/gj/22d.json create mode 100644 plans/job/gj/23a.json create mode 100644 plans/job/gj/23b.json create mode 100644 plans/job/gj/23c.json create mode 100644 plans/job/gj/24a.json create mode 100644 plans/job/gj/24b.json create mode 100644 plans/job/gj/25a.json create mode 100644 plans/job/gj/25b.json create mode 100644 plans/job/gj/25c.json create mode 100644 plans/job/gj/26a.json create mode 100644 plans/job/gj/26b.json create mode 100644 plans/job/gj/26c.json create mode 100644 plans/job/gj/27a.json create mode 100644 plans/job/gj/27b.json create mode 100644 plans/job/gj/27c.json create mode 100644 plans/job/gj/28a.json create mode 100644 plans/job/gj/28b.json create mode 100644 plans/job/gj/28c.json create mode 100644 plans/job/gj/29a.json create mode 100644 plans/job/gj/29b.json create mode 100644 plans/job/gj/29c.json create mode 100644 plans/job/gj/2a.json create mode 100644 plans/job/gj/2b.json create mode 100644 plans/job/gj/2d.json create mode 100644 plans/job/gj/30a.json create mode 100644 plans/job/gj/30b.json create mode 100644 plans/job/gj/30c.json create mode 100644 plans/job/gj/31a.json create mode 100644 plans/job/gj/31b.json create mode 100644 plans/job/gj/31c.json create mode 100644 plans/job/gj/32b.json create mode 100644 plans/job/gj/33a.json create mode 100644 plans/job/gj/33b.json create mode 100644 plans/job/gj/33c.json create mode 100644 plans/job/gj/3a.json create mode 100644 plans/job/gj/3b.json create mode 100644 plans/job/gj/3c.json create mode 100644 plans/job/gj/4a.json create mode 100644 plans/job/gj/4b.json create mode 100644 plans/job/gj/4c.json create mode 100644 plans/job/gj/5c.json create mode 100644 plans/job/gj/6a.json create mode 100644 plans/job/gj/6b.json create mode 100644 plans/job/gj/6c.json create mode 100644 plans/job/gj/6d.json create mode 100644 plans/job/gj/6e.json create mode 100644 plans/job/gj/6f.json create mode 100644 plans/job/gj/7a.json create mode 100644 plans/job/gj/7b.json create mode 100644 plans/job/gj/7c.json create mode 100644 plans/job/gj/8a.json create mode 100644 plans/job/gj/8b.json create mode 100644 plans/job/gj/8c.json create mode 100644 plans/job/gj/8d.json create mode 100644 plans/job/gj/9a.json create mode 100644 plans/job/gj/9b.json create mode 100644 plans/job/gj/9c.json create mode 100644 plans/job/gj/9d.json create mode 100644 src/main/scala/sdql/model/OptPlanModel.scala create mode 100644 src/test/scala/sdql/model/OptPlanModelTest.scala diff --git a/build.sbt b/build.sbt index 0d72e966..b4b667f6 100644 --- a/build.sbt +++ b/build.sbt @@ -1,10 +1,14 @@ scalaVersion := "2.13.14" libraryDependencies ++= Seq( - "com.lihaoyi" %% "fastparse" % "3.1.1", - "junit" % "junit-dep" % "4.11" % "test", - "org.scalatest" % "scalatest_2.13" % "3.2.19" % "test", - "org.scalameta" %% "munit" % "1.0.2" // for pretty printing expressions + "com.lihaoyi" %% "fastparse" % "3.1.1", + "junit" % "junit-dep" % "4.11" % "test", + "org.scalatest" % "scalatest_2.13" % "3.2.19" % "test", + "org.scalameta" %% "munit" % "1.0.2", // for pretty printing expressions + "io.circe" %% "circe-core" % "0.14.10", + "io.circe" %% "circe-generic" % "0.14.10", + "io.circe" %% "circe-parser" % "0.14.10", + "io.circe" %% "circe-generic-extras" % "0.14.4" // follows a separate versioning ) // Note: IntelliJ accepts -P but SBT requires no. of threads diff --git a/plans/job/fj/10a.json b/plans/job/fj/10a.json new file mode 100644 index 00000000..77c686d2 --- /dev/null +++ b/plans/job/fj/10a.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/10c.json b/plans/job/fj/10c.json new file mode 100644 index 00000000..77c686d2 --- /dev/null +++ b/plans/job/fj/10c.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/11a.json b/plans/job/fj/11a.json new file mode 100644 index 00000000..09221bf0 --- /dev/null +++ b/plans/job/fj/11a.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/11b.json b/plans/job/fj/11b.json new file mode 100644 index 00000000..09221bf0 --- /dev/null +++ b/plans/job/fj/11b.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/11c.json b/plans/job/fj/11c.json new file mode 100644 index 00000000..6b749a39 --- /dev/null +++ b/plans/job/fj/11c.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [ + "note" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/11d.json b/plans/job/fj/11d.json new file mode 100644 index 00000000..6b749a39 --- /dev/null +++ b/plans/job/fj/11d.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [ + "note" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/12a.json b/plans/job/fj/12a.json new file mode 100644 index 00000000..7a02652a --- /dev/null +++ b/plans/job/fj/12a.json @@ -0,0 +1,251 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/12b.json b/plans/job/fj/12b.json new file mode 100644 index 00000000..899320ef --- /dev/null +++ b/plans/job/fj/12b.json @@ -0,0 +1,235 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/12c.json b/plans/job/fj/12c.json new file mode 100644 index 00000000..7a02652a --- /dev/null +++ b/plans/job/fj/12c.json @@ -0,0 +1,251 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/13a.json b/plans/job/fj/13a.json new file mode 100644 index 00000000..59148a03 --- /dev/null +++ b/plans/job/fj/13a.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/13b.json b/plans/job/fj/13b.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/fj/13b.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/13c.json b/plans/job/fj/13c.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/fj/13c.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/13d.json b/plans/job/fj/13d.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/fj/13d.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/14a.json b/plans/job/fj/14a.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/fj/14a.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/14b.json b/plans/job/fj/14b.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/fj/14b.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/14c.json b/plans/job/fj/14c.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/fj/14c.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/15a.json b/plans/job/fj/15a.json new file mode 100644 index 00000000..89bbf743 --- /dev/null +++ b/plans/job/fj/15a.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/15b.json b/plans/job/fj/15b.json new file mode 100644 index 00000000..89bbf743 --- /dev/null +++ b/plans/job/fj/15b.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/15c.json b/plans/job/fj/15c.json new file mode 100644 index 00000000..89bbf743 --- /dev/null +++ b/plans/job/fj/15c.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/15d.json b/plans/job/fj/15d.json new file mode 100644 index 00000000..da277fa9 --- /dev/null +++ b/plans/job/fj/15d.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "at", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/16a.json b/plans/job/fj/16a.json new file mode 100644 index 00000000..f2ca8e11 --- /dev/null +++ b/plans/job/fj/16a.json @@ -0,0 +1,232 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/16b.json b/plans/job/fj/16b.json new file mode 100644 index 00000000..f2ca8e11 --- /dev/null +++ b/plans/job/fj/16b.json @@ -0,0 +1,232 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/16c.json b/plans/job/fj/16c.json new file mode 100644 index 00000000..f2ca8e11 --- /dev/null +++ b/plans/job/fj/16c.json @@ -0,0 +1,232 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/16d.json b/plans/job/fj/16d.json new file mode 100644 index 00000000..f2ca8e11 --- /dev/null +++ b/plans/job/fj/16d.json @@ -0,0 +1,232 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17a.json b/plans/job/fj/17a.json new file mode 100644 index 00000000..ab55dd68 --- /dev/null +++ b/plans/job/fj/17a.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17b.json b/plans/job/fj/17b.json new file mode 100644 index 00000000..a14a4c2e --- /dev/null +++ b/plans/job/fj/17b.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17c.json b/plans/job/fj/17c.json new file mode 100644 index 00000000..a14a4c2e --- /dev/null +++ b/plans/job/fj/17c.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17d.json b/plans/job/fj/17d.json new file mode 100644 index 00000000..a14a4c2e --- /dev/null +++ b/plans/job/fj/17d.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17e.json b/plans/job/fj/17e.json new file mode 100644 index 00000000..ab55dd68 --- /dev/null +++ b/plans/job/fj/17e.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/17f.json b/plans/job/fj/17f.json new file mode 100644 index 00000000..ab55dd68 --- /dev/null +++ b/plans/job/fj/17f.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/18a.json b/plans/job/fj/18a.json new file mode 100644 index 00000000..d17386cf --- /dev/null +++ b/plans/job/fj/18a.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/18b.json b/plans/job/fj/18b.json new file mode 100644 index 00000000..671eaded --- /dev/null +++ b/plans/job/fj/18b.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/18c.json b/plans/job/fj/18c.json new file mode 100644 index 00000000..671eaded --- /dev/null +++ b/plans/job/fj/18c.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/19a.json b/plans/job/fj/19a.json new file mode 100644 index 00000000..b419dd60 --- /dev/null +++ b/plans/job/fj/19a.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/19b.json b/plans/job/fj/19b.json new file mode 100644 index 00000000..24bdb850 --- /dev/null +++ b/plans/job/fj/19b.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/19c.json b/plans/job/fj/19c.json new file mode 100644 index 00000000..b419dd60 --- /dev/null +++ b/plans/job/fj/19c.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/19d.json b/plans/job/fj/19d.json new file mode 100644 index 00000000..b419dd60 --- /dev/null +++ b/plans/job/fj/19d.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/1a.json b/plans/job/fj/1a.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/fj/1a.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/1b.json b/plans/job/fj/1b.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/fj/1b.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/1c.json b/plans/job/fj/1c.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/fj/1c.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/1d.json b/plans/job/fj/1d.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/fj/1d.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/20a.json b/plans/job/fj/20a.json new file mode 100644 index 00000000..31677bf1 --- /dev/null +++ b/plans/job/fj/20a.json @@ -0,0 +1,321 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/20b.json b/plans/job/fj/20b.json new file mode 100644 index 00000000..bbd55415 --- /dev/null +++ b/plans/job/fj/20b.json @@ -0,0 +1,321 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/20c.json b/plans/job/fj/20c.json new file mode 100644 index 00000000..c4dc1dcf --- /dev/null +++ b/plans/job/fj/20c.json @@ -0,0 +1,330 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/21a.json b/plans/job/fj/21a.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/fj/21a.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/21b.json b/plans/job/fj/21b.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/fj/21b.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/21c.json b/plans/job/fj/21c.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/fj/21c.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/22a.json b/plans/job/fj/22a.json new file mode 100644 index 00000000..b2a4494b --- /dev/null +++ b/plans/job/fj/22a.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/22b.json b/plans/job/fj/22b.json new file mode 100644 index 00000000..b2a4494b --- /dev/null +++ b/plans/job/fj/22b.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/22c.json b/plans/job/fj/22c.json new file mode 100644 index 00000000..b2a4494b --- /dev/null +++ b/plans/job/fj/22c.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/22d.json b/plans/job/fj/22d.json new file mode 100644 index 00000000..b2a4494b --- /dev/null +++ b/plans/job/fj/22d.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/23a.json b/plans/job/fj/23a.json new file mode 100644 index 00000000..2e3e1dc6 --- /dev/null +++ b/plans/job/fj/23a.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/23b.json b/plans/job/fj/23b.json new file mode 100644 index 00000000..8e753a2f --- /dev/null +++ b/plans/job/fj/23b.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/23c.json b/plans/job/fj/23c.json new file mode 100644 index 00000000..2e3e1dc6 --- /dev/null +++ b/plans/job/fj/23c.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/24a.json b/plans/job/fj/24a.json new file mode 100644 index 00000000..57237b81 --- /dev/null +++ b/plans/job/fj/24a.json @@ -0,0 +1,433 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/24b.json b/plans/job/fj/24b.json new file mode 100644 index 00000000..57237b81 --- /dev/null +++ b/plans/job/fj/24b.json @@ -0,0 +1,433 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/25a.json b/plans/job/fj/25a.json new file mode 100644 index 00000000..61a22fc6 --- /dev/null +++ b/plans/job/fj/25a.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/25b.json b/plans/job/fj/25b.json new file mode 100644 index 00000000..1d73f8ed --- /dev/null +++ b/plans/job/fj/25b.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/25c.json b/plans/job/fj/25c.json new file mode 100644 index 00000000..61a22fc6 --- /dev/null +++ b/plans/job/fj/25c.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/26a.json b/plans/job/fj/26a.json new file mode 100644 index 00000000..dd9aacc4 --- /dev/null +++ b/plans/job/fj/26a.json @@ -0,0 +1,506 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/26b.json b/plans/job/fj/26b.json new file mode 100644 index 00000000..9edcf9f5 --- /dev/null +++ b/plans/job/fj/26b.json @@ -0,0 +1,497 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/26c.json b/plans/job/fj/26c.json new file mode 100644 index 00000000..9edcf9f5 --- /dev/null +++ b/plans/job/fj/26c.json @@ -0,0 +1,497 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/27a.json b/plans/job/fj/27a.json new file mode 100644 index 00000000..95551865 --- /dev/null +++ b/plans/job/fj/27a.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/27b.json b/plans/job/fj/27b.json new file mode 100644 index 00000000..95551865 --- /dev/null +++ b/plans/job/fj/27b.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/27c.json b/plans/job/fj/27c.json new file mode 100644 index 00000000..de5b8f59 --- /dev/null +++ b/plans/job/fj/27c.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/28a.json b/plans/job/fj/28a.json new file mode 100644 index 00000000..c843f380 --- /dev/null +++ b/plans/job/fj/28a.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/28b.json b/plans/job/fj/28b.json new file mode 100644 index 00000000..c843f380 --- /dev/null +++ b/plans/job/fj/28b.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/28c.json b/plans/job/fj/28c.json new file mode 100644 index 00000000..c843f380 --- /dev/null +++ b/plans/job/fj/28c.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/29a.json b/plans/job/fj/29a.json new file mode 100644 index 00000000..f581eb32 --- /dev/null +++ b/plans/job/fj/29a.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ], + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/29b.json b/plans/job/fj/29b.json new file mode 100644 index 00000000..f581eb32 --- /dev/null +++ b/plans/job/fj/29b.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ], + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/29c.json b/plans/job/fj/29c.json new file mode 100644 index 00000000..d79e55b4 --- /dev/null +++ b/plans/job/fj/29c.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ], + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/2a.json b/plans/job/fj/2a.json new file mode 100644 index 00000000..7c5b5acb --- /dev/null +++ b/plans/job/fj/2a.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/2b.json b/plans/job/fj/2b.json new file mode 100644 index 00000000..7c5b5acb --- /dev/null +++ b/plans/job/fj/2b.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/2d.json b/plans/job/fj/2d.json new file mode 100644 index 00000000..7c5b5acb --- /dev/null +++ b/plans/job/fj/2d.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/30a.json b/plans/job/fj/30a.json new file mode 100644 index 00000000..4125bb8b --- /dev/null +++ b/plans/job/fj/30a.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/30b.json b/plans/job/fj/30b.json new file mode 100644 index 00000000..3c9d36a2 --- /dev/null +++ b/plans/job/fj/30b.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/30c.json b/plans/job/fj/30c.json new file mode 100644 index 00000000..b6385f6a --- /dev/null +++ b/plans/job/fj/30c.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/31a.json b/plans/job/fj/31a.json new file mode 100644 index 00000000..003d4f6b --- /dev/null +++ b/plans/job/fj/31a.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/31b.json b/plans/job/fj/31b.json new file mode 100644 index 00000000..c3ffacb2 --- /dev/null +++ b/plans/job/fj/31b.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/31c.json b/plans/job/fj/31c.json new file mode 100644 index 00000000..003d4f6b --- /dev/null +++ b/plans/job/fj/31c.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/32b.json b/plans/job/fj/32b.json new file mode 100644 index 00000000..67ecb056 --- /dev/null +++ b/plans/job/fj/32b.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + 3, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 4, + { + "relation": "t2", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id", + "linked_movie_id" + ], + [ + "link_type_id" + ] + ] + ], + [ + "t2", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "linked_movie_id" + }, + { + "relation": "t2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col4" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/33a.json b/plans/job/fj/33a.json new file mode 100644 index 00000000..78f69993 --- /dev/null +++ b/plans/job/fj/33a.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ], + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/33b.json b/plans/job/fj/33b.json new file mode 100644 index 00000000..78f69993 --- /dev/null +++ b/plans/job/fj/33b.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ], + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/33c.json b/plans/job/fj/33c.json new file mode 100644 index 00000000..78f69993 --- /dev/null +++ b/plans/job/fj/33c.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ], + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/3a.json b/plans/job/fj/3a.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/fj/3a.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/3b.json b/plans/job/fj/3b.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/fj/3b.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/3c.json b/plans/job/fj/3c.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/fj/3c.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/4a.json b/plans/job/fj/4a.json new file mode 100644 index 00000000..ece774f2 --- /dev/null +++ b/plans/job/fj/4a.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/4b.json b/plans/job/fj/4b.json new file mode 100644 index 00000000..ece774f2 --- /dev/null +++ b/plans/job/fj/4b.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/4c.json b/plans/job/fj/4c.json new file mode 100644 index 00000000..ece774f2 --- /dev/null +++ b/plans/job/fj/4c.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/5c.json b/plans/job/fj/5c.json new file mode 100644 index 00000000..bf2c21f6 --- /dev/null +++ b/plans/job/fj/5c.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6a.json b/plans/job/fj/6a.json new file mode 100644 index 00000000..6d91ad29 --- /dev/null +++ b/plans/job/fj/6a.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6b.json b/plans/job/fj/6b.json new file mode 100644 index 00000000..6d91ad29 --- /dev/null +++ b/plans/job/fj/6b.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6c.json b/plans/job/fj/6c.json new file mode 100644 index 00000000..6d91ad29 --- /dev/null +++ b/plans/job/fj/6c.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6d.json b/plans/job/fj/6d.json new file mode 100644 index 00000000..6d91ad29 --- /dev/null +++ b/plans/job/fj/6d.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6e.json b/plans/job/fj/6e.json new file mode 100644 index 00000000..6d91ad29 --- /dev/null +++ b/plans/job/fj/6e.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/6f.json b/plans/job/fj/6f.json new file mode 100644 index 00000000..e6f890d2 --- /dev/null +++ b/plans/job/fj/6f.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/7a.json b/plans/job/fj/7a.json new file mode 100644 index 00000000..bc53c8c9 --- /dev/null +++ b/plans/job/fj/7a.json @@ -0,0 +1,289 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/7b.json b/plans/job/fj/7b.json new file mode 100644 index 00000000..bc53c8c9 --- /dev/null +++ b/plans/job/fj/7b.json @@ -0,0 +1,289 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/7c.json b/plans/job/fj/7c.json new file mode 100644 index 00000000..d8db6f78 --- /dev/null +++ b/plans/job/fj/7c.json @@ -0,0 +1,282 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "pi", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/8a.json b/plans/job/fj/8a.json new file mode 100644 index 00000000..54e64736 --- /dev/null +++ b/plans/job/fj/8a.json @@ -0,0 +1,210 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an1", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/8b.json b/plans/job/fj/8b.json new file mode 100644 index 00000000..ef93500a --- /dev/null +++ b/plans/job/fj/8b.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/8c.json b/plans/job/fj/8c.json new file mode 100644 index 00000000..b5ee09c7 --- /dev/null +++ b/plans/job/fj/8c.json @@ -0,0 +1,204 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "a1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "a1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "a1", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/8d.json b/plans/job/fj/8d.json new file mode 100644 index 00000000..68cbf9e8 --- /dev/null +++ b/plans/job/fj/8d.json @@ -0,0 +1,204 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an1", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/9a.json b/plans/job/fj/9a.json new file mode 100644 index 00000000..574a69d3 --- /dev/null +++ b/plans/job/fj/9a.json @@ -0,0 +1,239 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 7, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/9b.json b/plans/job/fj/9b.json new file mode 100644 index 00000000..5f448e3e --- /dev/null +++ b/plans/job/fj/9b.json @@ -0,0 +1,242 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/9c.json b/plans/job/fj/9c.json new file mode 100644 index 00000000..c128f2ce --- /dev/null +++ b/plans/job/fj/9c.json @@ -0,0 +1,236 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/fj/9d.json b/plans/job/fj/9d.json new file mode 100644 index 00000000..251bb623 --- /dev/null +++ b/plans/job/fj/9d.json @@ -0,0 +1,236 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/10a.json b/plans/job/gj/10a.json new file mode 100644 index 00000000..21fa74fd --- /dev/null +++ b/plans/job/gj/10a.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/10c.json b/plans/job/gj/10c.json new file mode 100644 index 00000000..21fa74fd --- /dev/null +++ b/plans/job/gj/10c.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/11a.json b/plans/job/gj/11a.json new file mode 100644 index 00000000..09221bf0 --- /dev/null +++ b/plans/job/gj/11a.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/11b.json b/plans/job/gj/11b.json new file mode 100644 index 00000000..09221bf0 --- /dev/null +++ b/plans/job/gj/11b.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/11c.json b/plans/job/gj/11c.json new file mode 100644 index 00000000..6b749a39 --- /dev/null +++ b/plans/job/gj/11c.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [ + "note" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/11d.json b/plans/job/gj/11d.json new file mode 100644 index 00000000..6b749a39 --- /dev/null +++ b/plans/job/gj/11d.json @@ -0,0 +1,244 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [ + "note" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/12a.json b/plans/job/gj/12a.json new file mode 100644 index 00000000..7a02652a --- /dev/null +++ b/plans/job/gj/12a.json @@ -0,0 +1,251 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/12b.json b/plans/job/gj/12b.json new file mode 100644 index 00000000..899320ef --- /dev/null +++ b/plans/job/gj/12b.json @@ -0,0 +1,235 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/12c.json b/plans/job/gj/12c.json new file mode 100644 index 00000000..7a02652a --- /dev/null +++ b/plans/job/gj/12c.json @@ -0,0 +1,251 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/13a.json b/plans/job/gj/13a.json new file mode 100644 index 00000000..59148a03 --- /dev/null +++ b/plans/job/gj/13a.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/13b.json b/plans/job/gj/13b.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/gj/13b.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/13c.json b/plans/job/gj/13c.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/gj/13c.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/13d.json b/plans/job/gj/13d.json new file mode 100644 index 00000000..77889841 --- /dev/null +++ b/plans/job/gj/13d.json @@ -0,0 +1,280 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "miidx", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "miidx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 2, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "miidx", + [ + [ + "movie_id" + ], + [ + "info", + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "miidx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2", + "col4" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/14a.json b/plans/job/gj/14a.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/gj/14a.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/14b.json b/plans/job/gj/14b.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/gj/14b.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/14c.json b/plans/job/gj/14c.json new file mode 100644 index 00000000..008324c2 --- /dev/null +++ b/plans/job/gj/14c.json @@ -0,0 +1,261 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 5, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 3, + 1, + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title", + "kind_id" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3", + "col1", + "col4" + ], + [ + "col2", + "col5" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col4" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/15a.json b/plans/job/gj/15a.json new file mode 100644 index 00000000..8f235284 --- /dev/null +++ b/plans/job/gj/15a.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/15b.json b/plans/job/gj/15b.json new file mode 100644 index 00000000..8f235284 --- /dev/null +++ b/plans/job/gj/15b.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/15c.json b/plans/job/gj/15c.json new file mode 100644 index 00000000..8f235284 --- /dev/null +++ b/plans/job/gj/15c.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/15d.json b/plans/job/gj/15d.json new file mode 100644 index 00000000..765a8d56 --- /dev/null +++ b/plans/job/gj/15d.json @@ -0,0 +1,254 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "at", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "at", + [ + [ + "movie_id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "at", + "attribute": "movie_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/16a.json b/plans/job/gj/16a.json new file mode 100644 index 00000000..7277f9b4 --- /dev/null +++ b/plans/job/gj/16a.json @@ -0,0 +1,238 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/16b.json b/plans/job/gj/16b.json new file mode 100644 index 00000000..7277f9b4 --- /dev/null +++ b/plans/job/gj/16b.json @@ -0,0 +1,238 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/16c.json b/plans/job/gj/16c.json new file mode 100644 index 00000000..7277f9b4 --- /dev/null +++ b/plans/job/gj/16c.json @@ -0,0 +1,238 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/16d.json b/plans/job/gj/16d.json new file mode 100644 index 00000000..7277f9b4 --- /dev/null +++ b/plans/job/gj/16d.json @@ -0,0 +1,238 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17a.json b/plans/job/gj/17a.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17a.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17b.json b/plans/job/gj/17b.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17b.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17c.json b/plans/job/gj/17c.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17c.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17d.json b/plans/job/gj/17d.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17d.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17e.json b/plans/job/gj/17e.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17e.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/17f.json b/plans/job/gj/17f.json new file mode 100644 index 00000000..7a73c322 --- /dev/null +++ b/plans/job/gj/17f.json @@ -0,0 +1,201 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/18a.json b/plans/job/gj/18a.json new file mode 100644 index 00000000..d17386cf --- /dev/null +++ b/plans/job/gj/18a.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/18b.json b/plans/job/gj/18b.json new file mode 100644 index 00000000..d17386cf --- /dev/null +++ b/plans/job/gj/18b.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/18c.json b/plans/job/gj/18c.json new file mode 100644 index 00000000..d17386cf --- /dev/null +++ b/plans/job/gj/18c.json @@ -0,0 +1,312 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col2" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col2" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/19a.json b/plans/job/gj/19a.json new file mode 100644 index 00000000..ec7abe57 --- /dev/null +++ b/plans/job/gj/19a.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/19b.json b/plans/job/gj/19b.json new file mode 100644 index 00000000..ec7abe57 --- /dev/null +++ b/plans/job/gj/19b.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/19c.json b/plans/job/gj/19c.json new file mode 100644 index 00000000..ec7abe57 --- /dev/null +++ b/plans/job/gj/19c.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/19d.json b/plans/job/gj/19d.json new file mode 100644 index 00000000..ec7abe57 --- /dev/null +++ b/plans/job/gj/19d.json @@ -0,0 +1,323 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "role_id", + "person_role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/1a.json b/plans/job/gj/1a.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/gj/1a.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/1b.json b/plans/job/gj/1b.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/gj/1b.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/1c.json b/plans/job/gj/1c.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/gj/1c.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/1d.json b/plans/job/gj/1d.json new file mode 100644 index 00000000..1e8d8570 --- /dev/null +++ b/plans/job/gj/1d.json @@ -0,0 +1,198 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "production_year" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title", + "production_year" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "mc", + "attribute": "note" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [ + "note" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col2" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/20a.json b/plans/job/gj/20a.json new file mode 100644 index 00000000..fbd5dc20 --- /dev/null +++ b/plans/job/gj/20a.json @@ -0,0 +1,327 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/20b.json b/plans/job/gj/20b.json new file mode 100644 index 00000000..fbd5dc20 --- /dev/null +++ b/plans/job/gj/20b.json @@ -0,0 +1,327 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/20c.json b/plans/job/gj/20c.json new file mode 100644 index 00000000..67879f7b --- /dev/null +++ b/plans/job/gj/20c.json @@ -0,0 +1,336 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 3, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/21a.json b/plans/job/gj/21a.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/gj/21a.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/21b.json b/plans/job/gj/21b.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/gj/21b.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/21c.json b/plans/job/gj/21c.json new file mode 100644 index 00000000..212a080c --- /dev/null +++ b/plans/job/gj/21c.json @@ -0,0 +1,326 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id" + ], + [ + "link_type_id" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0, + 3, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ], + [ + 7, + { + "relation": "cn", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0", + "col3", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id", + "company_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "interm1", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/22a.json b/plans/job/gj/22a.json new file mode 100644 index 00000000..2828f22c --- /dev/null +++ b/plans/job/gj/22a.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/22b.json b/plans/job/gj/22b.json new file mode 100644 index 00000000..2828f22c --- /dev/null +++ b/plans/job/gj/22b.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/22c.json b/plans/job/gj/22c.json new file mode 100644 index 00000000..2828f22c --- /dev/null +++ b/plans/job/gj/22c.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/22d.json b/plans/job/gj/22d.json new file mode 100644 index 00000000..2828f22c --- /dev/null +++ b/plans/job/gj/22d.json @@ -0,0 +1,464 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id", + "kind_id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm2", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/23a.json b/plans/job/gj/23a.json new file mode 100644 index 00000000..4a8981f7 --- /dev/null +++ b/plans/job/gj/23a.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/23b.json b/plans/job/gj/23b.json new file mode 100644 index 00000000..4a8981f7 --- /dev/null +++ b/plans/job/gj/23b.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/23c.json b/plans/job/gj/23c.json new file mode 100644 index 00000000..4a8981f7 --- /dev/null +++ b/plans/job/gj/23c.json @@ -0,0 +1,476 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "kt", + "attribute": "kind" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [ + "kind" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col2" + ], + [ + "col4", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/24a.json b/plans/job/gj/24a.json new file mode 100644 index 00000000..dd968d72 --- /dev/null +++ b/plans/job/gj/24a.json @@ -0,0 +1,433 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/24b.json b/plans/job/gj/24b.json new file mode 100644 index 00000000..dd968d72 --- /dev/null +++ b/plans/job/gj/24b.json @@ -0,0 +1,433 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 4, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/25a.json b/plans/job/gj/25a.json new file mode 100644 index 00000000..ab930871 --- /dev/null +++ b/plans/job/gj/25a.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/25b.json b/plans/job/gj/25b.json new file mode 100644 index 00000000..ab930871 --- /dev/null +++ b/plans/job/gj/25b.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/25c.json b/plans/job/gj/25c.json new file mode 100644 index 00000000..ab930871 --- /dev/null +++ b/plans/job/gj/25c.json @@ -0,0 +1,371 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/26a.json b/plans/job/gj/26a.json new file mode 100644 index 00000000..4ddd8cf0 --- /dev/null +++ b/plans/job/gj/26a.json @@ -0,0 +1,506 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/26b.json b/plans/job/gj/26b.json new file mode 100644 index 00000000..2a64bc3b --- /dev/null +++ b/plans/job/gj/26b.json @@ -0,0 +1,497 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/26c.json b/plans/job/gj/26c.json new file mode 100644 index 00000000..2a64bc3b --- /dev/null +++ b/plans/job/gj/26c.json @@ -0,0 +1,497 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col5" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "person_role_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/27a.json b/plans/job/gj/27a.json new file mode 100644 index 00000000..18ecb368 --- /dev/null +++ b/plans/job/gj/27a.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/27b.json b/plans/job/gj/27b.json new file mode 100644 index 00000000..18ecb368 --- /dev/null +++ b/plans/job/gj/27b.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/27c.json b/plans/job/gj/27c.json new file mode 100644 index 00000000..18ecb368 --- /dev/null +++ b/plans/job/gj/27c.json @@ -0,0 +1,581 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id", + "movie_id" + ], + [] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col2" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 8, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_type_id", + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col4" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col8" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col4", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col5", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/28a.json b/plans/job/gj/28a.json new file mode 100644 index 00000000..01a50d40 --- /dev/null +++ b/plans/job/gj/28a.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/28b.json b/plans/job/gj/28b.json new file mode 100644 index 00000000..01a50d40 --- /dev/null +++ b/plans/job/gj/28b.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/28c.json b/plans/job/gj/28c.json new file mode 100644 index 00000000..01a50d40 --- /dev/null +++ b/plans/job/gj/28c.json @@ -0,0 +1,619 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "kind_id" + }, + { + "relation": "kt", + "attribute": "id" + } + ], + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "company_type_id" + } + ], + [ + 2, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "cn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "company_type_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col2" + ], + [ + "col3", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col6" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col8" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4", + "col6", + "col8" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/29a.json b/plans/job/gj/29a.json new file mode 100644 index 00000000..1f6543ff --- /dev/null +++ b/plans/job/gj/29a.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/29b.json b/plans/job/gj/29b.json new file mode 100644 index 00000000..1f6543ff --- /dev/null +++ b/plans/job/gj/29b.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/29c.json b/plans/job/gj/29c.json new file mode 100644 index 00000000..1f6543ff --- /dev/null +++ b/plans/job/gj/29c.json @@ -0,0 +1,711 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 3, + { + "relation": "interm2", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + 1, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ], + [ + "it3", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "pi", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it3", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm6", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col0" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "interm5", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm6", + "attribute": "col1" + } + ], + [ + 10, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_role_id", + "role_id", + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm6", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm6", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/2a.json b/plans/job/gj/2a.json new file mode 100644 index 00000000..7277a099 --- /dev/null +++ b/plans/job/gj/2a.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/2b.json b/plans/job/gj/2b.json new file mode 100644 index 00000000..7277a099 --- /dev/null +++ b/plans/job/gj/2b.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/2d.json b/plans/job/gj/2d.json new file mode 100644 index 00000000..7277a099 --- /dev/null +++ b/plans/job/gj/2d.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/30a.json b/plans/job/gj/30a.json new file mode 100644 index 00000000..62fb78aa --- /dev/null +++ b/plans/job/gj/30a.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/30b.json b/plans/job/gj/30b.json new file mode 100644 index 00000000..62fb78aa --- /dev/null +++ b/plans/job/gj/30b.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/30c.json b/plans/job/gj/30c.json new file mode 100644 index 00000000..62fb78aa --- /dev/null +++ b/plans/job/gj/30c.json @@ -0,0 +1,566 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "cc", + "attribute": "subject_id" + } + ], + [ + 1, + { + "relation": "cc", + "attribute": "status_id" + } + ], + [ + 2, + { + "relation": "cc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 2 + ] + }, + "build_plan": { + "build_plan": [ + [ + "cc", + [ + [ + "subject_id", + "status_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cct1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cct2", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "cc", + "attribute": "subject_id" + }, + { + "relation": "cct1", + "attribute": "id" + } + ], + [ + { + "relation": "cc", + "attribute": "status_id" + }, + { + "relation": "cct2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col2" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "interm1", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "interm1", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col3" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "keyword_id", + "movie_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm2", + "attribute": "col0" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col1" + ], + [ + "col2", + "col4" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm3", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm4", + "attribute": "col4" + } + ], + [ + 8, + { + "relation": "interm4", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col1" + ], + [ + "col2", + "col4", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col1" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/31a.json b/plans/job/gj/31a.json new file mode 100644 index 00000000..3f69cfc4 --- /dev/null +++ b/plans/job/gj/31a.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/31b.json b/plans/job/gj/31b.json new file mode 100644 index 00000000..3f69cfc4 --- /dev/null +++ b/plans/job/gj/31b.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/31c.json b/plans/job/gj/31c.json new file mode 100644 index 00000000..3f69cfc4 --- /dev/null +++ b/plans/job/gj/31c.json @@ -0,0 +1,411 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "mi_idx", + "attribute": "info_type_id" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0, + 1, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id" + ], + [ + "info_type_id", + "info" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mi", + "attribute": "info_type_id" + } + ], + [ + 2, + { + "relation": "mi", + "attribute": "info" + } + ], + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col3" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 6, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 7, + { + "relation": "mc", + "attribute": "company_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1", + "col3" + ], + [ + "col2", + "col4" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_id" + ], + [] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm1", + "attribute": "col5" + } + ], + [ + 8, + { + "relation": "interm1", + "attribute": "col6" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col2", + "col5", + "col6" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/32b.json b/plans/job/gj/32b.json new file mode 100644 index 00000000..67ecb056 --- /dev/null +++ b/plans/job/gj/32b.json @@ -0,0 +1,226 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + 3, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 4, + { + "relation": "t2", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 3 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "movie_id", + "linked_movie_id" + ], + [ + "link_type_id" + ] + ] + ], + [ + "t2", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "linked_movie_id" + }, + { + "relation": "t2", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col4" + } + ], + [ + 6, + { + "relation": "lt", + "attribute": "link" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col3" + ], + [ + "col1", + "col4" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [ + "link" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col3" + }, + { + "relation": "lt", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/33a.json b/plans/job/gj/33a.json new file mode 100644 index 00000000..cb05302a --- /dev/null +++ b/plans/job/gj/33a.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ], + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ], + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/33b.json b/plans/job/gj/33b.json new file mode 100644 index 00000000..cb05302a --- /dev/null +++ b/plans/job/gj/33b.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ], + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ], + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/33c.json b/plans/job/gj/33c.json new file mode 100644 index 00000000..cb05302a --- /dev/null +++ b/plans/job/gj/33c.json @@ -0,0 +1,768 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "ml", + "attribute": "link_type_id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "ml", + [ + [ + "link_type_id" + ], + [ + "movie_id", + "linked_movie_id" + ] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx1", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx1", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx1", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx1", + "attribute": "info_type_id" + }, + { + "relation": "it1", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx1", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + } + }, + { + "node": { + "node": "interm2", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mi_idx2", + "attribute": "info_type_id" + } + ], + [ + 1, + { + "relation": "mi_idx2", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "mi_idx2", + "attribute": "info" + } + ], + [ + 4, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm1", + "attribute": "col2" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mi_idx2", + [ + [ + "info_type_id", + "movie_id" + ], + [ + "info" + ] + ] + ], + [ + "it2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col4" + ], + [ + "col2" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi_idx2", + "attribute": "info_type_id" + }, + { + "relation": "it2", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx2", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm3", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t1", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t1", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t1", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm2", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm2", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm2", + "attribute": "col5" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t1", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm2", + [ + [ + "col4" + ], + [ + "col2", + "col5" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t1", + "attribute": "kind_id" + }, + { + "relation": "kt1", + "attribute": "id" + } + ], + [ + { + "relation": "t1", + "attribute": "id" + }, + { + "relation": "interm2", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm4", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t2", + "attribute": "kind_id" + } + ], + [ + 1, + { + "relation": "t2", + "attribute": "id" + } + ], + [ + 2, + { + "relation": "t2", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "interm3", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm3", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm3", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm3", + "attribute": "col7" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t2", + [ + [ + "kind_id", + "id" + ], + [ + "title" + ] + ] + ], + [ + "kt2", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm3", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t2", + "attribute": "kind_id" + }, + { + "relation": "kt2", + "attribute": "id" + } + ], + [ + { + "relation": "t2", + "attribute": "id" + }, + { + "relation": "interm3", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "interm5", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc1", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc1", + "attribute": "movie_id" + } + ], + [ + 2, + { + "relation": "cn1", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm4", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm4", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm4", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm4", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm4", + "attribute": "col9" + } + ] + ] + }, + "record": [ + 4 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc1", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn1", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm4", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc1", + "attribute": "company_id" + }, + { + "relation": "cn1", + "attribute": "id" + } + ], + [ + { + "relation": "mc1", + "attribute": "movie_id" + }, + { + "relation": "interm4", + "attribute": "col4" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "cn2", + "attribute": "name" + } + ], + [ + 5, + { + "relation": "interm5", + "attribute": "col2" + } + ], + [ + 7, + { + "relation": "interm5", + "attribute": "col5" + } + ], + [ + 9, + { + "relation": "interm5", + "attribute": "col7" + } + ], + [ + 11, + { + "relation": "interm5", + "attribute": "col9" + } + ], + [ + 13, + { + "relation": "interm5", + "attribute": "col11" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mc2", + [ + [ + "company_id", + "movie_id" + ], + [] + ] + ], + [ + "cn2", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm5", + [ + [ + "col4" + ], + [ + "col2", + "col5", + "col7", + "col9", + "col11" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc2", + "attribute": "company_id" + }, + { + "relation": "cn2", + "attribute": "id" + } + ], + [ + { + "relation": "mc2", + "attribute": "movie_id" + }, + { + "relation": "interm5", + "attribute": "col4" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/3a.json b/plans/job/gj/3a.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/gj/3a.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/3b.json b/plans/job/gj/3b.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/gj/3b.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/3c.json b/plans/job/gj/3c.json new file mode 100644 index 00000000..e8f3198f --- /dev/null +++ b/plans/job/gj/3c.json @@ -0,0 +1,153 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [ + 0, + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id" + ], + [ + "keyword_id" + ] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm0", + "attribute": "col2" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0", + "col1" + ], + [ + "col2" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ], + [ + { + "relation": "interm0", + "attribute": "col1" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/4a.json b/plans/job/gj/4a.json new file mode 100644 index 00000000..bb020edf --- /dev/null +++ b/plans/job/gj/4a.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/4b.json b/plans/job/gj/4b.json new file mode 100644 index 00000000..bb020edf --- /dev/null +++ b/plans/job/gj/4b.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/4c.json b/plans/job/gj/4c.json new file mode 100644 index 00000000..bb020edf --- /dev/null +++ b/plans/job/gj/4c.json @@ -0,0 +1,121 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 4, + { + "relation": "mi_idx", + "attribute": "info" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mi_idx", + [ + [ + "movie_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mi_idx", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ], + [ + { + "relation": "mi_idx", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/5c.json b/plans/job/gj/5c.json new file mode 100644 index 00000000..2250b73e --- /dev/null +++ b/plans/job/gj/5c.json @@ -0,0 +1,112 @@ +{ + "opt_plan": [ + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "mi", + [ + [ + "movie_id", + "info_type_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "mc", + [ + [ + "movie_id", + "company_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ], + [ + "ct", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mi", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "mc", + "attribute": "movie_id" + } + ], + [ + { + "relation": "mi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ], + [ + { + "relation": "mc", + "attribute": "company_type_id" + }, + { + "relation": "ct", + "attribute": "id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6a.json b/plans/job/gj/6a.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6a.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6b.json b/plans/job/gj/6b.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6b.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6c.json b/plans/job/gj/6c.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6c.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6d.json b/plans/job/gj/6d.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6d.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6e.json b/plans/job/gj/6e.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6e.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/6f.json b/plans/job/gj/6f.json new file mode 100644 index 00000000..ca087b31 --- /dev/null +++ b/plans/job/gj/6f.json @@ -0,0 +1,196 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mk", + "attribute": "movie_id" + } + ], + [ + 1, + { + "relation": "mk", + "attribute": "keyword_id" + } + ], + [ + 2, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 3, + { + "relation": "k", + "attribute": "keyword" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mk", + [ + [ + "movie_id", + "keyword_id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "k", + [ + [ + "id" + ], + [ + "keyword" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mk", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "mk", + "attribute": "keyword_id" + }, + { + "relation": "k", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col2" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col2", + "col3" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col0" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/7a.json b/plans/job/gj/7a.json new file mode 100644 index 00000000..2f22d01b --- /dev/null +++ b/plans/job/gj/7a.json @@ -0,0 +1,283 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/7b.json b/plans/job/gj/7b.json new file mode 100644 index 00000000..2f22d01b --- /dev/null +++ b/plans/job/gj/7b.json @@ -0,0 +1,283 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 2, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 2, + { + "relation": "interm1", + "attribute": "col1" + } + ], + [ + 4, + { + "relation": "interm0", + "attribute": "col1" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/7c.json b/plans/job/gj/7c.json new file mode 100644 index 00000000..d8db6f78 --- /dev/null +++ b/plans/job/gj/7c.json @@ -0,0 +1,282 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "n", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 2, + { + "relation": "pi", + "attribute": "info_type_id" + } + ], + [ + 3, + { + "relation": "pi", + "attribute": "info" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "pi", + [ + [ + "person_id", + "info_type_id" + ], + [ + "info" + ] + ] + ], + [ + "it", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "n", + "attribute": "id" + }, + { + "relation": "pi", + "attribute": "person_id" + } + ], + [ + { + "relation": "pi", + "attribute": "info_type_id" + }, + { + "relation": "it", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "interm1", + "keys": { + "keys": [ + [ + 0, + { + "relation": "t", + "attribute": "id" + } + ], + [ + 1, + { + "relation": "ml", + "attribute": "link_type_id" + } + ] + ] + }, + "record": [ + 0 + ] + }, + "build_plan": { + "build_plan": [ + [ + "t", + [ + [ + "id" + ], + [] + ] + ], + [ + "ml", + [ + [ + "linked_movie_id", + "link_type_id" + ], + [] + ] + ], + [ + "lt", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "t", + "attribute": "id" + }, + { + "relation": "ml", + "attribute": "linked_movie_id" + } + ], + [ + { + "relation": "ml", + "attribute": "link_type_id" + }, + { + "relation": "lt", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 3, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + 5, + { + "relation": "interm0", + "attribute": "col3" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "movie_id", + "person_id" + ], + [] + ] + ], + [ + "interm1", + [ + [ + "col0" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col0" + ], + [ + "col1", + "col3" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm1", + "attribute": "col0" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "interm0", + "attribute": "col0" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/8a.json b/plans/job/gj/8a.json new file mode 100644 index 00000000..c9df5945 --- /dev/null +++ b/plans/job/gj/8a.json @@ -0,0 +1,210 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an1", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/8b.json b/plans/job/gj/8b.json new file mode 100644 index 00000000..e8731eb1 --- /dev/null +++ b/plans/job/gj/8b.json @@ -0,0 +1,210 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/8c.json b/plans/job/gj/8c.json new file mode 100644 index 00000000..f838da20 --- /dev/null +++ b/plans/job/gj/8c.json @@ -0,0 +1,210 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "a1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "a1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "a1", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/8d.json b/plans/job/gj/8d.json new file mode 100644 index 00000000..c9df5945 --- /dev/null +++ b/plans/job/gj/8d.json @@ -0,0 +1,210 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 5, + { + "relation": "an1", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id" + ], + [] + ] + ], + [ + "n1", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "an1", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n1", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an1", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/9a.json b/plans/job/gj/9a.json new file mode 100644 index 00000000..cb538ea7 --- /dev/null +++ b/plans/job/gj/9a.json @@ -0,0 +1,239 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 5, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 6, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 7, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/9b.json b/plans/job/gj/9b.json new file mode 100644 index 00000000..cc009b06 --- /dev/null +++ b/plans/job/gj/9b.json @@ -0,0 +1,248 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/9c.json b/plans/job/gj/9c.json new file mode 100644 index 00000000..cc009b06 --- /dev/null +++ b/plans/job/gj/9c.json @@ -0,0 +1,248 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/plans/job/gj/9d.json b/plans/job/gj/9d.json new file mode 100644 index 00000000..cc009b06 --- /dev/null +++ b/plans/job/gj/9d.json @@ -0,0 +1,248 @@ +{ + "opt_plan": [ + { + "node": { + "node": "interm0", + "keys": { + "keys": [ + [ + 0, + { + "relation": "mc", + "attribute": "company_id" + } + ], + [ + 1, + { + "relation": "mc", + "attribute": "movie_id" + } + ] + ] + }, + "record": [ + 1 + ] + }, + "build_plan": { + "build_plan": [ + [ + "mc", + [ + [ + "company_id" + ], + [ + "movie_id" + ] + ] + ], + [ + "cn", + [ + [ + "id" + ], + [] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "mc", + "attribute": "company_id" + }, + { + "relation": "cn", + "attribute": "id" + } + ] + ] + } + }, + { + "node": { + "node": "root", + "keys": { + "keys": [ + [ + 4, + { + "relation": "n", + "attribute": "name" + } + ], + [ + 6, + { + "relation": "t", + "attribute": "title" + } + ], + [ + 7, + { + "relation": "chn", + "attribute": "name" + } + ], + [ + 8, + { + "relation": "an", + "attribute": "name" + } + ] + ] + }, + "record": [] + }, + "build_plan": { + "build_plan": [ + [ + "ci", + [ + [ + "person_id", + "movie_id", + "role_id", + "person_role_id" + ], + [] + ] + ], + [ + "n", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "interm0", + [ + [ + "col1" + ], + [] + ] + ], + [ + "rt", + [ + [ + "id" + ], + [] + ] + ], + [ + "t", + [ + [ + "id" + ], + [ + "title" + ] + ] + ], + [ + "chn", + [ + [ + "id" + ], + [ + "name" + ] + ] + ], + [ + "an", + [ + [ + "person_id" + ], + [ + "name" + ] + ] + ] + ] + }, + "compiled_plan": { + "compiled_plan": [ + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "n", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "interm0", + "attribute": "col1" + } + ], + [ + { + "relation": "ci", + "attribute": "role_id" + }, + { + "relation": "rt", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "movie_id" + }, + { + "relation": "t", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_role_id" + }, + { + "relation": "chn", + "attribute": "id" + } + ], + [ + { + "relation": "ci", + "attribute": "person_id" + }, + { + "relation": "an", + "attribute": "person_id" + } + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/src/main/scala/sdql/model/OptPlanModel.scala b/src/main/scala/sdql/model/OptPlanModel.scala new file mode 100644 index 00000000..e76b181b --- /dev/null +++ b/src/main/scala/sdql/model/OptPlanModel.scala @@ -0,0 +1,19 @@ +package sdql.model + +import io.circe.generic.extras.Configuration + +object CirceConfig { implicit val config: Configuration = Configuration.default.withSnakeCaseMemberNames } + +case class OptPlanModel(optPlan: List[IntermModel]) + +case class IntermModel(node: NodeModel, buildPlan: BuildPlanModel, compiledPlan: CompiledPlanModel) + +case class NodeModel(node: String, keys: NodeKeysModel, record: List[Int]) + +case class BuildPlanModel(buildPlan: List[(String, List[List[String]])]) + +case class CompiledPlanModel(compiledPlan: List[List[RelAttrModel]]) + +case class NodeKeysModel(keys: List[(Int, RelAttrModel)]) + +case class RelAttrModel(relation: String, attribute: String) diff --git a/src/test/scala/sdql/model/OptPlanModelTest.scala b/src/test/scala/sdql/model/OptPlanModelTest.scala new file mode 100644 index 00000000..3fc06878 --- /dev/null +++ b/src/test/scala/sdql/model/OptPlanModelTest.scala @@ -0,0 +1,40 @@ +package sdql.model + +import io.circe.DecodingFailure +import io.circe.generic.extras.auto.* +import io.circe.parser.* +import org.scalatest.ParallelTestExecution +import org.scalatest.flatspec.AnyFlatSpec +import sdql.model.CirceConfig.* + +import java.nio.file.{ Files, Paths } +import scala.jdk.CollectionConverters.* + +class OptPlanModelTest extends AnyFlatSpec with ParallelTestExecution { + + it should "decode JOB FJ json plans" in decodeJobJsonPlans("plans/job/fj") + + it should "decode JOB GJ json plans" in decodeJobJsonPlans("plans/job/gj") + + def decodeJobJsonPlans(other: String): Unit = { + System.getProperty("user.dir") + val paths = Paths.get(System.getProperty("user.dir")).resolve(other) + val jsonFiles = Files.list(paths).iterator().asScala.filter(_.toString.endsWith(".json")) + + jsonFiles.foreach { path => + val source = scala.io.Source.fromFile(path.toFile) + val jsonString = + try source.mkString + finally source.close() + + val decodedOptPlan = decode[OptPlanModel](jsonString) + + decodedOptPlan match { + case Left(e: DecodingFailure) => + fail(s"Failed to parse JSON from $path: ${e.message} at ${e.history.map(_.toString).mkString(" -> ")}") + case Left(e) => fail(s"Failed to parse JSON from $path: $e") + case Right(_) => + } + } + } +} From 818a57ff095ace8154b7f2081c39290f2ddedf84 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Fri, 29 Nov 2024 20:19:36 +0000 Subject: [PATCH 77/80] Renamed arg --- src/test/scala/sdql/model/OptPlanModelTest.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/scala/sdql/model/OptPlanModelTest.scala b/src/test/scala/sdql/model/OptPlanModelTest.scala index 3fc06878..203ab962 100644 --- a/src/test/scala/sdql/model/OptPlanModelTest.scala +++ b/src/test/scala/sdql/model/OptPlanModelTest.scala @@ -16,9 +16,9 @@ class OptPlanModelTest extends AnyFlatSpec with ParallelTestExecution { it should "decode JOB GJ json plans" in decodeJobJsonPlans("plans/job/gj") - def decodeJobJsonPlans(other: String): Unit = { + def decodeJobJsonPlans(path: String): Unit = { System.getProperty("user.dir") - val paths = Paths.get(System.getProperty("user.dir")).resolve(other) + val paths = Paths.get(System.getProperty("user.dir")).resolve(path) val jsonFiles = Files.list(paths).iterator().asScala.filter(_.toString.endsWith(".json")) jsonFiles.foreach { path => From 3edcd0c73eefe005d2a0ba77ac323768ee9c09f9 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Mon, 6 Jan 2025 18:14:00 +0000 Subject: [PATCH 78/80] Moved out plan from path --- src/main/scala/sdql/model/OptPlanModel.scala | 25 +++++++++++++++++++ .../scala/sdql/model/OptPlanModelTest.scala | 24 ++---------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/src/main/scala/sdql/model/OptPlanModel.scala b/src/main/scala/sdql/model/OptPlanModel.scala index e76b181b..c006706e 100644 --- a/src/main/scala/sdql/model/OptPlanModel.scala +++ b/src/main/scala/sdql/model/OptPlanModel.scala @@ -1,6 +1,11 @@ package sdql.model +import io.circe.DecodingFailure import io.circe.generic.extras.Configuration +import io.circe.generic.extras.auto.* +import io.circe.parser.decode + +import java.nio.file.Path object CirceConfig { implicit val config: Configuration = Configuration.default.withSnakeCaseMemberNames } @@ -17,3 +22,23 @@ case class CompiledPlanModel(compiledPlan: List[List[RelAttrModel]]) case class NodeKeysModel(keys: List[(Int, RelAttrModel)]) case class RelAttrModel(relation: String, attribute: String) + +object OptPlanModel { + import CirceConfig.* + + def fromPath(path: Path): OptPlanModel = { + val source = scala.io.Source.fromFile(path.toFile) + val jsonString = + try source.mkString + finally source.close() + val decodedOptPlan = decode[OptPlanModel](jsonString) + decodedOptPlan match { + case Left(e: DecodingFailure) => + throw new Exception( + s"Failed to parse JSON from $path: ${e.message} at ${e.history.map(_.toString).mkString(" -> ")}" + ) + case Left(e) => throw new Exception(s"Failed to parse JSON from $path: $e") + case Right(plan) => plan + } + } +} diff --git a/src/test/scala/sdql/model/OptPlanModelTest.scala b/src/test/scala/sdql/model/OptPlanModelTest.scala index 203ab962..94d6cb1a 100644 --- a/src/test/scala/sdql/model/OptPlanModelTest.scala +++ b/src/test/scala/sdql/model/OptPlanModelTest.scala @@ -1,11 +1,7 @@ package sdql.model -import io.circe.DecodingFailure -import io.circe.generic.extras.auto.* -import io.circe.parser.* import org.scalatest.ParallelTestExecution import org.scalatest.flatspec.AnyFlatSpec -import sdql.model.CirceConfig.* import java.nio.file.{ Files, Paths } import scala.jdk.CollectionConverters.* @@ -16,25 +12,9 @@ class OptPlanModelTest extends AnyFlatSpec with ParallelTestExecution { it should "decode JOB GJ json plans" in decodeJobJsonPlans("plans/job/gj") - def decodeJobJsonPlans(path: String): Unit = { - System.getProperty("user.dir") + private def decodeJobJsonPlans(path: String): Unit = { val paths = Paths.get(System.getProperty("user.dir")).resolve(path) val jsonFiles = Files.list(paths).iterator().asScala.filter(_.toString.endsWith(".json")) - - jsonFiles.foreach { path => - val source = scala.io.Source.fromFile(path.toFile) - val jsonString = - try source.mkString - finally source.close() - - val decodedOptPlan = decode[OptPlanModel](jsonString) - - decodedOptPlan match { - case Left(e: DecodingFailure) => - fail(s"Failed to parse JSON from $path: ${e.message} at ${e.history.map(_.toString).mkString(" -> ")}") - case Left(e) => fail(s"Failed to parse JSON from $path: $e") - case Right(_) => - } - } + jsonFiles.foreach(path => OptPlanModel.fromPath(path)) } } From 829692a9ccb30237288ccd4f2936edb9f3977989 Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 7 Jan 2025 13:56:42 +0000 Subject: [PATCH 79/80] Pretty print SDQL expressions as source code --- build.sbt | 15 ++-- src/main/scala/sdql/frontend/SourceCode.scala | 4 +- src/main/scala/sdql/ir/Exp.scala | 4 +- src/main/scala/sdql/ir/Print.scala | 80 +++++++++++++++++++ src/main/scala/sdql/ir/SemiRing.scala | 6 +- src/test/scala/sdql/frontend/PrintTest.scala | 26 ++++++ 6 files changed, 118 insertions(+), 17 deletions(-) create mode 100644 src/main/scala/sdql/ir/Print.scala create mode 100644 src/test/scala/sdql/frontend/PrintTest.scala diff --git a/build.sbt b/build.sbt index b4b667f6..ff91fa08 100644 --- a/build.sbt +++ b/build.sbt @@ -1,14 +1,13 @@ scalaVersion := "2.13.14" libraryDependencies ++= Seq( - "com.lihaoyi" %% "fastparse" % "3.1.1", - "junit" % "junit-dep" % "4.11" % "test", - "org.scalatest" % "scalatest_2.13" % "3.2.19" % "test", - "org.scalameta" %% "munit" % "1.0.2", // for pretty printing expressions - "io.circe" %% "circe-core" % "0.14.10", - "io.circe" %% "circe-generic" % "0.14.10", - "io.circe" %% "circe-parser" % "0.14.10", - "io.circe" %% "circe-generic-extras" % "0.14.4" // follows a separate versioning + "com.lihaoyi" %% "fastparse" % "3.1.1", + "junit" % "junit-dep" % "4.11" % "test", + "org.scalatest" % "scalatest_2.13" % "3.2.19" % "test", + "io.circe" %% "circe-core" % "0.14.10", + "io.circe" %% "circe-generic" % "0.14.10", + "io.circe" %% "circe-parser" % "0.14.10", + "io.circe" %% "circe-generic-extras" % "0.14.4" // follows a separate versioning ) // Note: IntelliJ accepts -P but SBT requires no. of threads diff --git a/src/main/scala/sdql/frontend/SourceCode.scala b/src/main/scala/sdql/frontend/SourceCode.scala index 9aff4b08..901fcf4c 100644 --- a/src/main/scala/sdql/frontend/SourceCode.scala +++ b/src/main/scala/sdql/frontend/SourceCode.scala @@ -3,7 +3,7 @@ package frontend import sdql.ir.* -class SourceCode(val fileName: String, val exp: Exp) +class SourceCode(val fileName: String, val content: String, val exp: Exp) object SourceCode { def fromFile(fileName: String): SourceCode = { @@ -11,6 +11,6 @@ object SourceCode { val content = try source.mkString finally source.close() - new SourceCode(fileName, Parser(content)) + new SourceCode(fileName, content, Parser(content)) } } diff --git a/src/main/scala/sdql/ir/Exp.scala b/src/main/scala/sdql/ir/Exp.scala index 14032c56..999635db 100644 --- a/src/main/scala/sdql/ir/Exp.scala +++ b/src/main/scala/sdql/ir/Exp.scala @@ -1,8 +1,6 @@ package sdql package ir -import munit.Assertions.munitPrint - import scala.annotation.tailrec /** @@ -10,7 +8,7 @@ import scala.annotation.tailrec * abstract syntax tree of a given program. */ sealed trait Exp { - def prettyPrint: String = munitPrint(this) + def prettyPrint: String = Print.pretty(this) def simpleName: String = { val name = this.getClass.getSimpleName diff --git a/src/main/scala/sdql/ir/Print.scala b/src/main/scala/sdql/ir/Print.scala new file mode 100644 index 00000000..7e1445a2 --- /dev/null +++ b/src/main/scala/sdql/ir/Print.scala @@ -0,0 +1,80 @@ +package sdql.ir + +import scala.PartialFunction.cond + +object Print { + + def pretty(e: Exp)(implicit indent: Int = 0, inline: Boolean = false): String = { + val ws = if (inline) "" else (1 to indent).map(_ => " ").mkString("") + ws ++ (e match { + case Const(v) => v.toString + case Sym(name) => name + case Load(path, tp, _) => s"load[${pretty(tp)}](\"$path\")" + case LetBinding(x, e1, e2) => + s"let ${pretty(x)(indent, inline = true)} = ${pretty(e1)(indent, inline = true)}\n${pretty(e2)}" + case Timer(e) => s"\ntimer\n\n${pretty(e)}" + case Sum(key, value, e1, body) => + val hasNestedSum = iterExps(body).exists(cond(_) { case _: Sum => true }) + val bodyPrint = + if (hasNestedSum) s"\n${pretty(body)(indent + 1)}" else s" ${pretty(body)(indent + 1, inline = true)}" + s"sum(<${pretty(key)(indent, inline = true)}, ${pretty(value)(indent, inline = true)}> <- ${pretty(e1)(indent, inline = true)})$bodyPrint" + case RangeNode(exp) => s"range(${pretty(exp)})" + case IfThenElse(cond, thenp, _) => // TODO else + s"if (${pretty(cond)(indent, inline = true)}) then\n${pretty(thenp)(indent + 1)}" + case Cmp(e1, e2, cmp) => s"${pretty(e1)} $cmp ${pretty(e2)}" + case DictNode(Seq((k, v)), hint) => + s"${pretty(hint)}{ ${pretty(k)(indent, inline = true)} -> ${pretty(v)(indent, inline = true)} }" + case RecNode(values) => + values.map { case (field, exp) => s"$field=${pretty(exp)}" }.mkString("<", ", ", ">") + case Get(e1, e2) => s"${pretty(e1)}(${pretty(e2)})" + case FieldNode(e, f) => s"${pretty(e)}.$f" + case Promote(tsrt: TropicalSemiRingType, exp) => + s"promote[${pretty(tsrt)}](${pretty(exp)(indent, inline = true)})" + case _ => e.toString + }) + } + + private def pretty(tpe: Type): String = tpe match { + case RecordType(attrs) => attrs.map(pretty).mkString("<", ", ", ">") + case DictType(key, value, hint) => s"${pretty(hint)}{${pretty(key)} -> ${pretty(value)}}" + case StringType(None) => "string" + case StringType(Some(_)) => ??? + case RealType => "double" + case BoolType => "bool" + case IntType => "int" + case LongType => "long" + case DateType => "date" + case _ => tpe.toString + } + + private def pretty(tsrt: TropicalSemiRingType): String = tsrt match { + case TropicalSemiRingType(isMax, isProd, None) => TropicalSemiRingType.name(isMax, isProd) + case _ => ??? + } + + private def pretty(hint: DictHint): String = hint match { + case PHmap(None) => "" + case _ => s"${_pretty(hint)} " + } + + private def _pretty(hint: DictHint): String = "@" ++ (hint match { + case PHmap(None) => "phmap" + case PHmap(Some(exp)) => s"phmap(${pretty(exp)})" + case Range => "range" + case SmallVecDict(size) => s"smallvecdict($size)" + case SmallVecDicts(size) => s"smallvecdicts($size)" + case SortedDict(None) => "st" + case SortedDict(Some(exp)) => s"st(${pretty(exp)})" + case Vec(None) => "vec" + case Vec(Some(size)) => s"vec($size)" + }) + + private def pretty(attr: Attribute): String = attr match { + case Attribute(name, tpe) => s"$name: ${pretty(tpe)}" + } + + private def iterExps(e: Exp): Iterator[Exp] = + Iterator(e) ++ (e match { + case Restage(cs, _) => cs.flatMap(iterExps) + }) +} diff --git a/src/main/scala/sdql/ir/SemiRing.scala b/src/main/scala/sdql/ir/SemiRing.scala index 1f6cc161..da312abb 100644 --- a/src/main/scala/sdql/ir/SemiRing.scala +++ b/src/main/scala/sdql/ir/SemiRing.scala @@ -34,11 +34,9 @@ case class MaxProdSemiRing(override val value: Option[Double]) // type isn't known at time of parsing, it can be populated later by type inference case class TropicalSemiRingType(isMax: Boolean, isProd: Boolean, tp: Option[Type] = None) - extends CustomSemiRingType( - s"${if (isMax) "max" else "min"}_${if (isProd) "prod" else "sum"}", - Seq(isMax, isProd, tp) - ) + extends CustomSemiRingType(TropicalSemiRingType.name(isMax, isProd), Seq(isMax, isProd, tp)) object TropicalSemiRingType { + def name(isMax: Boolean, isProd: Boolean): String = s"${if (isMax) "max" else "min"}_${if (isProd) "prod" else "sum"}" def apply(name: String): TropicalSemiRingType = name match { case "min_sum" | "mnsm" => TropicalSemiRingType(isMax = false, isProd = false) case "max_sum" | "mxsm" => TropicalSemiRingType(isMax = true, isProd = false) diff --git a/src/test/scala/sdql/frontend/PrintTest.scala b/src/test/scala/sdql/frontend/PrintTest.scala new file mode 100644 index 00000000..2e4da791 --- /dev/null +++ b/src/test/scala/sdql/frontend/PrintTest.scala @@ -0,0 +1,26 @@ +package sdql +package frontend + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers +import sdql.ir.Print + +import java.nio.file.{ Files, Paths } +import scala.jdk.CollectionConverters.* + +class PrintTest extends AnyFlatSpec with Matchers { + private val progsDir = Paths.get(System.getProperty("user.dir")).resolve("progs") + + it should "check formatting of SDQL programs" in Files + .walk(progsDir) + .iterator() + .asScala + .filter(Files.isRegularFile(_)) + .filter(_.toString.endsWith(".sdql")) + .foreach(path => checkFormat(path.toString)) + + private def checkFormat(fileName: String) = { + val src = SourceCode.fromFile(fileName) + src.content shouldEqual Print.pretty(src.exp) + } +} From 23b295d84bd56dbfa016f646bc452b169ecc555a Mon Sep 17 00:00:00 2001 From: amascolo <12738821+amascolo@users.noreply.github.com> Date: Tue, 7 Jan 2025 16:15:46 +0000 Subject: [PATCH 80/80] Commented out test --- src/test/scala/sdql/frontend/PrintTest.scala | 53 ++++++++++---------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/test/scala/sdql/frontend/PrintTest.scala b/src/test/scala/sdql/frontend/PrintTest.scala index 2e4da791..57ea0ff1 100644 --- a/src/test/scala/sdql/frontend/PrintTest.scala +++ b/src/test/scala/sdql/frontend/PrintTest.scala @@ -1,26 +1,27 @@ -package sdql -package frontend - -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should.Matchers -import sdql.ir.Print - -import java.nio.file.{ Files, Paths } -import scala.jdk.CollectionConverters.* - -class PrintTest extends AnyFlatSpec with Matchers { - private val progsDir = Paths.get(System.getProperty("user.dir")).resolve("progs") - - it should "check formatting of SDQL programs" in Files - .walk(progsDir) - .iterator() - .asScala - .filter(Files.isRegularFile(_)) - .filter(_.toString.endsWith(".sdql")) - .foreach(path => checkFormat(path.toString)) - - private def checkFormat(fileName: String) = { - val src = SourceCode.fromFile(fileName) - src.content shouldEqual Print.pretty(src.exp) - } -} +// TODO if we port over to Scala the SDQL query generators for FreeJoin plans, format existing queries to debug easily +//package sdql +//package frontend +// +//import org.scalatest.flatspec.AnyFlatSpec +//import org.scalatest.matchers.should.Matchers +//import sdql.ir.Print +// +//import java.nio.file.{ Files, Paths } +//import scala.jdk.CollectionConverters.* +// +//class PrintTest extends AnyFlatSpec with Matchers { +// private val progsDir = Paths.get(System.getProperty("user.dir")).resolve("progs") +// +// it should "check formatting of SDQL programs" in Files +// .walk(progsDir) +// .iterator() +// .asScala +// .filter(Files.isRegularFile(_)) +// .filter(_.toString.endsWith(".sdql")) +// .foreach(path => checkFormat(path.toString)) +// +// private def checkFormat(fileName: String) = { +// val src = SourceCode.fromFile(fileName) +// src.content shouldEqual Print.pretty(src.exp) +// } +//}