diff --git a/build.sbt b/build.sbt index 5c6d551b..ff91fa08 100644 --- a/build.sbt +++ b/build.sbt @@ -1,10 +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.0" // 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", + "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 @@ -17,6 +20,10 @@ 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", "TestJOBFJSorting"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBGJHybrid"), + Tests.Argument(TestFrameworks.ScalaTest, "-l", "TestJOBFJHybrid"), + 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/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/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/job/hybrid/fj/10a.sdql b/progs/job/hybrid/fj/10a.sdql new file mode 100644 index 00000000..b2f86edb --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/10c.sdql b/progs/job/hybrid/fj/10c.sdql new file mode 100644 index 00000000..e1e03e78 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/11a.sdql b/progs/job/hybrid/fj/11a.sdql new file mode 100644 index 00000000..da79275f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/11b.sdql b/progs/job/hybrid/fj/11b.sdql new file mode 100644 index 00000000..3c492c4a --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/11c.sdql b/progs/job/hybrid/fj/11c.sdql new file mode 100644 index 00000000..ed9096a8 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/11d.sdql b/progs/job/hybrid/fj/11d.sdql new file mode 100644 index 00000000..dab85230 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/12a.sdql b/progs/job/hybrid/fj/12a.sdql new file mode 100644 index 00000000..748c3266 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/12b.sdql b/progs/job/hybrid/fj/12b.sdql new file mode 100644 index 00000000..9ec2a465 --- /dev/null +++ b/progs/job/hybrid/fj/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/progs/job/hybrid/fj/12c.sdql b/progs/job/hybrid/fj/12c.sdql new file mode 100644 index 00000000..81a06b41 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/13a.sdql b/progs/job/hybrid/fj/13a.sdql new file mode 100644 index 00000000..c1003762 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/13b.sdql b/progs/job/hybrid/fj/13b.sdql new file mode 100644 index 00000000..d3e310f7 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/13c.sdql b/progs/job/hybrid/fj/13c.sdql new file mode 100644 index 00000000..d4810cd9 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/13d.sdql b/progs/job/hybrid/fj/13d.sdql new file mode 100644 index 00000000..da291b49 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/14a.sdql b/progs/job/hybrid/fj/14a.sdql new file mode 100644 index 00000000..ff0dfd10 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/14b.sdql b/progs/job/hybrid/fj/14b.sdql new file mode 100644 index 00000000..629b5e61 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/14c.sdql b/progs/job/hybrid/fj/14c.sdql new file mode 100644 index 00000000..ff821b18 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/15a.sdql b/progs/job/hybrid/fj/15a.sdql new file mode 100644 index 00000000..ddf96c3c --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/15b.sdql b/progs/job/hybrid/fj/15b.sdql new file mode 100644 index 00000000..238be564 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/15c.sdql b/progs/job/hybrid/fj/15c.sdql new file mode 100644 index 00000000..07bcb537 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/15d.sdql b/progs/job/hybrid/fj/15d.sdql new file mode 100644 index 00000000..35c4a968 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/16a.sdql b/progs/job/hybrid/fj/16a.sdql new file mode 100644 index 00000000..293f787f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/16b.sdql b/progs/job/hybrid/fj/16b.sdql new file mode 100644 index 00000000..a1c68e74 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/16c.sdql b/progs/job/hybrid/fj/16c.sdql new file mode 100644 index 00000000..74ba0542 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/16d.sdql b/progs/job/hybrid/fj/16d.sdql new file mode 100644 index 00000000..0a67265f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/17a.sdql b/progs/job/hybrid/fj/17a.sdql new file mode 100644 index 00000000..706e4294 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/17b.sdql b/progs/job/hybrid/fj/17b.sdql new file mode 100644 index 00000000..aa34b02b --- /dev/null +++ b/progs/job/hybrid/fj/17b.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/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/progs/job/hybrid/fj/17c.sdql b/progs/job/hybrid/fj/17c.sdql new file mode 100644 index 00000000..b722b8d8 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/17d.sdql b/progs/job/hybrid/fj/17d.sdql new file mode 100644 index 00000000..404ffdb7 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/17e.sdql b/progs/job/hybrid/fj/17e.sdql new file mode 100644 index 00000000..63ccda0b --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/17f.sdql b/progs/job/hybrid/fj/17f.sdql new file mode 100644 index 00000000..e5debe5d --- /dev/null +++ b/progs/job/hybrid/fj/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/progs/job/hybrid/fj/18a.sdql b/progs/job/hybrid/fj/18a.sdql new file mode 100644 index 00000000..c4f552d5 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/18b.sdql b/progs/job/hybrid/fj/18b.sdql new file mode 100644 index 00000000..99c6e9d5 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/18c.sdql b/progs/job/hybrid/fj/18c.sdql new file mode 100644 index 00000000..366fba4e --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/19a.sdql b/progs/job/hybrid/fj/19a.sdql new file mode 100644 index 00000000..da663836 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/19b.sdql b/progs/job/hybrid/fj/19b.sdql new file mode 100644 index 00000000..baa0e941 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/19c.sdql b/progs/job/hybrid/fj/19c.sdql new file mode 100644 index 00000000..08278b05 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/19d.sdql b/progs/job/hybrid/fj/19d.sdql new file mode 100644 index 00000000..90ebd064 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/1a.sdql b/progs/job/hybrid/fj/1a.sdql new file mode 100644 index 00000000..4e043af4 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/1b.sdql b/progs/job/hybrid/fj/1b.sdql new file mode 100644 index 00000000..0087835f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/1c.sdql b/progs/job/hybrid/fj/1c.sdql new file mode 100644 index 00000000..31eb56ef --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/1d.sdql b/progs/job/hybrid/fj/1d.sdql new file mode 100644 index 00000000..eb0a62f3 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/20a.sdql b/progs/job/hybrid/fj/20a.sdql new file mode 100644 index 00000000..42a8ffbd --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/20b.sdql b/progs/job/hybrid/fj/20b.sdql new file mode 100644 index 00000000..f3fd3da7 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/20c.sdql b/progs/job/hybrid/fj/20c.sdql new file mode 100644 index 00000000..7b4d6d1b --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/21a.sdql b/progs/job/hybrid/fj/21a.sdql new file mode 100644 index 00000000..7122121f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/21b.sdql b/progs/job/hybrid/fj/21b.sdql new file mode 100644 index 00000000..a175bcbd --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/21c.sdql b/progs/job/hybrid/fj/21c.sdql new file mode 100644 index 00000000..18d8361c --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/22a.sdql b/progs/job/hybrid/fj/22a.sdql new file mode 100644 index 00000000..fff45b60 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/22b.sdql b/progs/job/hybrid/fj/22b.sdql new file mode 100644 index 00000000..d95c57de --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/22c.sdql b/progs/job/hybrid/fj/22c.sdql new file mode 100644 index 00000000..6dea2de2 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/22d.sdql b/progs/job/hybrid/fj/22d.sdql new file mode 100644 index 00000000..c2dceae3 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/23a.sdql b/progs/job/hybrid/fj/23a.sdql new file mode 100644 index 00000000..1113d1a4 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/23b.sdql b/progs/job/hybrid/fj/23b.sdql new file mode 100644 index 00000000..d12342c9 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/23c.sdql b/progs/job/hybrid/fj/23c.sdql new file mode 100644 index 00000000..7b123747 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/24a.sdql b/progs/job/hybrid/fj/24a.sdql new file mode 100644 index 00000000..41b45af1 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/24b.sdql b/progs/job/hybrid/fj/24b.sdql new file mode 100644 index 00000000..b1a77071 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/25a.sdql b/progs/job/hybrid/fj/25a.sdql new file mode 100644 index 00000000..f2a4e49a --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/25b.sdql b/progs/job/hybrid/fj/25b.sdql new file mode 100644 index 00000000..56db0e6c --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/25c.sdql b/progs/job/hybrid/fj/25c.sdql new file mode 100644 index 00000000..f13bfdeb --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/26a.sdql b/progs/job/hybrid/fj/26a.sdql new file mode 100644 index 00000000..0694f6b9 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/26b.sdql b/progs/job/hybrid/fj/26b.sdql new file mode 100644 index 00000000..3a5f8ab6 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/26c.sdql b/progs/job/hybrid/fj/26c.sdql new file mode 100644 index 00000000..7eafd7fb --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/27a.sdql b/progs/job/hybrid/fj/27a.sdql new file mode 100644 index 00000000..0c8fe82a --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/27b.sdql b/progs/job/hybrid/fj/27b.sdql new file mode 100644 index 00000000..fa215975 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/27c.sdql b/progs/job/hybrid/fj/27c.sdql new file mode 100644 index 00000000..2fcfcc08 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/28a.sdql b/progs/job/hybrid/fj/28a.sdql new file mode 100644 index 00000000..35a28c38 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/28b.sdql b/progs/job/hybrid/fj/28b.sdql new file mode 100644 index 00000000..2bd29848 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/28c.sdql b/progs/job/hybrid/fj/28c.sdql new file mode 100644 index 00000000..c4afd365 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/29a.sdql b/progs/job/hybrid/fj/29a.sdql new file mode 100644 index 00000000..2331c75c --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/29b.sdql b/progs/job/hybrid/fj/29b.sdql new file mode 100644 index 00000000..bda48af8 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/29c.sdql b/progs/job/hybrid/fj/29c.sdql new file mode 100644 index 00000000..77719508 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/2a.sdql b/progs/job/hybrid/fj/2a.sdql new file mode 100644 index 00000000..8c244057 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/2b.sdql b/progs/job/hybrid/fj/2b.sdql new file mode 100644 index 00000000..eac9fd59 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/2d.sdql b/progs/job/hybrid/fj/2d.sdql new file mode 100644 index 00000000..0007da18 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/30a.sdql b/progs/job/hybrid/fj/30a.sdql new file mode 100644 index 00000000..884957db --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/30b.sdql b/progs/job/hybrid/fj/30b.sdql new file mode 100644 index 00000000..3043b309 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/30c.sdql b/progs/job/hybrid/fj/30c.sdql new file mode 100644 index 00000000..85c74620 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/31a.sdql b/progs/job/hybrid/fj/31a.sdql new file mode 100644 index 00000000..da8d5523 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/31b.sdql b/progs/job/hybrid/fj/31b.sdql new file mode 100644 index 00000000..08164d28 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/31c.sdql b/progs/job/hybrid/fj/31c.sdql new file mode 100644 index 00000000..91be02ed --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/32b.sdql b/progs/job/hybrid/fj/32b.sdql new file mode 100644 index 00000000..06809246 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/33a.sdql b/progs/job/hybrid/fj/33a.sdql new file mode 100644 index 00000000..d5d0e212 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/33b.sdql b/progs/job/hybrid/fj/33b.sdql new file mode 100644 index 00000000..b8f927bb --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/33c.sdql b/progs/job/hybrid/fj/33c.sdql new file mode 100644 index 00000000..874671dd --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/3a.sdql b/progs/job/hybrid/fj/3a.sdql new file mode 100644 index 00000000..54920b25 --- /dev/null +++ b/progs/job/hybrid/fj/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) + @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/hybrid/fj/3b.sdql b/progs/job/hybrid/fj/3b.sdql new file mode 100644 index 00000000..6645964c --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/3c.sdql b/progs/job/hybrid/fj/3c.sdql new file mode 100644 index 00000000..6cbd4a42 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/4a.sdql b/progs/job/hybrid/fj/4a.sdql new file mode 100644 index 00000000..de975028 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/4b.sdql b/progs/job/hybrid/fj/4b.sdql new file mode 100644 index 00000000..66fd3a1f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/4c.sdql b/progs/job/hybrid/fj/4c.sdql new file mode 100644 index 00000000..8d851439 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/5c.sdql b/progs/job/hybrid/fj/5c.sdql new file mode 100644 index 00000000..e492c59a --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6a.sdql b/progs/job/hybrid/fj/6a.sdql new file mode 100644 index 00000000..c7b5ef0b --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6b.sdql b/progs/job/hybrid/fj/6b.sdql new file mode 100644 index 00000000..f21e48fa --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6c.sdql b/progs/job/hybrid/fj/6c.sdql new file mode 100644 index 00000000..07f72d87 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6d.sdql b/progs/job/hybrid/fj/6d.sdql new file mode 100644 index 00000000..cc3092ac --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6e.sdql b/progs/job/hybrid/fj/6e.sdql new file mode 100644 index 00000000..4a47e960 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/6f.sdql b/progs/job/hybrid/fj/6f.sdql new file mode 100644 index 00000000..70af48dc --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/7a.sdql b/progs/job/hybrid/fj/7a.sdql new file mode 100644 index 00000000..76df788e --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/7b.sdql b/progs/job/hybrid/fj/7b.sdql new file mode 100644 index 00000000..5f8d5ccb --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/7c.sdql b/progs/job/hybrid/fj/7c.sdql new file mode 100644 index 00000000..7412a7b3 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/8a.sdql b/progs/job/hybrid/fj/8a.sdql new file mode 100644 index 00000000..8a0e36fd --- /dev/null +++ b/progs/job/hybrid/fj/8a.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/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/progs/job/hybrid/fj/8b.sdql b/progs/job/hybrid/fj/8b.sdql new file mode 100644 index 00000000..18869f9e --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/8c.sdql b/progs/job/hybrid/fj/8c.sdql new file mode 100644 index 00000000..c669794a --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/8d.sdql b/progs/job/hybrid/fj/8d.sdql new file mode 100644 index 00000000..13fe2746 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/9a.sdql b/progs/job/hybrid/fj/9a.sdql new file mode 100644 index 00000000..c731237f --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/9b.sdql b/progs/job/hybrid/fj/9b.sdql new file mode 100644 index 00000000..3285f1d0 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/9c.sdql b/progs/job/hybrid/fj/9c.sdql new file mode 100644 index 00000000..e76b08f4 --- /dev/null +++ b/progs/job/hybrid/fj/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/job/hybrid/fj/9d.sdql b/progs/job/hybrid/fj/9d.sdql new file mode 100644 index 00000000..b8f07857 --- /dev/null +++ b/progs/job/hybrid/fj/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/progs/job/hybrid/gj/10a.sdql b/progs/job/hybrid/gj/10a.sdql new file mode 100644 index 00000000..1445f2a5 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/10c.sdql b/progs/job/hybrid/gj/10c.sdql new file mode 100644 index 00000000..c2fd5984 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/11a.sdql b/progs/job/hybrid/gj/11a.sdql new file mode 100644 index 00000000..9fdad054 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..f14cbdd1 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..98bbe7d2 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..edd87f95 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..9050dad1 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..decbad0a --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 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) + let x1 = interm0_tuple.col2 + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/12c.sdql b/progs/job/hybrid/gj/12c.sdql new file mode 100644 index 00000000..d22b7cbb --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col2 + 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 = 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 new file mode 100644 index 00000000..7c0198ae --- /dev/null +++ b/progs/job/hybrid/gj/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, 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 + 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 + 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.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/13b.sdql b/progs/job/hybrid/gj/13b.sdql new file mode 100644 index 00000000..6987bc89 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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(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 +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) + 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 + 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 new file mode 100644 index 00000000..bcb8314d --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + 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 + 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 new file mode 100644 index 00000000..909d0060 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + 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 + 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 new file mode 100644 index 00000000..d2ca96d9 --- /dev/null +++ b/progs/job/hybrid/gj/14a.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/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) -> @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 +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) + let x1 = interm0_tuple.col3 + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + 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 new file mode 100644 index 00000000..c38179bb --- /dev/null +++ b/progs/job/hybrid/gj/14b.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/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) -> @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 +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) + let x1 = interm0_tuple.col3 + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + 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 new file mode 100644 index 00000000..062c1620 --- /dev/null +++ b/progs/job/hybrid/gj/14c.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/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) -> @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 +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) + let x1 = interm0_tuple.col3 + if (x1 ∈ kt_trie0) then + let kt_trie1 = kt_trie0(x1) in + 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 new file mode 100644 index 00000000..ab09682b --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 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) + let x1 = interm0_tuple.col1 + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/15b.sdql b/progs/job/hybrid/gj/15b.sdql new file mode 100644 index 00000000..c9225b51 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 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) + let x1 = interm0_tuple.col1 + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/15c.sdql b/progs/job/hybrid/gj/15c.sdql new file mode 100644 index 00000000..7cf5e405 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 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) + let x1 = interm0_tuple.col1 + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/15d.sdql b/progs/job/hybrid/gj/15d.sdql new file mode 100644 index 00000000..bf110851 --- /dev/null +++ b/progs/job/hybrid/gj/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, 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) -> @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 +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) + let x1 = interm0_tuple.col1 + 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 = 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 new file mode 100644 index 00000000..7e5c3ece --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/16b.sdql b/progs/job/hybrid/gj/16b.sdql new file mode 100644 index 00000000..c7557f62 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/16c.sdql b/progs/job/hybrid/gj/16c.sdql new file mode 100644 index 00000000..d2a6d44b --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/16d.sdql b/progs/job/hybrid/gj/16d.sdql new file mode 100644 index 00000000..1ea020cc --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17a.sdql b/progs/job/hybrid/gj/17a.sdql new file mode 100644 index 00000000..cf33d3ed --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17b.sdql b/progs/job/hybrid/gj/17b.sdql new file mode 100644 index 00000000..89bde47d --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17c.sdql b/progs/job/hybrid/gj/17c.sdql new file mode 100644 index 00000000..2c57302c --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17d.sdql b/progs/job/hybrid/gj/17d.sdql new file mode 100644 index 00000000..e1541461 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17e.sdql b/progs/job/hybrid/gj/17e.sdql new file mode 100644 index 00000000..22705792 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/17f.sdql b/progs/job/hybrid/gj/17f.sdql new file mode 100644 index 00000000..d7ad0bf7 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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/job/hybrid/gj/18a.sdql b/progs/job/hybrid/gj/18a.sdql new file mode 100644 index 00000000..496684d8 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col2 + 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) + @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 +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/job/hybrid/gj/18b.sdql b/progs/job/hybrid/gj/18b.sdql new file mode 100644 index 00000000..20b01e24 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col2 + 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) + @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 +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/job/hybrid/gj/18c.sdql b/progs/job/hybrid/gj/18c.sdql new file mode 100644 index 00000000..a3208ae6 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col2 + 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) + @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 +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/job/hybrid/gj/19a.sdql b/progs/job/hybrid/gj/19a.sdql new file mode 100644 index 00000000..dbf3164b --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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/job/hybrid/gj/19b.sdql b/progs/job/hybrid/gj/19b.sdql new file mode 100644 index 00000000..3c75dd7e --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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/job/hybrid/gj/19c.sdql b/progs/job/hybrid/gj/19c.sdql new file mode 100644 index 00000000..afa658fc --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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/job/hybrid/gj/19d.sdql b/progs/job/hybrid/gj/19d.sdql new file mode 100644 index 00000000..0d6a6eae --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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/job/hybrid/gj/1a.sdql b/progs/job/hybrid/gj/1a.sdql new file mode 100644 index 00000000..abcc6c34 --- /dev/null +++ b/progs/job/hybrid/gj/1a.sdql @@ -0,0 +1,42 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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) -> @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 +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) + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/1b.sdql b/progs/job/hybrid/gj/1b.sdql new file mode 100644 index 00000000..d995033d --- /dev/null +++ b/progs/job/hybrid/gj/1b.sdql @@ -0,0 +1,42 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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) -> @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 +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) + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/1c.sdql b/progs/job/hybrid/gj/1c.sdql new file mode 100644 index 00000000..96393e68 --- /dev/null +++ b/progs/job/hybrid/gj/1c.sdql @@ -0,0 +1,42 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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) -> @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 +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) + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/1d.sdql b/progs/job/hybrid/gj/1d.sdql new file mode 100644 index 00000000..ffea9b15 --- /dev/null +++ b/progs/job/hybrid/gj/1d.sdql @@ -0,0 +1,42 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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) -> @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 +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) + 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 = in + promote[min_sum]() + diff --git a/progs/job/hybrid/gj/20a.sdql b/progs/job/hybrid/gj/20a.sdql new file mode 100644 index 00000000..7b5c12ef --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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/job/hybrid/gj/20b.sdql b/progs/job/hybrid/gj/20b.sdql new file mode 100644 index 00000000..e50082e5 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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/job/hybrid/gj/20c.sdql b/progs/job/hybrid/gj/20c.sdql new file mode 100644 index 00000000..0349e2c5 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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/job/hybrid/gj/21a.sdql b/progs/job/hybrid/gj/21a.sdql new file mode 100644 index 00000000..3c09a2f9 --- /dev/null +++ b/progs/job/hybrid/gj/21a.sdql @@ -0,0 +1,72 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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(4) { -> 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) -> @smallvecdict(4) { -> 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) + let x1 = interm1_tuple.col3 + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + 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 new file mode 100644 index 00000000..daefdadc --- /dev/null +++ b/progs/job/hybrid/gj/21b.sdql @@ -0,0 +1,72 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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(4) { -> 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) -> @smallvecdict(4) { -> 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) + let x1 = interm1_tuple.col3 + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + 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 new file mode 100644 index 00000000..ad54cfcd --- /dev/null +++ b/progs/job/hybrid/gj/21c.sdql @@ -0,0 +1,72 @@ +let t = load[ int}, title: @vec {int -> string}, imdb_index: @vec {int -> string}, kind_id: @vec {int -> int}, production_year: @vec {int -> int}, imdb_id: @vec {int -> string}, phonetic_code: @vec {int -> string}, episode_of_id: @vec {int -> 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(4) { -> 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) -> @smallvecdict(4) { -> 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) + let x1 = interm1_tuple.col3 + if (x1 ∈ lt_trie0) then + let lt_trie1 = lt_trie0(x1) in + 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 new file mode 100644 index 00000000..59f3fc6b --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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(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 +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/job/hybrid/gj/22b.sdql b/progs/job/hybrid/gj/22b.sdql new file mode 100644 index 00000000..19fa85a6 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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(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 +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/job/hybrid/gj/22c.sdql b/progs/job/hybrid/gj/22c.sdql new file mode 100644 index 00000000..f51ca1db --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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(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 +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/job/hybrid/gj/22d.sdql b/progs/job/hybrid/gj/22d.sdql new file mode 100644 index 00000000..20aa23dc --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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(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 +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(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 +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/job/hybrid/gj/23a.sdql b/progs/job/hybrid/gj/23a.sdql new file mode 100644 index 00000000..ca3588ac --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/23b.sdql b/progs/job/hybrid/gj/23b.sdql new file mode 100644 index 00000000..59796005 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/23c.sdql b/progs/job/hybrid/gj/23c.sdql new file mode 100644 index 00000000..a524d3ed --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/24a.sdql b/progs/job/hybrid/gj/24a.sdql new file mode 100644 index 00000000..05399f63 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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_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) + let x1 = interm0_tuple.col1 + 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( <- 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 +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(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 +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/job/hybrid/gj/24b.sdql b/progs/job/hybrid/gj/24b.sdql new file mode 100644 index 00000000..aa6238b6 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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_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) + let x1 = interm0_tuple.col1 + 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( <- 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 +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(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 +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/job/hybrid/gj/25a.sdql b/progs/job/hybrid/gj/25a.sdql new file mode 100644 index 00000000..4038a668 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/25b.sdql b/progs/job/hybrid/gj/25b.sdql new file mode 100644 index 00000000..d1396dd3 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/25c.sdql b/progs/job/hybrid/gj/25c.sdql new file mode 100644 index 00000000..5776c1a2 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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 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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/26a.sdql b/progs/job/hybrid/gj/26a.sdql new file mode 100644 index 00000000..2bddb45e --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/26b.sdql b/progs/job/hybrid/gj/26b.sdql new file mode 100644 index 00000000..5a43153e --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/26c.sdql b/progs/job/hybrid/gj/26c.sdql new file mode 100644 index 00000000..58fcbe68 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/27a.sdql b/progs/job/hybrid/gj/27a.sdql new file mode 100644 index 00000000..ea705135 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(4) { -> 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/job/hybrid/gj/27b.sdql b/progs/job/hybrid/gj/27b.sdql new file mode 100644 index 00000000..1c78c473 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(4) { -> 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/job/hybrid/gj/27c.sdql b/progs/job/hybrid/gj/27c.sdql new file mode 100644 index 00000000..4945b3a0 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(4) { -> 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/job/hybrid/gj/28a.sdql b/progs/job/hybrid/gj/28a.sdql new file mode 100644 index 00000000..3a1e98cf --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/28b.sdql b/progs/job/hybrid/gj/28b.sdql new file mode 100644 index 00000000..2d8f7416 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/28c.sdql b/progs/job/hybrid/gj/28c.sdql new file mode 100644 index 00000000..cf1b88b7 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/29a.sdql b/progs/job/hybrid/gj/29a.sdql new file mode 100644 index 00000000..7290dfd6 --- /dev/null +++ b/progs/job/hybrid/gj/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(4) { -> 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(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 +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(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 +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(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 +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(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 +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(4) { -> 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(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 +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/job/hybrid/gj/29b.sdql b/progs/job/hybrid/gj/29b.sdql new file mode 100644 index 00000000..065b9fb9 --- /dev/null +++ b/progs/job/hybrid/gj/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(4) { -> 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(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 +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(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 +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(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 +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(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 +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(4) { -> 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(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 +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/job/hybrid/gj/29c.sdql b/progs/job/hybrid/gj/29c.sdql new file mode 100644 index 00000000..343367b4 --- /dev/null +++ b/progs/job/hybrid/gj/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(4) { -> 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(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 +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(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 +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(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 +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(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 +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(4) { -> 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(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 +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/job/hybrid/gj/2a.sdql b/progs/job/hybrid/gj/2a.sdql new file mode 100644 index 00000000..21838ccb --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/2b.sdql b/progs/job/hybrid/gj/2b.sdql new file mode 100644 index 00000000..f24791fd --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/2d.sdql b/progs/job/hybrid/gj/2d.sdql new file mode 100644 index 00000000..ab9972e2 --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/30a.sdql b/progs/job/hybrid/gj/30a.sdql new file mode 100644 index 00000000..56b516f9 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(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 +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/job/hybrid/gj/30b.sdql b/progs/job/hybrid/gj/30b.sdql new file mode 100644 index 00000000..3a5e75ce --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(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 +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/job/hybrid/gj/30c.sdql b/progs/job/hybrid/gj/30c.sdql new file mode 100644 index 00000000..08d0e7a4 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(4) { -> 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(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 +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(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 +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(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 +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/job/hybrid/gj/31a.sdql b/progs/job/hybrid/gj/31a.sdql new file mode 100644 index 00000000..d90ff19b --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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_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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/31b.sdql b/progs/job/hybrid/gj/31b.sdql new file mode 100644 index 00000000..a8146b13 --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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_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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/31c.sdql b/progs/job/hybrid/gj/31c.sdql new file mode 100644 index 00000000..44a2befc --- /dev/null +++ b/progs/job/hybrid/gj/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) -> @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_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) + let x1 = interm0_tuple.col1 + if (x1 ∈ k_trie0) then + let k_trie1 = k_trie0(x1) in + 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 +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/job/hybrid/gj/32b.sdql b/progs/job/hybrid/gj/32b.sdql new file mode 100644 index 00000000..0e741514 --- /dev/null +++ b/progs/job/hybrid/gj/32b.sdql @@ -0,0 +1,50 @@ +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](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 +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) + 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 = 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 new file mode 100644 index 00000000..fe401951 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/33b.sdql b/progs/job/hybrid/gj/33b.sdql new file mode 100644 index 00000000..934f597d --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/33c.sdql b/progs/job/hybrid/gj/33c.sdql new file mode 100644 index 00000000..f61081b5 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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(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 +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(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 +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(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 +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(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 +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(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 +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/job/hybrid/gj/3a.sdql b/progs/job/hybrid/gj/3a.sdql new file mode 100644 index 00000000..9a907952 --- /dev/null +++ b/progs/job/hybrid/gj/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 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) + @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 new file mode 100644 index 00000000..c04ff3a0 --- /dev/null +++ b/progs/job/hybrid/gj/3b.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/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) -> @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/3c.sdql b/progs/job/hybrid/gj/3c.sdql new file mode 100644 index 00000000..7b3763ec --- /dev/null +++ b/progs/job/hybrid/gj/3c.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/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) -> @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/4a.sdql b/progs/job/hybrid/gj/4a.sdql new file mode 100644 index 00000000..08bba345 --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/4b.sdql b/progs/job/hybrid/gj/4b.sdql new file mode 100644 index 00000000..ddb102a6 --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/4c.sdql b/progs/job/hybrid/gj/4c.sdql new file mode 100644 index 00000000..ff20f378 --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/5c.sdql b/progs/job/hybrid/gj/5c.sdql new file mode 100644 index 00000000..3d014f07 --- /dev/null +++ b/progs/job/hybrid/gj/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/job/hybrid/gj/6a.sdql b/progs/job/hybrid/gj/6a.sdql new file mode 100644 index 00000000..7f212064 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/6b.sdql b/progs/job/hybrid/gj/6b.sdql new file mode 100644 index 00000000..01425f71 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/6c.sdql b/progs/job/hybrid/gj/6c.sdql new file mode 100644 index 00000000..b32bae49 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/6d.sdql b/progs/job/hybrid/gj/6d.sdql new file mode 100644 index 00000000..85061421 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/6e.sdql b/progs/job/hybrid/gj/6e.sdql new file mode 100644 index 00000000..d1c560fd --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/6f.sdql b/progs/job/hybrid/gj/6f.sdql new file mode 100644 index 00000000..e13aba22 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/7a.sdql b/progs/job/hybrid/gj/7a.sdql new file mode 100644 index 00000000..8d7fb6b4 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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](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 +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/job/hybrid/gj/7b.sdql b/progs/job/hybrid/gj/7b.sdql new file mode 100644 index 00000000..73803d1f --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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](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 +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/job/hybrid/gj/7c.sdql b/progs/job/hybrid/gj/7c.sdql new file mode 100644 index 00000000..109f42b7 --- /dev/null +++ b/progs/job/hybrid/gj/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](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 +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](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 +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/job/hybrid/gj/8a.sdql b/progs/job/hybrid/gj/8a.sdql new file mode 100644 index 00000000..629e401c --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/8b.sdql b/progs/job/hybrid/gj/8b.sdql new file mode 100644 index 00000000..e544a09d --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/8c.sdql b/progs/job/hybrid/gj/8c.sdql new file mode 100644 index 00000000..0365b4ac --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/8d.sdql b/progs/job/hybrid/gj/8d.sdql new file mode 100644 index 00000000..88ab6173 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/9a.sdql b/progs/job/hybrid/gj/9a.sdql new file mode 100644 index 00000000..a3f4eb78 --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/9b.sdql b/progs/job/hybrid/gj/9b.sdql new file mode 100644 index 00000000..3ad2f4ef --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/9c.sdql b/progs/job/hybrid/gj/9c.sdql new file mode 100644 index 00000000..4eb50aab --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/hybrid/gj/9d.sdql b/progs/job/hybrid/gj/9d.sdql new file mode 100644 index 00000000..a2409abd --- /dev/null +++ b/progs/job/hybrid/gj/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(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 +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/job/revised/fj/14a.sdql b/progs/job/revised/fj/14a.sdql new file mode 100644 index 00000000..577803c5 --- /dev/null +++ b/progs/job/revised/fj/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/fj/15a.sdql b/progs/job/revised/fj/15a.sdql new file mode 100644 index 00000000..1060f3e3 --- /dev/null +++ b/progs/job/revised/fj/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/fj/15b.sdql b/progs/job/revised/fj/15b.sdql new file mode 100644 index 00000000..03cd4deb --- /dev/null +++ b/progs/job/revised/fj/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/fj/17b.sdql b/progs/job/revised/fj/17b.sdql new file mode 100644 index 00000000..eb70467b --- /dev/null +++ b/progs/job/revised/fj/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/fj/3a.sdql b/progs/job/revised/fj/3a.sdql new file mode 100644 index 00000000..15bc034a --- /dev/null +++ b/progs/job/revised/fj/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/fj/3b.sdql b/progs/job/revised/fj/3b.sdql new file mode 100644 index 00000000..0bfb1717 --- /dev/null +++ b/progs/job/revised/fj/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/progs/job/sorting/fj/10a.sdql b/progs/job/sorting/fj/10a.sdql new file mode 100644 index 00000000..0b35ae47 --- /dev/null +++ b/progs/job/sorting/fj/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.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_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/sorting/fj/10c.sdql b/progs/job/sorting/fj/10c.sdql new file mode 100644 index 00000000..dc27747d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/11a.sdql b/progs/job/sorting/fj/11a.sdql new file mode 100644 index 00000000..9e81ac25 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/11b.sdql b/progs/job/sorting/fj/11b.sdql new file mode 100644 index 00000000..cb6b3f5b --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/11c.sdql b/progs/job/sorting/fj/11c.sdql new file mode 100644 index 00000000..011ce6dd --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/11d.sdql b/progs/job/sorting/fj/11d.sdql new file mode 100644 index 00000000..b3a2c726 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/12a.sdql b/progs/job/sorting/fj/12a.sdql new file mode 100644 index 00000000..10e63eaa --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/12b.sdql b/progs/job/sorting/fj/12b.sdql new file mode 100644 index 00000000..5ada78bf --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/12c.sdql b/progs/job/sorting/fj/12c.sdql new file mode 100644 index 00000000..c25109d5 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/13a.sdql b/progs/job/sorting/fj/13a.sdql new file mode 100644 index 00000000..1cdc4d77 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/13b.sdql b/progs/job/sorting/fj/13b.sdql new file mode 100644 index 00000000..f695bd72 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/13c.sdql b/progs/job/sorting/fj/13c.sdql new file mode 100644 index 00000000..cf7ac37f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/13d.sdql b/progs/job/sorting/fj/13d.sdql new file mode 100644 index 00000000..0a28d45f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/14a.sdql b/progs/job/sorting/fj/14a.sdql new file mode 100644 index 00000000..c2c3f2c6 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/14b.sdql b/progs/job/sorting/fj/14b.sdql new file mode 100644 index 00000000..363d74c5 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/14c.sdql b/progs/job/sorting/fj/14c.sdql new file mode 100644 index 00000000..d87584aa --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/15a.sdql b/progs/job/sorting/fj/15a.sdql new file mode 100644 index 00000000..d6f3a60d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/15b.sdql b/progs/job/sorting/fj/15b.sdql new file mode 100644 index 00000000..1c6702ae --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/15c.sdql b/progs/job/sorting/fj/15c.sdql new file mode 100644 index 00000000..1630a52e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/15d.sdql b/progs/job/sorting/fj/15d.sdql new file mode 100644 index 00000000..0394472c --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/16a.sdql b/progs/job/sorting/fj/16a.sdql new file mode 100644 index 00000000..26f64047 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/16b.sdql b/progs/job/sorting/fj/16b.sdql new file mode 100644 index 00000000..d5874209 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/16c.sdql b/progs/job/sorting/fj/16c.sdql new file mode 100644 index 00000000..a8e3dacf --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/16d.sdql b/progs/job/sorting/fj/16d.sdql new file mode 100644 index 00000000..ee079bda --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17a.sdql b/progs/job/sorting/fj/17a.sdql new file mode 100644 index 00000000..f7ec3eca --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17b.sdql b/progs/job/sorting/fj/17b.sdql new file mode 100644 index 00000000..8f9f3ceb --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17c.sdql b/progs/job/sorting/fj/17c.sdql new file mode 100644 index 00000000..ca4552da --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17d.sdql b/progs/job/sorting/fj/17d.sdql new file mode 100644 index 00000000..e9d81bc7 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17e.sdql b/progs/job/sorting/fj/17e.sdql new file mode 100644 index 00000000..4b141b7f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/17f.sdql b/progs/job/sorting/fj/17f.sdql new file mode 100644 index 00000000..6d58981d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/18a.sdql b/progs/job/sorting/fj/18a.sdql new file mode 100644 index 00000000..2c503c3e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/18b.sdql b/progs/job/sorting/fj/18b.sdql new file mode 100644 index 00000000..b31e7b3d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/18c.sdql b/progs/job/sorting/fj/18c.sdql new file mode 100644 index 00000000..4f852c30 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/19a.sdql b/progs/job/sorting/fj/19a.sdql new file mode 100644 index 00000000..a0c47ab4 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/19b.sdql b/progs/job/sorting/fj/19b.sdql new file mode 100644 index 00000000..7ee89895 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/19c.sdql b/progs/job/sorting/fj/19c.sdql new file mode 100644 index 00000000..dba0355d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/19d.sdql b/progs/job/sorting/fj/19d.sdql new file mode 100644 index 00000000..de2f7255 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/1a.sdql b/progs/job/sorting/fj/1a.sdql new file mode 100644 index 00000000..c5207d71 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/1b.sdql b/progs/job/sorting/fj/1b.sdql new file mode 100644 index 00000000..e93f984e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/1c.sdql b/progs/job/sorting/fj/1c.sdql new file mode 100644 index 00000000..0de60154 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/1d.sdql b/progs/job/sorting/fj/1d.sdql new file mode 100644 index 00000000..e58c0ccf --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/20a.sdql b/progs/job/sorting/fj/20a.sdql new file mode 100644 index 00000000..09ffa5da --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/20b.sdql b/progs/job/sorting/fj/20b.sdql new file mode 100644 index 00000000..6f07ba6f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/20c.sdql b/progs/job/sorting/fj/20c.sdql new file mode 100644 index 00000000..feaf88bc --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/21a.sdql b/progs/job/sorting/fj/21a.sdql new file mode 100644 index 00000000..692a083e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/21b.sdql b/progs/job/sorting/fj/21b.sdql new file mode 100644 index 00000000..01584dc3 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/21c.sdql b/progs/job/sorting/fj/21c.sdql new file mode 100644 index 00000000..7925621b --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/22a.sdql b/progs/job/sorting/fj/22a.sdql new file mode 100644 index 00000000..cecbf441 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/22b.sdql b/progs/job/sorting/fj/22b.sdql new file mode 100644 index 00000000..cc13e5e2 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/22c.sdql b/progs/job/sorting/fj/22c.sdql new file mode 100644 index 00000000..359fe1e3 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/22d.sdql b/progs/job/sorting/fj/22d.sdql new file mode 100644 index 00000000..08636130 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/23a.sdql b/progs/job/sorting/fj/23a.sdql new file mode 100644 index 00000000..d42b21f0 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/23b.sdql b/progs/job/sorting/fj/23b.sdql new file mode 100644 index 00000000..90c13ec4 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/23c.sdql b/progs/job/sorting/fj/23c.sdql new file mode 100644 index 00000000..6abbb7a2 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/24a.sdql b/progs/job/sorting/fj/24a.sdql new file mode 100644 index 00000000..29da745c --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/24b.sdql b/progs/job/sorting/fj/24b.sdql new file mode 100644 index 00000000..2ce84f44 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/25a.sdql b/progs/job/sorting/fj/25a.sdql new file mode 100644 index 00000000..c0a82ec8 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/25b.sdql b/progs/job/sorting/fj/25b.sdql new file mode 100644 index 00000000..c7ee9619 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/25c.sdql b/progs/job/sorting/fj/25c.sdql new file mode 100644 index 00000000..0436016b --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/26a.sdql b/progs/job/sorting/fj/26a.sdql new file mode 100644 index 00000000..f047e578 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/26b.sdql b/progs/job/sorting/fj/26b.sdql new file mode 100644 index 00000000..87289824 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/26c.sdql b/progs/job/sorting/fj/26c.sdql new file mode 100644 index 00000000..3ca3747e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/27a.sdql b/progs/job/sorting/fj/27a.sdql new file mode 100644 index 00000000..a6315fc9 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/27b.sdql b/progs/job/sorting/fj/27b.sdql new file mode 100644 index 00000000..4ca600ad --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/27c.sdql b/progs/job/sorting/fj/27c.sdql new file mode 100644 index 00000000..45debd1f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/28a.sdql b/progs/job/sorting/fj/28a.sdql new file mode 100644 index 00000000..4f4f37fb --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/28b.sdql b/progs/job/sorting/fj/28b.sdql new file mode 100644 index 00000000..a0d1b581 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/28c.sdql b/progs/job/sorting/fj/28c.sdql new file mode 100644 index 00000000..f39b46d4 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/29a.sdql b/progs/job/sorting/fj/29a.sdql new file mode 100644 index 00000000..a5a3dc20 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/29b.sdql b/progs/job/sorting/fj/29b.sdql new file mode 100644 index 00000000..3d0be876 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/29c.sdql b/progs/job/sorting/fj/29c.sdql new file mode 100644 index 00000000..f9888389 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/2a.sdql b/progs/job/sorting/fj/2a.sdql new file mode 100644 index 00000000..8c244057 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/2b.sdql b/progs/job/sorting/fj/2b.sdql new file mode 100644 index 00000000..eac9fd59 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/2d.sdql b/progs/job/sorting/fj/2d.sdql new file mode 100644 index 00000000..0007da18 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/30a.sdql b/progs/job/sorting/fj/30a.sdql new file mode 100644 index 00000000..7fb9c4ce --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/30b.sdql b/progs/job/sorting/fj/30b.sdql new file mode 100644 index 00000000..817f011f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/30c.sdql b/progs/job/sorting/fj/30c.sdql new file mode 100644 index 00000000..56b0f206 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/31a.sdql b/progs/job/sorting/fj/31a.sdql new file mode 100644 index 00000000..352051c5 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/31b.sdql b/progs/job/sorting/fj/31b.sdql new file mode 100644 index 00000000..cb428b14 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/31c.sdql b/progs/job/sorting/fj/31c.sdql new file mode 100644 index 00000000..43ffd5b9 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/32b.sdql b/progs/job/sorting/fj/32b.sdql new file mode 100644 index 00000000..3fee9497 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/33a.sdql b/progs/job/sorting/fj/33a.sdql new file mode 100644 index 00000000..083fb36e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/33b.sdql b/progs/job/sorting/fj/33b.sdql new file mode 100644 index 00000000..680298d9 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/33c.sdql b/progs/job/sorting/fj/33c.sdql new file mode 100644 index 00000000..d97b51a0 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/3a.sdql b/progs/job/sorting/fj/3a.sdql new file mode 100644 index 00000000..2a91d274 --- /dev/null +++ b/progs/job/sorting/fj/3a.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 + +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/job/sorting/fj/3b.sdql b/progs/job/sorting/fj/3b.sdql new file mode 100644 index 00000000..1aeaa5c1 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/3c.sdql b/progs/job/sorting/fj/3c.sdql new file mode 100644 index 00000000..14f56e0a --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/4a.sdql b/progs/job/sorting/fj/4a.sdql new file mode 100644 index 00000000..de975028 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/4b.sdql b/progs/job/sorting/fj/4b.sdql new file mode 100644 index 00000000..66fd3a1f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/4c.sdql b/progs/job/sorting/fj/4c.sdql new file mode 100644 index 00000000..8d851439 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/5c.sdql b/progs/job/sorting/fj/5c.sdql new file mode 100644 index 00000000..e492c59a --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6a.sdql b/progs/job/sorting/fj/6a.sdql new file mode 100644 index 00000000..843ed387 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6b.sdql b/progs/job/sorting/fj/6b.sdql new file mode 100644 index 00000000..252369ed --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6c.sdql b/progs/job/sorting/fj/6c.sdql new file mode 100644 index 00000000..5daad7f7 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6d.sdql b/progs/job/sorting/fj/6d.sdql new file mode 100644 index 00000000..937129f4 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6e.sdql b/progs/job/sorting/fj/6e.sdql new file mode 100644 index 00000000..d5252875 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/6f.sdql b/progs/job/sorting/fj/6f.sdql new file mode 100644 index 00000000..9997dcbc --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/7a.sdql b/progs/job/sorting/fj/7a.sdql new file mode 100644 index 00000000..4c3bc62d --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/7b.sdql b/progs/job/sorting/fj/7b.sdql new file mode 100644 index 00000000..291cdab2 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/7c.sdql b/progs/job/sorting/fj/7c.sdql new file mode 100644 index 00000000..d3fff45f --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/8a.sdql b/progs/job/sorting/fj/8a.sdql new file mode 100644 index 00000000..adc3b5e2 --- /dev/null +++ b/progs/job/sorting/fj/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 { <_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 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/progs/job/sorting/fj/8b.sdql b/progs/job/sorting/fj/8b.sdql new file mode 100644 index 00000000..37b6d1ae --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/8c.sdql b/progs/job/sorting/fj/8c.sdql new file mode 100644 index 00000000..dceaeca0 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/8d.sdql b/progs/job/sorting/fj/8d.sdql new file mode 100644 index 00000000..6c536206 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/9a.sdql b/progs/job/sorting/fj/9a.sdql new file mode 100644 index 00000000..e1a9828e --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/9b.sdql b/progs/job/sorting/fj/9b.sdql new file mode 100644 index 00000000..468dfa44 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/9c.sdql b/progs/job/sorting/fj/9c.sdql new file mode 100644 index 00000000..05385243 --- /dev/null +++ b/progs/job/sorting/fj/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/job/sorting/fj/9d.sdql b/progs/job/sorting/fj/9d.sdql new file mode 100644 index 00000000..d23dfec6 --- /dev/null +++ b/progs/job/sorting/fj/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/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 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 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 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 = 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/debug_helper.h b/runtime/debug_helper.h new file mode 100644 index 00000000..695cf6be --- /dev/null +++ b/runtime/debug_helper.h @@ -0,0 +1,38 @@ +#pragma once + +#include "vector" +#include "smallvecdict.h" +#include "sorted_dict.h" + +// 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) + unsorted[x][offsets[i]] += 1; + return unsorted; +} +// 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) + unsorted[x] = to_unsorted(inner_trie, offsets); + return unsorted; +} + +// 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/headers.h b/runtime/headers.h index a721a53b..de81be08 100644 --- a/runtime/headers.h +++ b/runtime/headers.h @@ -18,5 +18,8 @@ #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" +#include "sort_helper.h" \ No newline at end of file diff --git a/runtime/smallvecdict.h b/runtime/smallvecdict.h index 204ddad9..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() { @@ -136,4 +137,20 @@ 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(); } + + 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()); + } }; diff --git a/runtime/sort_helper.h b/runtime/sort_helper.h new file mode 100644 index 00000000..36a87c49 --- /dev/null +++ b/runtime/sort_helper.h @@ -0,0 +1,29 @@ +#pragma once + +template +std::vector sorted_indices(const std::vector& vec0, const std::vector&... vecs) +{ + // 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 +std::vector> sort_vec(std::vector> vec) { + std::sort(vec.begin(), vec.end(), [](const std::tuple& a, const std::tuple& b) + { + return get(a) < get(b); + }); + return vec; +} diff --git a/runtime/sorted_dict.h b/runtime/sorted_dict.h new file mode 100644 index 00000000..e1019fc4 --- /dev/null +++ b/runtime/sorted_dict.h @@ -0,0 +1,159 @@ +#pragma once + +#include + +using namespace std; + +class Range { + size_t ll_; + size_t rr_; + +public: + Range() : ll_(-1), rr_(-1) {} + + class Proxy { + Range &range_; + + public: + explicit Proxy(Range &range) : range_(range) {} + + Proxy &operator+=(int) { + ++range_.rr_; + return *this; + } + }; + + Proxy operator[](size_t const idx) { + if (ll_ == -1) { + ll_ = idx; + rr_ = idx; + } + return Proxy(*this); + } + + size_t left() const { + return ll_; + } + + 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 +class SortedDict { + vector> data_; + std::optional>> last_found; + +public: + SortedDict() = default; + + explicit SortedDict(size_t n) { + data_.reserve(n); + } + + size_t size() const { + return data_.size(); + } + + VT &operator[](const KT &key) { + if (data_.empty() || key != data_.back().first) { + data_.emplace_back(key, VT()); + } + return data_.back().second; + } + + 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; + }); + 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; + } + + bool contains(const KT &key) { + return this->find(key) != this->end(); + } + + 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) { + last_found = std::pair(key, std::ref(it->second)); + return it; + } + return data_.end(); + } + + 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) { + last_found = std::pair(key, std::ref(it->second)); + return it; + } + return data_.end(); + } + + typename vector>::iterator begin() { + return data_.begin(); + } + + typename vector>::iterator end() { + return data_.end(); + } + + typename vector>::const_iterator begin() const { + return data_.begin(); + } + + 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 diff --git a/src/main/scala/sdql/analysis/TypeInference.scala b/src/main/scala/sdql/analysis/TypeInference.scala index 190bd3f5..d6f345eb 100644 --- a/src/main/scala/sdql/analysis/TypeInference.scala +++ b/src/main/scala/sdql/analysis/TypeInference.scala @@ -39,8 +39,10 @@ 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 { }") + // @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)))) @@ -106,6 +108,19 @@ 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 sizes = args.map { arg => + run(arg) match { + case DictType(IntType, _, Vec(size)) => size + case tpe => raise(s"$name unexpected arg ${tpe.simpleName}") + } + } + 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) case External(Inv.SYMBOL, args) => val arg = args match { case Seq(e) => e } run(arg) @@ -153,6 +168,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 ebbde196..77642e02 100644 --- a/src/main/scala/sdql/backend/CppCodegen.scala +++ b/src/main/scala/sdql/backend/CppCodegen.scala @@ -5,77 +5,56 @@ 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) - 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 - s"""#include "../runtime/headers.h" - |$csvBody + val queryBody = run(e)(Map(), isTernary = false, benchmarkRuns) + s"""#include "../runtime/headers.h"\n |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 } val e1Cpp = e1 match { - // 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)};" - case e1: Const => s"constexpr auto $name = ${run(e1)(Map(), isTernary = false)};" - case _ => + 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 => + 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)}$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 = CppCodegen.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} < ${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}]" - case DictType(_, _, _: SmallVecDict) => s"&${k.name}" - case DictType(_, _, _: SmallVecDicts) => s"${k.name}" - case t => raise(s"unexpected: ${t.prettyPrint}") + 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") + case t => raise(s"unexpected: ${t.prettyPrint}") } - val rhs = CppCodegen.run(e1)(typesLocal, isTernary) + val rhs = run(e1)(typesLocal, isTernary, benchmarkRuns) s"auto $lhs : $rhs" } s"for ($head) { $body }" @@ -134,20 +113,21 @@ 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 { - 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))) => @@ -160,40 +140,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)})" + s"${run(on)}.lastIndex(${run(patt)})" + 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, _) => 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)})" @@ -219,8 +204,8 @@ object CppCodegen { case Initialise(tpe, e) => val unpacked = TropicalSemiRingType.unpack(tpe) val agg = Aggregation.fromType(tpe) - val initialiseCpp = initialise(unpacked)(agg, typesCtx, isTernary) - s"${cppType(unpacked)}($initialiseCpp); ${CppCodegen.run(e)}" + val initialiseCpp = initialise(unpacked)(agg, typesCtx, isTernary, benchmarkRuns) + s"${cppType(unpacked)}($initialiseCpp); ${run(e)}" case Update(e, agg, destination) => val (lhs, rhs) = cppLhsRhs(e, destination) @@ -233,21 +218,81 @@ object CppCodegen { case Modify(e, destination) => val (lhs, rhs) = cppLhsRhs(e, destination) - s"$lhs = $rhs;" + TypeInference.run(e) match { + // 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;" + } + + case Timer(e) => + val benchStart = + if (benchmarkRuns == 0) "\n" + else + // note: first benchmark run is warmup + 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"""\n + |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 load(e: Load, name: String) = (e: @unchecked) match { + case Load(path, tp: RecordType, skipCols) => + // 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 + 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 + |const auto ${name.toLowerCase} = ${cppType(tp, noTemplate = true)}($init); + |""".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) - 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) => "" @@ -260,67 +305,84 @@ 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 = CppCodegen.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) = - 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))), _) => - 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) - } + 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 | _: SortedDict))), + _ + ) => + 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) + 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 = + private def initialise( + tpe: Type + )(implicit agg: Aggregation, typesCtx: TypesCtx, isTernary: Boolean, benchmarkRuns: Int): 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))) => run(e) + case DictType(_, _, SortedDict(Some(e))) => 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"MAX_STRING" + 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 { @@ -333,12 +395,16 @@ 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" 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" @@ -351,62 +417,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): String = { - 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) { diff --git a/src/main/scala/sdql/frontend/Parser.scala b/src/main/scala/sdql/frontend/Parser.scala index 17d8231e..142010a3 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 ) @@ -155,10 +156,12 @@ 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 | 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) private def vec[$: P] = P("vec" ~ sized.?).map(Vec.apply) private def sized[$: P] = P("(" ~/ integral.!.map(_.toInt) ~/ ")") @@ -167,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) @@ -231,4 +234,6 @@ object Parser { } value } + + private def timer(implicit ctx: P[?]) = P("timer" ~ expr).map(e => Timer(e)) } 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 e15fe50c..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 @@ -91,8 +89,10 @@ 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 case class Vec(size: Option[Int] = None) extends DictHint /** @@ -222,3 +222,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/ExternalFunctions.scala b/src/main/scala/sdql/ir/ExternalFunctions.scala index 765e5a65..d1fce3e5 100644 --- a/src/main/scala/sdql/ir/ExternalFunctions.scala +++ b/src/main/scala/sdql/ir/ExternalFunctions.scala @@ -20,6 +20,8 @@ object ExternalFunctions { object StrIndexOf extends ExternalFactory("StrIndexOf") object FirstIndex extends ExternalFactory("FirstIndex") object LastIndex extends ExternalFactory("LastIndex") + object SortedIndices extends ExternalFactory("SortedIndices") + object SortedVec extends ExternalFactory("SortedVec") object Year extends ExternalFactory("Year") object CStore extends ExternalFactory("CStore") object ParseDate extends ExternalFactory("ParseDate") 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/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/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/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 } } diff --git a/src/main/scala/sdql/model/OptPlanModel.scala b/src/main/scala/sdql/model/OptPlanModel.scala new file mode 100644 index 00000000..c006706e --- /dev/null +++ b/src/main/scala/sdql/model/OptPlanModel.scala @@ -0,0 +1,44 @@ +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 } + +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) + +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/main/scala/sdql/transformations/Rewriter.scala b/src/main/scala/sdql/transformations/Rewriter.scala index c87d6cd3..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)) } } @@ -167,9 +168,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 | Range | _: 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/backend/CppCodegenTest.scala b/src/test/scala/sdql/backend/CppCodegenTest.scala index cbccad39..77bb4c96 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 } @@ -526,18 +526,574 @@ 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 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") + } + it should "codegen JOB FJ 14" in { + CodegenHelpers.compilesFile("progs/job/revised/fj/14a.sdql") + } + it should "codegen JOB FJ 15" in { + 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/fj/17b.sdql") + } +} + 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 51fe2134..94fc1f51 100644 --- a/src/test/scala/sdql/backend/CppCompileTest.scala +++ b/src/test/scala/sdql/backend/CppCompileTest.scala @@ -472,6 +472,522 @@ 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") + } +} + +// 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 CppCompileTestJOBFJRevised extends AnyFlatSpec with ParallelTestExecution { + + // note: these tests expect JOB files to be present in your datasets folder + private object TestJOBFJRevised extends Tag("TestJOBFJRevised") + + 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 TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/14a.sdql", "results/job/14a.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 TestJOBFJRevised in { + CompileHelpers.assertOutputs("progs/job/revised/fj/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 @@ -482,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 { @@ -503,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") } } @@ -525,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 { @@ -546,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") } } @@ -568,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 { @@ -589,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") } } @@ -611,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 { @@ -632,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") } } 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( diff --git a/src/test/scala/sdql/frontend/PrintTest.scala b/src/test/scala/sdql/frontend/PrintTest.scala new file mode 100644 index 00000000..57ea0ff1 --- /dev/null +++ b/src/test/scala/sdql/frontend/PrintTest.scala @@ -0,0 +1,27 @@ +// 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) +// } +//} diff --git a/src/test/scala/sdql/model/OptPlanModelTest.scala b/src/test/scala/sdql/model/OptPlanModelTest.scala new file mode 100644 index 00000000..94d6cb1a --- /dev/null +++ b/src/test/scala/sdql/model/OptPlanModelTest.scala @@ -0,0 +1,20 @@ +package sdql.model + +import org.scalatest.ParallelTestExecution +import org.scalatest.flatspec.AnyFlatSpec + +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") + + 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 => OptPlanModel.fromPath(path)) + } +} diff --git a/src/test/scala/sdql/transformations/RewriterTest.scala b/src/test/scala/sdql/transformations/RewriterTest.scala index 33395cf1..4b484d10 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 {