├── .gitignore ├── .style.yapf ├── LICENSE ├── README.md ├── assets ├── balsa-overview.png └── wandb-example.png ├── balsa ├── __init__.py ├── card_est.py ├── cluster │ ├── check_cluster.py │ ├── cluster.yml │ └── warmup_pg_servers.py ├── costing.py ├── envs │ ├── __init__.py │ └── envs.py ├── execution.py ├── experience.py ├── hyperparams.py ├── models │ ├── __init__.py │ ├── models.py │ ├── transformer.py │ └── treeconv.py ├── optimizer.py ├── params_registry.py ├── plan_analysis.py ├── search.py ├── util │ ├── __init__.py │ ├── dataset.py │ ├── graphs.py │ ├── plans_lib.py │ ├── postgres.py │ └── simple_sql_parser.py └── utils.py ├── checkpoints ├── sim-MinCardCost-rand52split-680secs.ckpt ├── sim-MinCardCost-slowsplit-610secs.ckpt ├── sim-MinCardCost-train113JOB-784s-13epochs.ckpt └── sim-PostgresCost-rand52split-26epochs.ckpt ├── conf └── balsa-postgresql.conf ├── experiments.py ├── format.sh ├── load-postgres ├── add_fks.sql ├── fkindexes.sql ├── load_job_postgres.sh ├── schema.sql └── schema_with_fks.sql ├── pg_executor ├── pg_executor │ ├── __init__.py │ ├── dbmsx_executor.py │ └── pg_executor.py ├── requirements.txt └── setup.py ├── queries ├── join-order-benchmark-extended │ ├── 10a.sql │ ├── 10b.sql │ ├── 10c.sql │ ├── 11a.sql │ ├── 11b.sql │ ├── 11c.sql │ ├── 11d.sql │ ├── 12a.sql │ ├── 12b.sql │ ├── 12c.sql │ ├── 13a.sql │ ├── 13b.sql │ ├── 13c.sql │ ├── 13d.sql │ ├── 14a.sql │ ├── 14b.sql │ ├── 14c.sql │ ├── 15a.sql │ ├── 15b.sql │ ├── 15c.sql │ ├── 15d.sql │ ├── 16a.sql │ ├── 16b.sql │ ├── 16c.sql │ ├── 16d.sql │ ├── 17a.sql │ ├── 17b.sql │ ├── 17c.sql │ ├── 17d.sql │ ├── 17e.sql │ ├── 17f.sql │ ├── 18a.sql │ ├── 18b.sql │ ├── 18c.sql │ ├── 19a.sql │ ├── 19b.sql │ ├── 19c.sql │ ├── 19d.sql │ ├── 1a.sql │ ├── 1b.sql │ ├── 1c.sql │ ├── 1d.sql │ ├── 20a.sql │ ├── 20b.sql │ ├── 20c.sql │ ├── 21a.sql │ ├── 21b.sql │ ├── 21c.sql │ ├── 22a.sql │ ├── 22b.sql │ ├── 22c.sql │ ├── 22d.sql │ ├── 23a.sql │ ├── 23b.sql │ ├── 23c.sql │ ├── 24a.sql │ ├── 24b.sql │ ├── 25a.sql │ ├── 25b.sql │ ├── 25c.sql │ ├── 26a.sql │ ├── 26b.sql │ ├── 26c.sql │ ├── 27a.sql │ ├── 27b.sql │ ├── 27c.sql │ ├── 28a.sql │ ├── 28b.sql │ ├── 28c.sql │ ├── 29a.sql │ ├── 29b.sql │ ├── 29c.sql │ ├── 2a.sql │ ├── 2b.sql │ ├── 2c.sql │ ├── 2d.sql │ ├── 30a.sql │ ├── 30b.sql │ ├── 30c.sql │ ├── 31a.sql │ ├── 31b.sql │ ├── 31c.sql │ ├── 32a.sql │ ├── 32b.sql │ ├── 33a.sql │ ├── 33b.sql │ ├── 33c.sql │ ├── 3a.sql │ ├── 3b.sql │ ├── 3c.sql │ ├── 4a.sql │ ├── 4b.sql │ ├── 4c.sql │ ├── 5a.sql │ ├── 5b.sql │ ├── 5c.sql │ ├── 6a.sql │ ├── 6b.sql │ ├── 6c.sql │ ├── 6d.sql │ ├── 6e.sql │ ├── 6f.sql │ ├── 7a.sql │ ├── 7b.sql │ ├── 7c.sql │ ├── 8a.sql │ ├── 8b.sql │ ├── 8c.sql │ ├── 8d.sql │ ├── 9a.sql │ ├── 9b.sql │ ├── 9c.sql │ ├── 9d.sql │ ├── README.md │ ├── e10a.sql │ ├── e10b.sql │ ├── e11a.sql │ ├── e11b.sql │ ├── e12a.sql │ ├── e12b.sql │ ├── e1a.sql │ ├── e1b.sql │ ├── e2a.sql │ ├── e2b.sql │ ├── e3a.sql │ ├── e3b.sql │ ├── e4a.sql │ ├── e4b.sql │ ├── e5a.sql │ ├── e5b.sql │ ├── e6a.sql │ ├── e6b.sql │ ├── e7a.sql │ ├── e7b.sql │ ├── e8a.sql │ ├── e8b.sql │ ├── e9a.sql │ └── e9b.sql └── join-order-benchmark │ ├── 10a.sql │ ├── 10b.sql │ ├── 10c.sql │ ├── 11a.sql │ ├── 11b.sql │ ├── 11c.sql │ ├── 11d.sql │ ├── 12a.sql │ ├── 12b.sql │ ├── 12c.sql │ ├── 13a.sql │ ├── 13b.sql │ ├── 13c.sql │ ├── 13d.sql │ ├── 14a.sql │ ├── 14b.sql │ ├── 14c.sql │ ├── 15a.sql │ ├── 15b.sql │ ├── 15c.sql │ ├── 15d.sql │ ├── 16a.sql │ ├── 16b.sql │ ├── 16c.sql │ ├── 16d.sql │ ├── 17a.sql │ ├── 17b.sql │ ├── 17c.sql │ ├── 17d.sql │ ├── 17e.sql │ ├── 17f.sql │ ├── 18a.sql │ ├── 18b.sql │ ├── 18c.sql │ ├── 19a.sql │ ├── 19b.sql │ ├── 19c.sql │ ├── 19d.sql │ ├── 1a.sql │ ├── 1b.sql │ ├── 1c.sql │ ├── 1d.sql │ ├── 20a.sql │ ├── 20b.sql │ ├── 20c.sql │ ├── 21a.sql │ ├── 21b.sql │ ├── 21c.sql │ ├── 22a.sql │ ├── 22b.sql │ ├── 22c.sql │ ├── 22d.sql │ ├── 23a.sql │ ├── 23b.sql │ ├── 23c.sql │ ├── 24a.sql │ ├── 24b.sql │ ├── 25a.sql │ ├── 25b.sql │ ├── 25c.sql │ ├── 26a.sql │ ├── 26b.sql │ ├── 26c.sql │ ├── 27a.sql │ ├── 27b.sql │ ├── 27c.sql │ ├── 28a.sql │ ├── 28b.sql │ ├── 28c.sql │ ├── 29a.sql │ ├── 29b.sql │ ├── 29c.sql │ ├── 2a.sql │ ├── 2b.sql │ ├── 2c.sql │ ├── 2d.sql │ ├── 30a.sql │ ├── 30b.sql │ ├── 30c.sql │ ├── 31a.sql │ ├── 31b.sql │ ├── 31c.sql │ ├── 32a.sql │ ├── 32b.sql │ ├── 33a.sql │ ├── 33b.sql │ ├── 33c.sql │ ├── 3a.sql │ ├── 3b.sql │ ├── 3c.sql │ ├── 4a.sql │ ├── 4b.sql │ ├── 4c.sql │ ├── 5a.sql │ ├── 5b.sql │ ├── 5c.sql │ ├── 6a.sql │ ├── 6b.sql │ ├── 6c.sql │ ├── 6d.sql │ ├── 6e.sql │ ├── 6f.sql │ ├── 7a.sql │ ├── 7b.sql │ ├── 7c.sql │ ├── 8a.sql │ ├── 8b.sql │ ├── 8c.sql │ ├── 8d.sql │ ├── 9a.sql │ ├── 9b.sql │ ├── 9c.sql │ ├── 9d.sql │ └── README.md ├── requirements.txt ├── run.py ├── scripts ├── launch.sh ├── non_parallel_log_replay.py ├── prepend_imdb_headers.py ├── start-mps.sh ├── stop-mps.sh └── visualize_plan_analysis.py ├── setup.py ├── setup.sh ├── sim.py └── train_utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | **/*.pyc 3 | **/.ipynb_checkpoints 4 | .vscode 5 | .DS_Store 6 | logfile 7 | venv 8 | *egg-info 9 | save 10 | runs 11 | 12 | results/*.pkl 13 | wandb 14 | data/iter-*.pkl 15 | data/initial_policy_data.pkl 16 | 17 | *.pkl 18 | *.csv 19 | *.log 20 | 21 | logs/**/*.pdf 22 | -------------------------------------------------------------------------------- /.style.yapf: -------------------------------------------------------------------------------- 1 | [style] 2 | based_on_style = google 3 | allow_split_before_dict_value = False -------------------------------------------------------------------------------- /assets/balsa-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/assets/balsa-overview.png -------------------------------------------------------------------------------- /assets/wandb-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/assets/wandb-example.png -------------------------------------------------------------------------------- /balsa/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from balsa import envs 16 | from balsa import execution 17 | from balsa import hyperparams 18 | from balsa import models 19 | from balsa import params_registry 20 | from balsa import plan_analysis 21 | from balsa import utils 22 | -------------------------------------------------------------------------------- /balsa/envs/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from .envs import JoinOrderBenchmark 16 | from .envs import RunningStats 17 | from .envs import Workload 18 | -------------------------------------------------------------------------------- /balsa/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from .models import * 16 | from . import treeconv 17 | -------------------------------------------------------------------------------- /balsa/models/models.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import numpy as np 16 | from torch import nn 17 | 18 | _ACTIVATIONS = { 19 | 'tanh': nn.Tanh, 20 | 'relu': nn.ReLU, 21 | 'sigmoid': nn.Sigmoid, 22 | } 23 | 24 | 25 | def ReportModel(model, blacklist=None): 26 | ps = [] 27 | for name, p in model.named_parameters(): 28 | if blacklist is None or blacklist not in name: 29 | ps.append(np.prod(p.size())) 30 | num_params = sum(ps) 31 | mb = num_params * 4 / 1024 / 1024 32 | print('Number of model parameters: {} (~= {:.1f}MB)'.format(num_params, mb)) 33 | print(model) 34 | return mb 35 | 36 | 37 | def MakeMlp(input_size, num_outputs, hiddens, activation): 38 | layers = [] 39 | prev_layer_size = input_size 40 | for size in hiddens: 41 | layers.append(nn.Linear(prev_layer_size, size)) 42 | layers.append(_ACTIVATIONS[activation]()) 43 | prev_layer_size = size 44 | # Output layer. 45 | layers.append(nn.Linear(prev_layer_size, num_outputs)) 46 | return nn.Sequential(*layers) 47 | -------------------------------------------------------------------------------- /balsa/util/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from . import simple_sql_parser 16 | -------------------------------------------------------------------------------- /balsa/utils.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import balsa 16 | 17 | 18 | def SanitizeToText(d): 19 | """Sanitizes result/config dicts for W&B textual logging.""" 20 | # For configs: flattens all so w&b can visualize nicely. 21 | # Don't quote all because otherwise scalars are converted to strings. 22 | ret, _ = balsa.hyperparams.ToFlattenedTextDict(d, quote_all=False) 23 | return ret 24 | -------------------------------------------------------------------------------- /checkpoints/sim-MinCardCost-rand52split-680secs.ckpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/checkpoints/sim-MinCardCost-rand52split-680secs.ckpt -------------------------------------------------------------------------------- /checkpoints/sim-MinCardCost-slowsplit-610secs.ckpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/checkpoints/sim-MinCardCost-slowsplit-610secs.ckpt -------------------------------------------------------------------------------- /checkpoints/sim-MinCardCost-train113JOB-784s-13epochs.ckpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/checkpoints/sim-MinCardCost-train113JOB-784s-13epochs.ckpt -------------------------------------------------------------------------------- /checkpoints/sim-PostgresCost-rand52split-26epochs.ckpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/balsa-project/balsa/a0b45f2371c8c569bb90ad611f39911e5b850852/checkpoints/sim-PostgresCost-rand52split-26epochs.ckpt -------------------------------------------------------------------------------- /load-postgres/fkindexes.sql: -------------------------------------------------------------------------------- 1 | create index company_id_movie_companies on movie_companies(company_id); 2 | create index company_type_id_movie_companies on movie_companies(company_type_id); 3 | create index info_type_id_movie_info_idx on movie_info_idx(info_type_id); 4 | create index info_type_id_movie_info on movie_info(info_type_id); 5 | create index info_type_id_person_info on person_info(info_type_id); 6 | create index keyword_id_movie_keyword on movie_keyword(keyword_id); 7 | create index kind_id_aka_title on aka_title(kind_id); 8 | create index kind_id_title on title(kind_id); 9 | create index linked_movie_id_movie_link on movie_link(linked_movie_id); 10 | create index link_type_id_movie_link on movie_link(link_type_id); 11 | create index movie_id_aka_title on aka_title(movie_id); 12 | create index movie_id_cast_info on cast_info(movie_id); 13 | create index movie_id_complete_cast on complete_cast(movie_id); 14 | create index subject_id_complete_cast on complete_cast(subject_id); 15 | create index status_id_complete_cast on complete_cast(status_id); 16 | create index movie_id_movie_companies on movie_companies(movie_id); 17 | create index movie_id_movie_info_idx on movie_info_idx(movie_id); 18 | create index movie_id_movie_keyword on movie_keyword(movie_id); 19 | create index movie_id_movie_link on movie_link(movie_id); 20 | create index movie_id_movie_info on movie_info(movie_id); 21 | create index person_id_aka_name on aka_name(person_id); 22 | create index person_id_cast_info on cast_info(person_id); 23 | create index person_id_person_info on person_info(person_id); 24 | create index person_role_id_cast_info on cast_info(person_role_id); 25 | create index role_id_cast_info on cast_info(role_id); 26 | -------------------------------------------------------------------------------- /pg_executor/pg_executor/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | from .pg_executor import Cursor, Execute, ExecuteRemote, Result 15 | -------------------------------------------------------------------------------- /pg_executor/pg_executor/dbmsx_executor.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | """Placeholder module.""" 15 | import collections 16 | 17 | Result = collections.namedtuple('Result', []) 18 | -------------------------------------------------------------------------------- /pg_executor/requirements.txt: -------------------------------------------------------------------------------- 1 | psycopg2-binary -------------------------------------------------------------------------------- /pg_executor/setup.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | import setuptools 15 | 16 | setuptools.setup(name='pg_executor', 17 | version='0.1dev', 18 | packages=setuptools.find_packages()) 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/10a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS uncredited_voiced_character, 2 | MIN(t.title) AS russian_movie 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(voice)%' 11 | AND ci.note LIKE '%(uncredited)%' 12 | AND cn.country_code = '[ru]' 13 | AND rt.role = 'actor' 14 | AND t.production_year > 2005 15 | AND t.id = mc.movie_id 16 | AND t.id = ci.movie_id 17 | AND ci.movie_id = mc.movie_id 18 | AND chn.id = ci.person_role_id 19 | AND rt.id = ci.role_id 20 | AND cn.id = mc.company_id 21 | AND ct.id = mc.company_type_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/10b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character, 2 | MIN(t.title) AS russian_mov_with_actor_producer 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(producer)%' 11 | AND cn.country_code = '[ru]' 12 | AND rt.role = 'actor' 13 | AND t.production_year > 2010 14 | AND t.id = mc.movie_id 15 | AND t.id = ci.movie_id 16 | AND ci.movie_id = mc.movie_id 17 | AND chn.id = ci.person_role_id 18 | AND rt.id = ci.role_id 19 | AND cn.id = mc.company_id 20 | AND ct.id = mc.company_type_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/10c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character, 2 | MIN(t.title) AS movie_with_american_producer 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(producer)%' 11 | AND cn.country_code = '[us]' 12 | AND t.production_year > 1990 13 | AND t.id = mc.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mc.movie_id 16 | AND chn.id = ci.person_role_id 17 | AND rt.id = ci.role_id 18 | AND cn.id = mc.company_id 19 | AND ct.id = mc.company_type_id; 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/11a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(lt.link) AS movie_link_type, 3 | MIN(t.title) AS non_polish_sequel_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '%Film%' 14 | OR cn.name LIKE '%Warner%') 15 | AND ct.kind ='production companies' 16 | AND k.keyword ='sequel' 17 | AND lt.link LIKE '%follow%' 18 | AND mc.note IS NULL 19 | AND t.production_year BETWEEN 1950 AND 2000 20 | AND lt.id = ml.link_type_id 21 | AND ml.movie_id = t.id 22 | AND t.id = mk.movie_id 23 | AND mk.keyword_id = k.id 24 | AND t.id = mc.movie_id 25 | AND mc.company_type_id = ct.id 26 | AND mc.company_id = cn.id 27 | AND ml.movie_id = mk.movie_id 28 | AND ml.movie_id = mc.movie_id 29 | AND mk.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/11b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(lt.link) AS movie_link_type, 3 | MIN(t.title) AS sequel_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '%Film%' 14 | OR cn.name LIKE '%Warner%') 15 | AND ct.kind ='production companies' 16 | AND k.keyword ='sequel' 17 | AND lt.link LIKE '%follows%' 18 | AND mc.note IS NULL 19 | AND t.production_year = 1998 20 | AND t.title LIKE '%Money%' 21 | AND lt.id = ml.link_type_id 22 | AND ml.movie_id = t.id 23 | AND t.id = mk.movie_id 24 | AND mk.keyword_id = k.id 25 | AND t.id = mc.movie_id 26 | AND mc.company_type_id = ct.id 27 | AND mc.company_id = cn.id 28 | AND ml.movie_id = mk.movie_id 29 | AND ml.movie_id = mc.movie_id 30 | AND mk.movie_id = mc.movie_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/11c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(mc.note) AS production_note, 3 | MIN(t.title) AS movie_based_on_book 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '20th Century Fox%' 14 | OR cn.name LIKE 'Twentieth Century Fox%') 15 | AND ct.kind != 'production companies' 16 | AND ct.kind IS NOT NULL 17 | AND k.keyword IN ('sequel', 18 | 'revenge', 19 | 'based-on-novel') 20 | AND mc.note IS NOT NULL 21 | AND t.production_year > 1950 22 | AND lt.id = ml.link_type_id 23 | AND ml.movie_id = t.id 24 | AND t.id = mk.movie_id 25 | AND mk.keyword_id = k.id 26 | AND t.id = mc.movie_id 27 | AND mc.company_type_id = ct.id 28 | AND mc.company_id = cn.id 29 | AND ml.movie_id = mk.movie_id 30 | AND ml.movie_id = mc.movie_id 31 | AND mk.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/11d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(mc.note) AS production_note, 3 | MIN(t.title) AS movie_based_on_book 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND ct.kind != 'production companies' 14 | AND ct.kind IS NOT NULL 15 | AND k.keyword IN ('sequel', 16 | 'revenge', 17 | 'based-on-novel') 18 | AND mc.note IS NOT NULL 19 | AND t.production_year > 1950 20 | AND lt.id = ml.link_type_id 21 | AND ml.movie_id = t.id 22 | AND t.id = mk.movie_id 23 | AND mk.keyword_id = k.id 24 | AND t.id = mc.movie_id 25 | AND mc.company_type_id = ct.id 26 | AND mc.company_id = cn.id 27 | AND ml.movie_id = mk.movie_id 28 | AND ml.movie_id = mc.movie_id 29 | AND mk.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/12a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS drama_horror_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND ct.kind = 'production companies' 14 | AND it1.info = 'genres' 15 | AND it2.info = 'rating' 16 | AND mi.info IN ('Drama', 17 | 'Horror') 18 | AND mi_idx.info > '8.0' 19 | AND t.production_year BETWEEN 2005 AND 2008 20 | AND t.id = mi.movie_id 21 | AND t.id = mi_idx.movie_id 22 | AND mi.info_type_id = it1.id 23 | AND mi_idx.info_type_id = it2.id 24 | AND t.id = mc.movie_id 25 | AND ct.id = mc.company_type_id 26 | AND cn.id = mc.company_id 27 | AND mc.movie_id = mi.movie_id 28 | AND mc.movie_id = mi_idx.movie_id 29 | AND mi.movie_id = mi_idx.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/12b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS budget, 2 | MIN(t.title) AS unsuccsessful_movie 3 | FROM company_name AS cn, 4 | company_type AS ct, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_companies AS mc, 8 | movie_info AS mi, 9 | movie_info_idx AS mi_idx, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND ct.kind IS NOT NULL 13 | AND (ct.kind ='production companies' 14 | OR ct.kind = 'distributors') 15 | AND it1.info ='budget' 16 | AND it2.info ='bottom 10 rank' 17 | AND t.production_year >2000 18 | AND (t.title LIKE 'Birdemic%' 19 | OR t.title LIKE '%Movie%') 20 | AND t.id = mi.movie_id 21 | AND t.id = mi_idx.movie_id 22 | AND mi.info_type_id = it1.id 23 | AND mi_idx.info_type_id = it2.id 24 | AND t.id = mc.movie_id 25 | AND ct.id = mc.company_type_id 26 | AND cn.id = mc.company_id 27 | AND mc.movie_id = mi.movie_id 28 | AND mc.movie_id = mi_idx.movie_id 29 | AND mi.movie_id = mi_idx.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/12c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS mainstream_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND ct.kind = 'production companies' 14 | AND it1.info = 'genres' 15 | AND it2.info = 'rating' 16 | AND mi.info IN ('Drama', 17 | 'Horror', 18 | 'Western', 19 | 'Family') 20 | AND mi_idx.info > '7.0' 21 | AND t.production_year BETWEEN 2000 AND 2010 22 | AND t.id = mi.movie_id 23 | AND t.id = mi_idx.movie_id 24 | AND mi.info_type_id = it1.id 25 | AND mi_idx.info_type_id = it2.id 26 | AND t.id = mc.movie_id 27 | AND ct.id = mc.company_type_id 28 | AND cn.id = mc.company_id 29 | AND mc.movie_id = mi.movie_id 30 | AND mc.movie_id = mi_idx.movie_id 31 | AND mi.movie_id = mi_idx.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/13a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS german_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[de]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND mi.movie_id = t.id 19 | AND it2.id = mi.info_type_id 20 | AND kt.id = t.kind_id 21 | AND mc.movie_id = t.id 22 | AND cn.id = mc.company_id 23 | AND ct.id = mc.company_type_id 24 | AND miidx.movie_id = t.id 25 | AND it.id = miidx.info_type_id 26 | AND mi.movie_id = miidx.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND miidx.movie_id = mc.movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/13b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie_about_winning 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND t.title != '' 19 | AND (t.title LIKE '%Champion%' 20 | OR t.title LIKE '%Loser%') 21 | AND mi.movie_id = t.id 22 | AND it2.id = mi.info_type_id 23 | AND kt.id = t.kind_id 24 | AND mc.movie_id = t.id 25 | AND cn.id = mc.company_id 26 | AND ct.id = mc.company_type_id 27 | AND miidx.movie_id = t.id 28 | AND it.id = miidx.info_type_id 29 | AND mi.movie_id = miidx.movie_id 30 | AND mi.movie_id = mc.movie_id 31 | AND miidx.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/13c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie_about_winning 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND t.title != '' 19 | AND (t.title LIKE 'Champion%' 20 | OR t.title LIKE 'Loser%') 21 | AND mi.movie_id = t.id 22 | AND it2.id = mi.info_type_id 23 | AND kt.id = t.kind_id 24 | AND mc.movie_id = t.id 25 | AND cn.id = mc.company_id 26 | AND ct.id = mc.company_type_id 27 | AND miidx.movie_id = t.id 28 | AND it.id = miidx.info_type_id 29 | AND mi.movie_id = miidx.movie_id 30 | AND mi.movie_id = mc.movie_id 31 | AND miidx.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/13d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND mi.movie_id = t.id 19 | AND it2.id = mi.info_type_id 20 | AND kt.id = t.kind_id 21 | AND mc.movie_id = t.id 22 | AND cn.id = mc.company_id 23 | AND ct.id = mc.company_type_id 24 | AND miidx.movie_id = t.id 25 | AND it.id = miidx.info_type_id 26 | AND mi.movie_id = miidx.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND miidx.movie_id = mc.movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/14a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS northern_dark_movie 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IN ('murder', 14 | 'murder-in-title', 15 | 'blood', 16 | 'violence') 17 | AND kt.kind = 'movie' 18 | AND mi.info IN ('Sweden', 19 | 'Norway', 20 | 'Germany', 21 | 'Denmark', 22 | 'Swedish', 23 | 'Denish', 24 | 'Norwegian', 25 | 'German', 26 | 'USA', 27 | 'American') 28 | AND mi_idx.info < '8.5' 29 | AND t.production_year > 2010 30 | AND kt.id = t.kind_id 31 | AND t.id = mi.movie_id 32 | AND t.id = mk.movie_id 33 | AND t.id = mi_idx.movie_id 34 | AND mk.movie_id = mi.movie_id 35 | AND mk.movie_id = mi_idx.movie_id 36 | AND mi.movie_id = mi_idx.movie_id 37 | AND k.id = mk.keyword_id 38 | AND it1.id = mi.info_type_id 39 | AND it2.id = mi_idx.info_type_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/14b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS western_dark_production 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IN ('murder', 14 | 'murder-in-title') 15 | AND kt.kind = 'movie' 16 | AND mi.info IN ('Sweden', 17 | 'Norway', 18 | 'Germany', 19 | 'Denmark', 20 | 'Swedish', 21 | 'Denish', 22 | 'Norwegian', 23 | 'German', 24 | 'USA', 25 | 'American') 26 | AND mi_idx.info > '6.0' 27 | AND t.production_year > 2010 28 | AND (t.title LIKE '%murder%' 29 | OR t.title LIKE '%Murder%' 30 | OR t.title LIKE '%Mord%') 31 | AND kt.id = t.kind_id 32 | AND t.id = mi.movie_id 33 | AND t.id = mk.movie_id 34 | AND t.id = mi_idx.movie_id 35 | AND mk.movie_id = mi.movie_id 36 | AND mk.movie_id = mi_idx.movie_id 37 | AND mi.movie_id = mi_idx.movie_id 38 | AND k.id = mk.keyword_id 39 | AND it1.id = mi.info_type_id 40 | AND it2.id = mi_idx.info_type_id; 41 | 42 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/14c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS north_european_dark_production 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IS NOT NULL 14 | AND k.keyword IN ('murder', 15 | 'murder-in-title', 16 | 'blood', 17 | 'violence') 18 | AND kt.kind IN ('movie', 19 | 'episode') 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Danish', 26 | 'Norwegian', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '8.5' 31 | AND t.production_year > 2005 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND mk.movie_id = mi.movie_id 37 | AND mk.movie_id = mi_idx.movie_id 38 | AND mi.movie_id = mi_idx.movie_id 39 | AND k.id = mk.keyword_id 40 | AND it1.id = mi.info_type_id 41 | AND it2.id = mi_idx.info_type_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/15a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS internet_movie 3 | FROM aka_title AS aka_t, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mc.note LIKE '%(200%)%' 15 | AND mc.note LIKE '%(worldwide)%' 16 | AND mi.note LIKE '%internet%' 17 | AND mi.info LIKE 'USA:% 200%' 18 | AND t.production_year > 2000 19 | AND t.id = aka_t.movie_id 20 | AND t.id = mi.movie_id 21 | AND t.id = mk.movie_id 22 | AND t.id = mc.movie_id 23 | AND mk.movie_id = mi.movie_id 24 | AND mk.movie_id = mc.movie_id 25 | AND mk.movie_id = aka_t.movie_id 26 | AND mi.movie_id = mc.movie_id 27 | AND mi.movie_id = aka_t.movie_id 28 | AND mc.movie_id = aka_t.movie_id 29 | AND k.id = mk.keyword_id 30 | AND it1.id = mi.info_type_id 31 | AND cn.id = mc.company_id 32 | AND ct.id = mc.company_type_id; 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/15b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS youtube_movie 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND cn.name = 'YouTube' 14 | AND it1.info = 'release dates' 15 | AND mc.note LIKE '%(200%)%' 16 | AND mc.note LIKE '%(worldwide)%' 17 | AND mi.note LIKE '%internet%' 18 | AND mi.info LIKE 'USA:% 200%' 19 | AND t.production_year BETWEEN 2005 AND 2010 20 | AND t.id = at.movie_id 21 | AND t.id = mi.movie_id 22 | AND t.id = mk.movie_id 23 | AND t.id = mc.movie_id 24 | AND mk.movie_id = mi.movie_id 25 | AND mk.movie_id = mc.movie_id 26 | AND mk.movie_id = at.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND mi.movie_id = at.movie_id 29 | AND mc.movie_id = at.movie_id 30 | AND k.id = mk.keyword_id 31 | AND it1.id = mi.info_type_id 32 | AND cn.id = mc.company_id 33 | AND ct.id = mc.company_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/15c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS modern_american_internet_movie 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mi.note LIKE '%internet%' 15 | AND mi.info IS NOT NULL 16 | AND (mi.info LIKE 'USA:% 199%' 17 | OR mi.info LIKE 'USA:% 200%') 18 | AND t.production_year > 1990 19 | AND t.id = at.movie_id 20 | AND t.id = mi.movie_id 21 | AND t.id = mk.movie_id 22 | AND t.id = mc.movie_id 23 | AND mk.movie_id = mi.movie_id 24 | AND mk.movie_id = mc.movie_id 25 | AND mk.movie_id = at.movie_id 26 | AND mi.movie_id = mc.movie_id 27 | AND mi.movie_id = at.movie_id 28 | AND mc.movie_id = at.movie_id 29 | AND k.id = mk.keyword_id 30 | AND it1.id = mi.info_type_id 31 | AND cn.id = mc.company_id 32 | AND ct.id = mc.company_type_id; 33 | 34 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/15d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(at.title) AS aka_title, 2 | MIN(t.title) AS internet_movie_title 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mi.note LIKE '%internet%' 15 | AND t.production_year > 1990 16 | AND t.id = at.movie_id 17 | AND t.id = mi.movie_id 18 | AND t.id = mk.movie_id 19 | AND t.id = mc.movie_id 20 | AND mk.movie_id = mi.movie_id 21 | AND mk.movie_id = mc.movie_id 22 | AND mk.movie_id = at.movie_id 23 | AND mi.movie_id = mc.movie_id 24 | AND mi.movie_id = at.movie_id 25 | AND mc.movie_id = at.movie_id 26 | AND k.id = mk.keyword_id 27 | AND it1.id = mi.info_type_id 28 | AND cn.id = mc.company_id 29 | AND ct.id = mc.company_type_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/16a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr >= 50 14 | AND t.episode_nr < 100 15 | AND an.person_id = n.id 16 | AND n.id = ci.person_id 17 | AND ci.movie_id = t.id 18 | AND t.id = mk.movie_id 19 | AND mk.keyword_id = k.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND an.person_id = ci.person_id 23 | AND ci.movie_id = mc.movie_id 24 | AND ci.movie_id = mk.movie_id 25 | AND mc.movie_id = mk.movie_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/16b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND an.person_id = n.id 14 | AND n.id = ci.person_id 15 | AND ci.movie_id = t.id 16 | AND t.id = mk.movie_id 17 | AND mk.keyword_id = k.id 18 | AND t.id = mc.movie_id 19 | AND mc.company_id = cn.id 20 | AND an.person_id = ci.person_id 21 | AND ci.movie_id = mc.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND mc.movie_id = mk.movie_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/16c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr < 100 14 | AND an.person_id = n.id 15 | AND n.id = ci.person_id 16 | AND ci.movie_id = t.id 17 | AND t.id = mk.movie_id 18 | AND mk.keyword_id = k.id 19 | AND t.id = mc.movie_id 20 | AND mc.company_id = cn.id 21 | AND an.person_id = ci.person_id 22 | AND ci.movie_id = mc.movie_id 23 | AND ci.movie_id = mk.movie_id 24 | AND mc.movie_id = mk.movie_id; 25 | 26 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/16d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr >= 5 14 | AND t.episode_nr < 100 15 | AND an.person_id = n.id 16 | AND n.id = ci.person_id 17 | AND ci.movie_id = t.id 18 | AND t.id = mk.movie_id 19 | AND mk.keyword_id = k.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND an.person_id = ci.person_id 23 | AND ci.movie_id = mc.movie_id 24 | AND ci.movie_id = mk.movie_id 25 | AND mc.movie_id = mk.movie_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_american_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND k.keyword ='character-name-in-title' 12 | AND n.name LIKE 'B%' 13 | AND n.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mk.movie_id 16 | AND mk.keyword_id = k.id 17 | AND t.id = mc.movie_id 18 | AND mc.company_id = cn.id 19 | AND ci.movie_id = mc.movie_id 20 | AND ci.movie_id = mk.movie_id 21 | AND mc.movie_id = mk.movie_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE k.keyword ='character-name-in-title' 11 | AND n.name LIKE 'Z%' 12 | AND n.id = ci.person_id 13 | AND ci.movie_id = t.id 14 | AND t.id = mk.movie_id 15 | AND mk.keyword_id = k.id 16 | AND t.id = mc.movie_id 17 | AND mc.company_id = cn.id 18 | AND ci.movie_id = mc.movie_id 19 | AND ci.movie_id = mk.movie_id 20 | AND mc.movie_id = mk.movie_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE k.keyword ='character-name-in-title' 11 | AND n.name LIKE 'X%' 12 | AND n.id = ci.person_id 13 | AND ci.movie_id = t.id 14 | AND t.id = mk.movie_id 15 | AND mk.keyword_id = k.id 16 | AND t.id = mc.movie_id 17 | AND mc.company_id = cn.id 18 | AND ci.movie_id = mc.movie_id 19 | AND ci.movie_id = mk.movie_id 20 | AND mc.movie_id = mk.movie_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword ='character-name-in-title' 10 | AND n.name LIKE '%Bert%' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17e.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE cn.country_code ='[us]' 10 | AND k.keyword ='character-name-in-title' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/17f.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword ='character-name-in-title' 10 | AND n.name LIKE '%B%' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/18a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(producer)', 12 | '(executive producer)') 13 | AND it1.info = 'budget' 14 | AND it2.info = 'votes' 15 | AND n.gender = 'm' 16 | AND n.name LIKE '%Tim%' 17 | AND t.id = mi.movie_id 18 | AND t.id = mi_idx.movie_id 19 | AND t.id = ci.movie_id 20 | AND ci.movie_id = mi.movie_id 21 | AND ci.movie_id = mi_idx.movie_id 22 | AND mi.movie_id = mi_idx.movie_id 23 | AND n.id = ci.person_id 24 | AND it1.id = mi.info_type_id 25 | AND it2.id = mi_idx.info_type_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/18b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(writer)', 12 | '(head writer)', 13 | '(written by)', 14 | '(story)', 15 | '(story editor)') 16 | AND it1.info = 'genres' 17 | AND it2.info = 'rating' 18 | AND mi.info IN ('Horror', 19 | 'Thriller') 20 | AND mi.note IS NULL 21 | AND mi_idx.info > '8.0' 22 | AND n.gender IS NOT NULL 23 | AND n.gender = 'f' 24 | AND t.production_year BETWEEN 2008 AND 2014 25 | AND t.id = mi.movie_id 26 | AND t.id = mi_idx.movie_id 27 | AND t.id = ci.movie_id 28 | AND ci.movie_id = mi.movie_id 29 | AND ci.movie_id = mi_idx.movie_id 30 | AND mi.movie_id = mi_idx.movie_id 31 | AND n.id = ci.person_id 32 | AND it1.id = mi.info_type_id 33 | AND it2.id = mi_idx.info_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/18c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(writer)', 12 | '(head writer)', 13 | '(written by)', 14 | '(story)', 15 | '(story editor)') 16 | AND it1.info = 'genres' 17 | AND it2.info = 'votes' 18 | AND mi.info IN ('Horror', 19 | 'Action', 20 | 'Sci-Fi', 21 | 'Thriller', 22 | 'Crime', 23 | 'War') 24 | AND n.gender = 'm' 25 | AND t.id = mi.movie_id 26 | AND t.id = mi_idx.movie_id 27 | AND t.id = ci.movie_id 28 | AND ci.movie_id = mi.movie_id 29 | AND ci.movie_id = mi_idx.movie_id 30 | AND mi.movie_id = mi_idx.movie_id 31 | AND n.id = ci.person_id 32 | AND it1.id = mi.info_type_id 33 | AND it2.id = mi_idx.info_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/19a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND mc.note IS NOT NULL 20 | AND (mc.note LIKE '%(USA)%' 21 | OR mc.note LIKE '%(worldwide)%') 22 | AND mi.info IS NOT NULL 23 | AND (mi.info LIKE 'Japan:%200%' 24 | OR mi.info LIKE 'USA:%200%') 25 | AND n.gender ='f' 26 | AND n.name LIKE '%Ang%' 27 | AND rt.role ='actress' 28 | AND t.production_year BETWEEN 2005 AND 2009 29 | AND t.id = mi.movie_id 30 | AND t.id = mc.movie_id 31 | AND t.id = ci.movie_id 32 | AND mc.movie_id = ci.movie_id 33 | AND mc.movie_id = mi.movie_id 34 | AND mi.movie_id = ci.movie_id 35 | AND cn.id = mc.company_id 36 | AND it.id = mi.info_type_id 37 | AND n.id = ci.person_id 38 | AND rt.id = ci.role_id 39 | AND n.id = an.person_id 40 | AND ci.person_id = an.person_id 41 | AND chn.id = ci.person_role_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/19b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS kung_fu_panda 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note = '(voice)' 14 | AND cn.country_code ='[us]' 15 | AND it.info = 'release dates' 16 | AND mc.note LIKE '%(200%)%' 17 | AND (mc.note LIKE '%(USA)%' 18 | OR mc.note LIKE '%(worldwide)%') 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'Japan:%2007%' 21 | OR mi.info LIKE 'USA:%2008%') 22 | AND n.gender ='f' 23 | AND n.name LIKE '%Angel%' 24 | AND rt.role ='actress' 25 | AND t.production_year BETWEEN 2007 AND 2008 26 | AND t.title LIKE '%Kung%Fu%Panda%' 27 | AND t.id = mi.movie_id 28 | AND t.id = mc.movie_id 29 | AND t.id = ci.movie_id 30 | AND mc.movie_id = ci.movie_id 31 | AND mc.movie_id = mi.movie_id 32 | AND mi.movie_id = ci.movie_id 33 | AND cn.id = mc.company_id 34 | AND it.id = mi.info_type_id 35 | AND n.id = ci.person_id 36 | AND rt.id = ci.role_id 37 | AND n.id = an.person_id 38 | AND ci.person_id = an.person_id 39 | AND chn.id = ci.person_role_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/19c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS jap_engl_voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'Japan:%200%' 21 | OR mi.info LIKE 'USA:%200%') 22 | AND n.gender ='f' 23 | AND n.name LIKE '%An%' 24 | AND rt.role ='actress' 25 | AND t.production_year > 2000 26 | AND t.id = mi.movie_id 27 | AND t.id = mc.movie_id 28 | AND t.id = ci.movie_id 29 | AND mc.movie_id = ci.movie_id 30 | AND mc.movie_id = mi.movie_id 31 | AND mi.movie_id = ci.movie_id 32 | AND cn.id = mc.company_id 33 | AND it.id = mi.info_type_id 34 | AND n.id = ci.person_id 35 | AND rt.id = ci.role_id 36 | AND n.id = an.person_id 37 | AND ci.person_id = an.person_id 38 | AND chn.id = ci.person_role_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/19d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS jap_engl_voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND n.gender ='f' 20 | AND rt.role ='actress' 21 | AND t.production_year > 2000 22 | AND t.id = mi.movie_id 23 | AND t.id = mc.movie_id 24 | AND t.id = ci.movie_id 25 | AND mc.movie_id = ci.movie_id 26 | AND mc.movie_id = mi.movie_id 27 | AND mi.movie_id = ci.movie_id 28 | AND cn.id = mc.company_id 29 | AND it.id = mi.info_type_id 30 | AND n.id = ci.person_id 31 | AND rt.id = ci.role_id 32 | AND n.id = an.person_id 33 | AND ci.person_id = an.person_id 34 | AND chn.id = ci.person_role_id; 35 | 36 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/1a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'top 250 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND (mc.note LIKE '%(co-production)%' 13 | OR mc.note LIKE '%(presents)%') 14 | AND ct.id = mc.company_type_id 15 | AND t.id = mc.movie_id 16 | AND t.id = mi_idx.movie_id 17 | AND mc.movie_id = mi_idx.movie_id 18 | AND it.id = mi_idx.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/1b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'bottom 10 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND t.production_year BETWEEN 2005 AND 2010 13 | AND ct.id = mc.company_type_id 14 | AND t.id = mc.movie_id 15 | AND t.id = mi_idx.movie_id 16 | AND mc.movie_id = mi_idx.movie_id 17 | AND it.id = mi_idx.info_type_id; 18 | 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/1c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'top 250 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND (mc.note LIKE '%(co-production)%') 13 | AND t.production_year >2010 14 | AND ct.id = mc.company_type_id 15 | AND t.id = mc.movie_id 16 | AND t.id = mi_idx.movie_id 17 | AND mc.movie_id = mi_idx.movie_id 18 | AND it.id = mi_idx.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/1d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'bottom 10 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND t.production_year >2000 13 | AND ct.id = mc.company_type_id 14 | AND t.id = mc.movie_id 15 | AND t.id = mi_idx.movie_id 16 | AND mc.movie_id = mi_idx.movie_id 17 | AND it.id = mi_idx.info_type_id; 18 | 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/20a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS complete_downey_ironman_movie 2 | FROM complete_cast AS cc, 3 | comp_cast_type AS cct1, 4 | comp_cast_type AS cct2, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | keyword AS k, 8 | kind_type AS kt, 9 | movie_keyword AS mk, 10 | name AS n, 11 | title AS t 12 | WHERE cct1.kind = 'cast' 13 | AND cct2.kind LIKE '%complete%' 14 | AND chn.name NOT LIKE '%Sherlock%' 15 | AND (chn.name LIKE '%Tony%Stark%' 16 | OR chn.name LIKE '%Iron%Man%') 17 | AND k.keyword IN ('superhero', 18 | 'sequel', 19 | 'second-part', 20 | 'marvel-comics', 21 | 'based-on-comic', 22 | 'tv-special', 23 | 'fight', 24 | 'violence') 25 | AND kt.kind = 'movie' 26 | AND t.production_year > 1950 27 | AND kt.id = t.kind_id 28 | AND t.id = mk.movie_id 29 | AND t.id = ci.movie_id 30 | AND t.id = cc.movie_id 31 | AND mk.movie_id = ci.movie_id 32 | AND mk.movie_id = cc.movie_id 33 | AND ci.movie_id = cc.movie_id 34 | AND chn.id = ci.person_role_id 35 | AND n.id = ci.person_id 36 | AND k.id = mk.keyword_id 37 | AND cct1.id = cc.subject_id 38 | AND cct2.id = cc.status_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/20b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS complete_downey_ironman_movie 2 | FROM complete_cast AS cc, 3 | comp_cast_type AS cct1, 4 | comp_cast_type AS cct2, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | keyword AS k, 8 | kind_type AS kt, 9 | movie_keyword AS mk, 10 | name AS n, 11 | title AS t 12 | WHERE cct1.kind = 'cast' 13 | AND cct2.kind LIKE '%complete%' 14 | AND chn.name NOT LIKE '%Sherlock%' 15 | AND (chn.name LIKE '%Tony%Stark%' 16 | OR chn.name LIKE '%Iron%Man%') 17 | AND k.keyword IN ('superhero', 18 | 'sequel', 19 | 'second-part', 20 | 'marvel-comics', 21 | 'based-on-comic', 22 | 'tv-special', 23 | 'fight', 24 | 'violence') 25 | AND kt.kind = 'movie' 26 | AND n.name LIKE '%Downey%Robert%' 27 | AND t.production_year > 2000 28 | AND kt.id = t.kind_id 29 | AND t.id = mk.movie_id 30 | AND t.id = ci.movie_id 31 | AND t.id = cc.movie_id 32 | AND mk.movie_id = ci.movie_id 33 | AND mk.movie_id = cc.movie_id 34 | AND ci.movie_id = cc.movie_id 35 | AND chn.id = ci.person_role_id 36 | AND n.id = ci.person_id 37 | AND k.id = mk.keyword_id 38 | AND cct1.id = cc.subject_id 39 | AND cct2.id = cc.status_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/20c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS cast_member, 2 | MIN(t.title) AS complete_dynamic_hero_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | comp_cast_type AS cct2, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_keyword AS mk, 11 | name AS n, 12 | title AS t 13 | WHERE cct1.kind = 'cast' 14 | AND cct2.kind LIKE '%complete%' 15 | AND chn.name IS NOT NULL 16 | AND (chn.name LIKE '%man%' 17 | OR chn.name LIKE '%Man%') 18 | AND k.keyword IN ('superhero', 19 | 'marvel-comics', 20 | 'based-on-comic', 21 | 'tv-special', 22 | 'fight', 23 | 'violence', 24 | 'magnet', 25 | 'web', 26 | 'claw', 27 | 'laser') 28 | AND kt.kind = 'movie' 29 | AND t.production_year > 2000 30 | AND kt.id = t.kind_id 31 | AND t.id = mk.movie_id 32 | AND t.id = ci.movie_id 33 | AND t.id = cc.movie_id 34 | AND mk.movie_id = ci.movie_id 35 | AND mk.movie_id = cc.movie_id 36 | AND ci.movie_id = cc.movie_id 37 | AND chn.id = ci.person_role_id 38 | AND n.id = ci.person_id 39 | AND k.id = mk.keyword_id 40 | AND cct1.id = cc.subject_id 41 | AND cct2.id = cc.status_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/21a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS western_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Denish', 26 | 'Norwegian', 27 | 'German') 28 | AND t.production_year BETWEEN 1950 AND 2000 29 | AND lt.id = ml.link_type_id 30 | AND ml.movie_id = t.id 31 | AND t.id = mk.movie_id 32 | AND mk.keyword_id = k.id 33 | AND t.id = mc.movie_id 34 | AND mc.company_type_id = ct.id 35 | AND mc.company_id = cn.id 36 | AND mi.movie_id = t.id 37 | AND ml.movie_id = mk.movie_id 38 | AND ml.movie_id = mc.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND ml.movie_id = mi.movie_id 41 | AND mk.movie_id = mi.movie_id 42 | AND mc.movie_id = mi.movie_id; 43 | 44 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/21b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS german_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Germany', 21 | 'German') 22 | AND t.production_year BETWEEN 2000 AND 2010 23 | AND lt.id = ml.link_type_id 24 | AND ml.movie_id = t.id 25 | AND t.id = mk.movie_id 26 | AND mk.keyword_id = k.id 27 | AND t.id = mc.movie_id 28 | AND mc.company_type_id = ct.id 29 | AND mc.company_id = cn.id 30 | AND mi.movie_id = t.id 31 | AND ml.movie_id = mk.movie_id 32 | AND ml.movie_id = mc.movie_id 33 | AND mk.movie_id = mc.movie_id 34 | AND ml.movie_id = mi.movie_id 35 | AND mk.movie_id = mi.movie_id 36 | AND mc.movie_id = mi.movie_id; 37 | 38 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/21c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS western_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Denish', 26 | 'Norwegian', 27 | 'German', 28 | 'English') 29 | AND t.production_year BETWEEN 1950 AND 2010 30 | AND lt.id = ml.link_type_id 31 | AND ml.movie_id = t.id 32 | AND t.id = mk.movie_id 33 | AND mk.keyword_id = k.id 34 | AND t.id = mc.movie_id 35 | AND mc.company_type_id = ct.id 36 | AND mc.company_id = cn.id 37 | AND mi.movie_id = t.id 38 | AND ml.movie_id = mk.movie_id 39 | AND ml.movie_id = mc.movie_id 40 | AND mk.movie_id = mc.movie_id 41 | AND ml.movie_id = mi.movie_id 42 | AND mk.movie_id = mi.movie_id 43 | AND mc.movie_id = mi.movie_id; 44 | 45 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/22a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS western_violent_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | title AS t 15 | WHERE cn.country_code != '[us]' 16 | AND it1.info = 'countries' 17 | AND it2.info = 'rating' 18 | AND k.keyword IN ('murder', 19 | 'murder-in-title', 20 | 'blood', 21 | 'violence') 22 | AND kt.kind IN ('movie', 23 | 'episode') 24 | AND mc.note NOT LIKE '%(USA)%' 25 | AND mc.note LIKE '%(200%)%' 26 | AND mi.info IN ('Germany', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '7.0' 31 | AND t.production_year > 2008 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND t.id = mc.movie_id 37 | AND mk.movie_id = mi.movie_id 38 | AND mk.movie_id = mi_idx.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND mi.movie_id = mi_idx.movie_id 41 | AND mi.movie_id = mc.movie_id 42 | AND mc.movie_id = mi_idx.movie_id 43 | AND k.id = mk.keyword_id 44 | AND it1.id = mi.info_type_id 45 | AND it2.id = mi_idx.info_type_id 46 | AND ct.id = mc.company_type_id 47 | AND cn.id = mc.company_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/22b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS western_violent_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | title AS t 15 | WHERE cn.country_code != '[us]' 16 | AND it1.info = 'countries' 17 | AND it2.info = 'rating' 18 | AND k.keyword IN ('murder', 19 | 'murder-in-title', 20 | 'blood', 21 | 'violence') 22 | AND kt.kind IN ('movie', 23 | 'episode') 24 | AND mc.note NOT LIKE '%(USA)%' 25 | AND mc.note LIKE '%(200%)%' 26 | AND mi.info IN ('Germany', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '7.0' 31 | AND t.production_year > 2009 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND t.id = mc.movie_id 37 | AND mk.movie_id = mi.movie_id 38 | AND mk.movie_id = mi_idx.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND mi.movie_id = mi_idx.movie_id 41 | AND mi.movie_id = mc.movie_id 42 | AND mc.movie_id = mi_idx.movie_id 43 | AND k.id = mk.keyword_id 44 | AND it1.id = mi.info_type_id 45 | AND it2.id = mi_idx.info_type_id 46 | AND ct.id = mc.company_type_id 47 | AND cn.id = mc.company_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/23a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_us_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND kt.kind IN ('movie') 18 | AND mi.note LIKE '%internet%' 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'USA:% 199%' 21 | OR mi.info LIKE 'USA:% 200%') 22 | AND t.production_year > 2000 23 | AND kt.id = t.kind_id 24 | AND t.id = mi.movie_id 25 | AND t.id = mk.movie_id 26 | AND t.id = mc.movie_id 27 | AND t.id = cc.movie_id 28 | AND mk.movie_id = mi.movie_id 29 | AND mk.movie_id = mc.movie_id 30 | AND mk.movie_id = cc.movie_id 31 | AND mi.movie_id = mc.movie_id 32 | AND mi.movie_id = cc.movie_id 33 | AND mc.movie_id = cc.movie_id 34 | AND k.id = mk.keyword_id 35 | AND it1.id = mi.info_type_id 36 | AND cn.id = mc.company_id 37 | AND ct.id = mc.company_type_id 38 | AND cct1.id = cc.status_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/23b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_nerdy_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND k.keyword IN ('nerd', 18 | 'loner', 19 | 'alienation', 20 | 'dignity') 21 | AND kt.kind IN ('movie') 22 | AND mi.note LIKE '%internet%' 23 | AND mi.info LIKE 'USA:% 200%' 24 | AND t.production_year > 2000 25 | AND kt.id = t.kind_id 26 | AND t.id = mi.movie_id 27 | AND t.id = mk.movie_id 28 | AND t.id = mc.movie_id 29 | AND t.id = cc.movie_id 30 | AND mk.movie_id = mi.movie_id 31 | AND mk.movie_id = mc.movie_id 32 | AND mk.movie_id = cc.movie_id 33 | AND mi.movie_id = mc.movie_id 34 | AND mi.movie_id = cc.movie_id 35 | AND mc.movie_id = cc.movie_id 36 | AND k.id = mk.keyword_id 37 | AND it1.id = mi.info_type_id 38 | AND cn.id = mc.company_id 39 | AND ct.id = mc.company_type_id 40 | AND cct1.id = cc.status_id; 41 | 42 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/23c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_us_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND kt.kind IN ('movie', 18 | 'tv movie', 19 | 'video movie', 20 | 'video game') 21 | AND mi.note LIKE '%internet%' 22 | AND mi.info IS NOT NULL 23 | AND (mi.info LIKE 'USA:% 199%' 24 | OR mi.info LIKE 'USA:% 200%') 25 | AND t.production_year > 1990 26 | AND kt.id = t.kind_id 27 | AND t.id = mi.movie_id 28 | AND t.id = mk.movie_id 29 | AND t.id = mc.movie_id 30 | AND t.id = cc.movie_id 31 | AND mk.movie_id = mi.movie_id 32 | AND mk.movie_id = mc.movie_id 33 | AND mk.movie_id = cc.movie_id 34 | AND mi.movie_id = mc.movie_id 35 | AND mi.movie_id = cc.movie_id 36 | AND mc.movie_id = cc.movie_id 37 | AND k.id = mk.keyword_id 38 | AND it1.id = mi.info_type_id 39 | AND cn.id = mc.company_id 40 | AND ct.id = mc.company_type_id 41 | AND cct1.id = cc.status_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/25a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'blood', 23 | 'gore', 24 | 'death', 25 | 'female-nudity') 26 | AND mi.info = 'Horror' 27 | AND n.gender = 'm' 28 | AND t.id = mi.movie_id 29 | AND t.id = mi_idx.movie_id 30 | AND t.id = ci.movie_id 31 | AND t.id = mk.movie_id 32 | AND ci.movie_id = mi.movie_id 33 | AND ci.movie_id = mi_idx.movie_id 34 | AND ci.movie_id = mk.movie_id 35 | AND mi.movie_id = mi_idx.movie_id 36 | AND mi.movie_id = mk.movie_id 37 | AND mi_idx.movie_id = mk.movie_id 38 | AND n.id = ci.person_id 39 | AND it1.id = mi.info_type_id 40 | AND it2.id = mi_idx.info_type_id 41 | AND k.id = mk.keyword_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/25b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'blood', 23 | 'gore', 24 | 'death', 25 | 'female-nudity') 26 | AND mi.info = 'Horror' 27 | AND n.gender = 'm' 28 | AND t.production_year > 2010 29 | AND t.title LIKE 'Vampire%' 30 | AND t.id = mi.movie_id 31 | AND t.id = mi_idx.movie_id 32 | AND t.id = ci.movie_id 33 | AND t.id = mk.movie_id 34 | AND ci.movie_id = mi.movie_id 35 | AND ci.movie_id = mi_idx.movie_id 36 | AND ci.movie_id = mk.movie_id 37 | AND mi.movie_id = mi_idx.movie_id 38 | AND mi.movie_id = mk.movie_id 39 | AND mi_idx.movie_id = mk.movie_id 40 | AND n.id = ci.person_id 41 | AND it1.id = mi.info_type_id 42 | AND it2.id = mi_idx.info_type_id 43 | AND k.id = mk.keyword_id; 44 | 45 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/25c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'violence', 23 | 'blood', 24 | 'gore', 25 | 'death', 26 | 'female-nudity', 27 | 'hospital') 28 | AND mi.info IN ('Horror', 29 | 'Action', 30 | 'Sci-Fi', 31 | 'Thriller', 32 | 'Crime', 33 | 'War') 34 | AND n.gender = 'm' 35 | AND t.id = mi.movie_id 36 | AND t.id = mi_idx.movie_id 37 | AND t.id = ci.movie_id 38 | AND t.id = mk.movie_id 39 | AND ci.movie_id = mi.movie_id 40 | AND ci.movie_id = mi_idx.movie_id 41 | AND ci.movie_id = mk.movie_id 42 | AND mi.movie_id = mi_idx.movie_id 43 | AND mi.movie_id = mk.movie_id 44 | AND mi_idx.movie_id = mk.movie_id 45 | AND n.id = ci.person_id 46 | AND it1.id = mi.info_type_id 47 | AND it2.id = mi_idx.info_type_id 48 | AND k.id = mk.keyword_id; 49 | 50 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/26b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character_name, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS complete_hero_movie 4 | FROM complete_cast AS cc, 5 | comp_cast_type AS cct1, 6 | comp_cast_type AS cct2, 7 | char_name AS chn, 8 | cast_info AS ci, 9 | info_type AS it2, 10 | keyword AS k, 11 | kind_type AS kt, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | name AS n, 15 | title AS t 16 | WHERE cct1.kind = 'cast' 17 | AND cct2.kind LIKE '%complete%' 18 | AND chn.name IS NOT NULL 19 | AND (chn.name LIKE '%man%' 20 | OR chn.name LIKE '%Man%') 21 | AND it2.info = 'rating' 22 | AND k.keyword IN ('superhero', 23 | 'marvel-comics', 24 | 'based-on-comic', 25 | 'fight') 26 | AND kt.kind = 'movie' 27 | AND mi_idx.info > '8.0' 28 | AND t.production_year > 2005 29 | AND kt.id = t.kind_id 30 | AND t.id = mk.movie_id 31 | AND t.id = ci.movie_id 32 | AND t.id = cc.movie_id 33 | AND t.id = mi_idx.movie_id 34 | AND mk.movie_id = ci.movie_id 35 | AND mk.movie_id = cc.movie_id 36 | AND mk.movie_id = mi_idx.movie_id 37 | AND ci.movie_id = cc.movie_id 38 | AND ci.movie_id = mi_idx.movie_id 39 | AND cc.movie_id = mi_idx.movie_id 40 | AND chn.id = ci.person_role_id 41 | AND n.id = ci.person_id 42 | AND k.id = mk.keyword_id 43 | AND cct1.id = cc.subject_id 44 | AND cct2.id = cc.status_id 45 | AND it2.id = mi_idx.info_type_id; 46 | 47 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/2a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[de]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/2b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[nl]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/2c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[sm]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/2d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[us]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/32a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(lt.link) AS link_type, 2 | MIN(t1.title) AS first_movie, 3 | MIN(t2.title) AS second_movie 4 | FROM keyword AS k, 5 | link_type AS lt, 6 | movie_keyword AS mk, 7 | movie_link AS ml, 8 | title AS t1, 9 | title AS t2 10 | WHERE k.keyword ='10,000-mile-club' 11 | AND mk.keyword_id = k.id 12 | AND t1.id = mk.movie_id 13 | AND ml.movie_id = t1.id 14 | AND ml.linked_movie_id = t2.id 15 | AND lt.id = ml.link_type_id 16 | AND mk.movie_id = t1.id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/32b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(lt.link) AS link_type, 2 | MIN(t1.title) AS first_movie, 3 | MIN(t2.title) AS second_movie 4 | FROM keyword AS k, 5 | link_type AS lt, 6 | movie_keyword AS mk, 7 | movie_link AS ml, 8 | title AS t1, 9 | title AS t2 10 | WHERE k.keyword ='character-name-in-title' 11 | AND mk.keyword_id = k.id 12 | AND t1.id = mk.movie_id 13 | AND ml.movie_id = t1.id 14 | AND ml.linked_movie_id = t2.id 15 | AND lt.id = ml.link_type_id 16 | AND mk.movie_id = t1.id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/33b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn1.name) AS first_company, 2 | MIN(cn2.name) AS second_company, 3 | MIN(mi_idx1.info) AS first_rating, 4 | MIN(mi_idx2.info) AS second_rating, 5 | MIN(t1.title) AS first_movie, 6 | MIN(t2.title) AS second_movie 7 | FROM company_name AS cn1, 8 | company_name AS cn2, 9 | info_type AS it1, 10 | info_type AS it2, 11 | kind_type AS kt1, 12 | kind_type AS kt2, 13 | link_type AS lt, 14 | movie_companies AS mc1, 15 | movie_companies AS mc2, 16 | movie_info_idx AS mi_idx1, 17 | movie_info_idx AS mi_idx2, 18 | movie_link AS ml, 19 | title AS t1, 20 | title AS t2 21 | WHERE cn1.country_code = '[nl]' 22 | AND it1.info = 'rating' 23 | AND it2.info = 'rating' 24 | AND kt1.kind IN ('tv series') 25 | AND kt2.kind IN ('tv series') 26 | AND lt.link LIKE '%follow%' 27 | AND mi_idx2.info < '3.0' 28 | AND t2.production_year = 2007 29 | AND lt.id = ml.link_type_id 30 | AND t1.id = ml.movie_id 31 | AND t2.id = ml.linked_movie_id 32 | AND it1.id = mi_idx1.info_type_id 33 | AND t1.id = mi_idx1.movie_id 34 | AND kt1.id = t1.kind_id 35 | AND cn1.id = mc1.company_id 36 | AND t1.id = mc1.movie_id 37 | AND ml.movie_id = mi_idx1.movie_id 38 | AND ml.movie_id = mc1.movie_id 39 | AND mi_idx1.movie_id = mc1.movie_id 40 | AND it2.id = mi_idx2.info_type_id 41 | AND t2.id = mi_idx2.movie_id 42 | AND kt2.id = t2.kind_id 43 | AND cn2.id = mc2.company_id 44 | AND t2.id = mc2.movie_id 45 | AND ml.linked_movie_id = mi_idx2.movie_id 46 | AND ml.linked_movie_id = mc2.movie_id 47 | AND mi_idx2.movie_id = mc2.movie_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/3a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Sweden', 8 | 'Norway', 9 | 'Germany', 10 | 'Denmark', 11 | 'Swedish', 12 | 'Denish', 13 | 'Norwegian', 14 | 'German') 15 | AND t.production_year > 2005 16 | AND t.id = mi.movie_id 17 | AND t.id = mk.movie_id 18 | AND mk.movie_id = mi.movie_id 19 | AND k.id = mk.keyword_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/3b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Bulgaria') 8 | AND t.production_year > 2010 9 | AND t.id = mi.movie_id 10 | AND t.id = mk.movie_id 11 | AND mk.movie_id = mi.movie_id 12 | AND k.id = mk.keyword_id; 13 | 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/3c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Sweden', 8 | 'Norway', 9 | 'Germany', 10 | 'Denmark', 11 | 'Swedish', 12 | 'Denish', 13 | 'Norwegian', 14 | 'German', 15 | 'USA', 16 | 'American') 17 | AND t.production_year > 1990 18 | AND t.id = mi.movie_id 19 | AND t.id = mk.movie_id 20 | AND mk.movie_id = mi.movie_id 21 | AND k.id = mk.keyword_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/4a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '5.0' 11 | AND t.production_year > 2005 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/4b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '9.0' 11 | AND t.production_year > 2010 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/4c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '2.0' 11 | AND t.production_year > 1990 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/5a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS typical_european_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note LIKE '%(theatrical)%' 9 | AND mc.note LIKE '%(France)%' 10 | AND mi.info IN ('Sweden', 11 | 'Norway', 12 | 'Germany', 13 | 'Denmark', 14 | 'Swedish', 15 | 'Denish', 16 | 'Norwegian', 17 | 'German') 18 | AND t.production_year > 2005 19 | AND t.id = mi.movie_id 20 | AND t.id = mc.movie_id 21 | AND mc.movie_id = mi.movie_id 22 | AND ct.id = mc.company_type_id 23 | AND it.id = mi.info_type_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/5b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS american_vhs_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note LIKE '%(VHS)%' 9 | AND mc.note LIKE '%(USA)%' 10 | AND mc.note LIKE '%(1994)%' 11 | AND mi.info IN ('USA', 12 | 'America') 13 | AND t.production_year > 2010 14 | AND t.id = mi.movie_id 15 | AND t.id = mc.movie_id 16 | AND mc.movie_id = mi.movie_id 17 | AND ct.id = mc.company_type_id 18 | AND it.id = mi.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/5c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS american_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note NOT LIKE '%(TV)%' 9 | AND mc.note LIKE '%(USA)%' 10 | AND mi.info IN ('Sweden', 11 | 'Norway', 12 | 'Germany', 13 | 'Denmark', 14 | 'Swedish', 15 | 'Denish', 16 | 'Norwegian', 17 | 'German', 18 | 'USA', 19 | 'American') 20 | AND t.production_year > 1990 21 | AND t.id = mi.movie_id 22 | AND t.id = mc.movie_id 23 | AND mc.movie_id = mi.movie_id 24 | AND ct.id = mc.company_type_id 25 | AND it.id = mi.info_type_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2010 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND n.name LIKE '%Downey%Robert%' 18 | AND t.production_year > 2014 19 | AND k.id = mk.keyword_id 20 | AND t.id = mk.movie_id 21 | AND t.id = ci.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND n.id = ci.person_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2014 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND n.name LIKE '%Downey%Robert%' 18 | AND t.production_year > 2000 19 | AND k.id = mk.keyword_id 20 | AND t.id = mk.movie_id 21 | AND t.id = ci.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND n.id = ci.person_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6e.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2000 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/6f.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND t.production_year > 2000 18 | AND k.id = mk.keyword_id 19 | AND t.id = mk.movie_id 20 | AND t.id = ci.movie_id 21 | AND ci.movie_id = mk.movie_id 22 | AND n.id = ci.person_id; 23 | 24 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/7a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS of_person, 2 | MIN(t.title) AS biography_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name LIKE '%a%' 12 | AND it.info ='mini biography' 13 | AND lt.link ='features' 14 | AND n.name_pcode_cf BETWEEN 'A' AND 'F' 15 | AND (n.gender='m' 16 | OR (n.gender = 'f' 17 | AND n.name LIKE 'B%')) 18 | AND pi.note ='Volker Boehm' 19 | AND t.production_year BETWEEN 1980 AND 1995 20 | AND n.id = an.person_id 21 | AND n.id = pi.person_id 22 | AND ci.person_id = n.id 23 | AND t.id = ci.movie_id 24 | AND ml.linked_movie_id = t.id 25 | AND lt.id = ml.link_type_id 26 | AND it.id = pi.info_type_id 27 | AND pi.person_id = an.person_id 28 | AND pi.person_id = ci.person_id 29 | AND an.person_id = ci.person_id 30 | AND ci.movie_id = ml.linked_movie_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/7b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS of_person, 2 | MIN(t.title) AS biography_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name LIKE '%a%' 12 | AND it.info ='mini biography' 13 | AND lt.link ='features' 14 | AND n.name_pcode_cf LIKE 'D%' 15 | AND n.gender='m' 16 | AND pi.note ='Volker Boehm' 17 | AND t.production_year BETWEEN 1980 AND 1984 18 | AND n.id = an.person_id 19 | AND n.id = pi.person_id 20 | AND ci.person_id = n.id 21 | AND t.id = ci.movie_id 22 | AND ml.linked_movie_id = t.id 23 | AND lt.id = ml.link_type_id 24 | AND it.id = pi.info_type_id 25 | AND pi.person_id = an.person_id 26 | AND pi.person_id = ci.person_id 27 | AND an.person_id = ci.person_id 28 | AND ci.movie_id = ml.linked_movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/7c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS cast_member_name, 2 | MIN(pi.info) AS cast_member_info 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name IS NOT NULL 12 | AND (an.name LIKE '%a%' 13 | OR an.name LIKE 'A%') 14 | AND it.info ='mini biography' 15 | AND lt.link IN ('references', 16 | 'referenced in', 17 | 'features', 18 | 'featured in') 19 | AND n.name_pcode_cf BETWEEN 'A' AND 'F' 20 | AND (n.gender='m' 21 | OR (n.gender = 'f' 22 | AND n.name LIKE 'A%')) 23 | AND pi.note IS NOT NULL 24 | AND t.production_year BETWEEN 1980 AND 2010 25 | AND n.id = an.person_id 26 | AND n.id = pi.person_id 27 | AND ci.person_id = n.id 28 | AND t.id = ci.movie_id 29 | AND ml.linked_movie_id = t.id 30 | AND lt.id = ml.link_type_id 31 | AND it.id = pi.info_type_id 32 | AND pi.person_id = an.person_id 33 | AND pi.person_id = ci.person_id 34 | AND an.person_id = ci.person_id 35 | AND ci.movie_id = ml.linked_movie_id; 36 | 37 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/8a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an1.name) AS actress_pseudonym, 2 | MIN(t.title) AS japanese_movie_dubbed 3 | FROM aka_name AS an1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note ='(voice: English version)' 11 | AND cn.country_code ='[jp]' 12 | AND mc.note LIKE '%(Japan)%' 13 | AND mc.note NOT LIKE '%(USA)%' 14 | AND n1.name LIKE '%Yo%' 15 | AND n1.name NOT LIKE '%Yu%' 16 | AND rt.role ='actress' 17 | AND an1.person_id = n1.id 18 | AND n1.id = ci.person_id 19 | AND ci.movie_id = t.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND ci.role_id = rt.id 23 | AND an1.person_id = ci.person_id 24 | AND ci.movie_id = mc.movie_id; 25 | 26 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/8b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS acress_pseudonym, 2 | MIN(t.title) AS japanese_anime_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note ='(voice: English version)' 11 | AND cn.country_code ='[jp]' 12 | AND mc.note LIKE '%(Japan)%' 13 | AND mc.note NOT LIKE '%(USA)%' 14 | AND (mc.note LIKE '%(2006)%' 15 | OR mc.note LIKE '%(2007)%') 16 | AND n.name LIKE '%Yo%' 17 | AND n.name NOT LIKE '%Yu%' 18 | AND rt.role ='actress' 19 | AND t.production_year BETWEEN 2006 AND 2007 20 | AND (t.title LIKE 'One Piece%' 21 | OR t.title LIKE 'Dragon Ball Z%') 22 | AND an.person_id = n.id 23 | AND n.id = ci.person_id 24 | AND ci.movie_id = t.id 25 | AND t.id = mc.movie_id 26 | AND mc.company_id = cn.id 27 | AND ci.role_id = rt.id 28 | AND an.person_id = ci.person_id 29 | AND ci.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/8c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(a1.name) AS writer_pseudo_name, 2 | MIN(t.title) AS movie_title 3 | FROM aka_name AS a1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND rt.role ='writer' 12 | AND a1.person_id = n1.id 13 | AND n1.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.role_id = rt.id 18 | AND a1.person_id = ci.person_id 19 | AND ci.movie_id = mc.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/8d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an1.name) AS costume_designer_pseudo, 2 | MIN(t.title) AS movie_with_costumes 3 | FROM aka_name AS an1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND rt.role ='costume designer' 12 | AND an1.person_id = n1.id 13 | AND n1.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.role_id = rt.id 18 | AND an1.person_id = ci.person_id 19 | AND ci.movie_id = mc.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/9a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS character_name, 3 | MIN(t.title) AS movie 4 | FROM aka_name AS an, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | company_name AS cn, 8 | movie_companies AS mc, 9 | name AS n, 10 | role_type AS rt, 11 | title AS t 12 | WHERE ci.note IN ('(voice)', 13 | '(voice: Japanese version)', 14 | '(voice) (uncredited)', 15 | '(voice: English version)') 16 | AND cn.country_code ='[us]' 17 | AND mc.note IS NOT NULL 18 | AND (mc.note LIKE '%(USA)%' 19 | OR mc.note LIKE '%(worldwide)%') 20 | AND n.gender ='f' 21 | AND n.name LIKE '%Ang%' 22 | AND rt.role ='actress' 23 | AND t.production_year BETWEEN 2005 AND 2015 24 | AND ci.movie_id = t.id 25 | AND t.id = mc.movie_id 26 | AND ci.movie_id = mc.movie_id 27 | AND mc.company_id = cn.id 28 | AND ci.role_id = rt.id 29 | AND n.id = ci.person_id 30 | AND chn.id = ci.person_role_id 31 | AND an.person_id = n.id 32 | AND an.person_id = ci.person_id; 33 | 34 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/9b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_character, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note = '(voice)' 14 | AND cn.country_code ='[us]' 15 | AND mc.note LIKE '%(200%)%' 16 | AND (mc.note LIKE '%(USA)%' 17 | OR mc.note LIKE '%(worldwide)%') 18 | AND n.gender ='f' 19 | AND n.name LIKE '%Angel%' 20 | AND rt.role ='actress' 21 | AND t.production_year BETWEEN 2007 AND 2010 22 | AND ci.movie_id = t.id 23 | AND t.id = mc.movie_id 24 | AND ci.movie_id = mc.movie_id 25 | AND mc.company_id = cn.id 26 | AND ci.role_id = rt.id 27 | AND n.id = ci.person_id 28 | AND chn.id = ci.person_role_id 29 | AND an.person_id = n.id 30 | AND an.person_id = ci.person_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/9c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_character_name, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND n.gender ='f' 19 | AND n.name LIKE '%An%' 20 | AND rt.role ='actress' 21 | AND ci.movie_id = t.id 22 | AND t.id = mc.movie_id 23 | AND ci.movie_id = mc.movie_id 24 | AND mc.company_id = cn.id 25 | AND ci.role_id = rt.id 26 | AND n.id = ci.person_id 27 | AND chn.id = ci.person_role_id 28 | AND an.person_id = n.id 29 | AND an.person_id = ci.person_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/9d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_char_name, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND n.gender ='f' 19 | AND rt.role ='actress' 20 | AND ci.movie_id = t.id 21 | AND t.id = mc.movie_id 22 | AND ci.movie_id = mc.movie_id 23 | AND mc.company_id = cn.id 24 | AND ci.role_id = rt.id 25 | AND n.id = ci.person_id 26 | AND chn.id = ci.person_role_id 27 | AND an.person_id = n.id 28 | AND an.person_id = ci.person_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/README.md: -------------------------------------------------------------------------------- 1 | # Extended JOB Queries 2 | These queries were designed to test systems trained on the regular JOB queries. They use the same relations, but have very different semantics. 3 | 4 | ### Changelog 5 | - Formatted queries with [`pg_format`](https://github.com/darold/pgFormatter) 6 | - Changed all instances of `ilike` to `lower(attr) like` 7 | - Changed all instances of alias `mii` and `miidx` to `mi_idx` 8 | - Add `count(*)` in the `ORDER BY` clause of `e12a.sql` and `e12b.sql` to the select as an attribute, and then order by attribute instead of count(*) directly 9 | - Changed all instances of alias `cn` to `chn` 10 | - In `e2a` and `e2b`, there is a cartesian product created by joining `role_type AS rt`. Based on the join graph provided in Leis et al., `role_type` can only be joined with `cast_info`. We add the join condition `ci.role_id = rt.id` to both `e2a` and `e2b`. 11 | 12 | Source: https://github.com/RyanMarcus/imdb_pg_dataset/tree/master/job_extended 13 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e10a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(n.name), 3 | min(t.title) 4 | FROM 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info_idx AS mi_idx, 8 | title AS t, 9 | cast_info AS ci, 10 | name AS n, 11 | person_info AS pi 12 | WHERE 13 | lower(it1.info) LIKE 'rating' 14 | AND it1.id = mi_idx.info_type_id 15 | AND t.id = mi_idx.movie_id 16 | AND t.id = ci.movie_id 17 | AND ci.person_id = n.id 18 | AND n.id = pi.person_id 19 | AND pi.info_type_id = it2.id 20 | AND lower(it2.info) LIKE '%birth%' 21 | AND lower(pi.info) LIKE '%india%' 22 | AND (lower(mi_idx.info) LIKE '8%' 23 | OR lower(mi_idx.info) LIKE '9%' 24 | OR lower(mi_idx.info) LIKE '10%'); 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e10b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(n.name), 3 | min(t.title) 4 | FROM 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info_idx AS mi_idx, 8 | title AS t, 9 | cast_info AS ci, 10 | name AS n, 11 | person_info AS pi 12 | WHERE 13 | lower(it1.info) LIKE 'rating' 14 | AND it1.id = mi_idx.info_type_id 15 | AND t.id = mi_idx.movie_id 16 | AND t.id = ci.movie_id 17 | AND ci.person_id = n.id 18 | AND n.id = pi.person_id 19 | AND pi.info_type_id = it2.id 20 | AND lower(it2.info) LIKE '%birth%' 21 | AND lower(pi.info) LIKE '%usa%' 22 | AND (lower(mi_idx.info) LIKE '0%' 23 | OR lower(mi_idx.info) LIKE '1%' 24 | OR lower(mi_idx.info) LIKE '2%'); 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e11a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | count(*) 3 | FROM 4 | info_type AS it1, 5 | info_type AS it2, 6 | title AS t, 7 | movie_info AS mi, 8 | cast_info AS ci, 9 | name AS n, 10 | person_info AS pi 11 | WHERE 12 | t.id = ci.movie_id 13 | AND ci.person_id = n.id 14 | AND n.id = pi.person_id 15 | AND lower(it2.info) LIKE '%birth%' 16 | AND pi.info_type_id = it2.id 17 | AND (lower(pi.info) LIKE '%uk%' 18 | OR lower(pi.info) LIKE '%spain%' 19 | OR lower(pi.info) LIKE '%germany%' 20 | OR lower(pi.info) LIKE '%italy%' 21 | OR lower(pi.info) LIKE '%croatia%' 22 | OR lower(pi.info) LIKE '%algeria%' 23 | OR lower(pi.info) LIKE '%south%' 24 | OR lower(pi.info) LIKE '%austria%' 25 | OR lower(pi.info) LIKE '%hungary%') 26 | AND lower(it1.info) LIKE '%count%' 27 | AND mi.info_type_id = it1.id 28 | AND t.id = mi.movie_id 29 | AND lower(mi.info) LIKE '%france%'; 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e11b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | count(*) 3 | FROM 4 | info_type AS it1, 5 | info_type AS it2, 6 | title AS t, 7 | movie_info AS mi, 8 | cast_info AS ci, 9 | name AS n, 10 | person_info AS pi 11 | WHERE 12 | t.id = ci.movie_id 13 | AND ci.person_id = n.id 14 | AND n.id = pi.person_id 15 | AND lower(it2.info) LIKE '%birth%' 16 | AND pi.info_type_id = it2.id 17 | AND lower(pi.info) LIKE '%india%' 18 | AND lower(it1.info) LIKE '%count%' 19 | AND mi.info_type_id = it1.id 20 | AND t.id = mi.movie_id 21 | AND lower(mi.info) LIKE '%usa%'; 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e12a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | n.name 3 | FROM 4 | title AS t, 5 | name AS n, 6 | cast_info AS ci, 7 | movie_info AS mi, 8 | info_type AS it1, 9 | info_type AS it2, 10 | person_info AS pi 11 | WHERE 12 | t.id = ci.movie_id 13 | AND t.id = mi.movie_id 14 | AND ci.person_id = n.id 15 | AND it1.id = 3 16 | AND it1.id = mi.info_type_id 17 | AND (lower(mi.info) LIKE '%romance%' 18 | OR lower(mi.info) LIKE '%action%') 19 | AND lower(it2.info) LIKE '%birth%' 20 | AND pi.person_id = n.id 21 | AND pi.info_type_id = it2.id 22 | AND lower(pi.info) LIKE '%usa%' 23 | GROUP BY 24 | n.name 25 | ORDER BY 26 | count(*) DESC; 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e12b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | n.name 3 | FROM 4 | title AS t, 5 | name AS n, 6 | cast_info AS ci, 7 | movie_info AS mi, 8 | info_type AS it1, 9 | info_type AS it2, 10 | person_info AS pi 11 | WHERE 12 | t.id = ci.movie_id 13 | AND t.id = mi.movie_id 14 | AND ci.person_id = n.id 15 | AND it1.id = 3 16 | AND it1.id = mi.info_type_id 17 | AND (lower(mi.info) LIKE '%adult%') 18 | AND lower(it2.info) LIKE '%birth%' 19 | AND pi.person_id = n.id 20 | AND pi.info_type_id = it2.id 21 | AND lower(pi.info) LIKE '%japan%' 22 | GROUP BY 23 | n.name 24 | ORDER BY 25 | count(*) DESC; 26 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e1a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(t.title), 3 | min(t.production_year), 4 | min(chn.name) 5 | FROM 6 | cast_info ci, 7 | title t, 8 | char_name chn 9 | WHERE 10 | ci.movie_id = t.id 11 | AND chn.id = ci.person_role_id 12 | AND t.kind_id = 1 13 | AND ci.role_id = 2; 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e1b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(t.title), 3 | max(t.production_year), 4 | min(chn.name) 5 | FROM 6 | cast_info ci, 7 | title t, 8 | char_name chn 9 | WHERE 10 | ci.movie_id = t.id 11 | AND chn.id = ci.person_role_id 12 | AND t.kind_id = 3 13 | AND ci.role_id = 1; 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e2a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(chn.name) AS uncredited_voiced_character, 3 | MIN(t.title) AS russian_movie 4 | FROM 5 | char_name chn, 6 | cast_info ci, 7 | role_type rt, 8 | movie_companies mc, 9 | title t 10 | WHERE 11 | ci.note LIKE '%(voice)%' 12 | AND ci.note LIKE '%(uncredited)%' 13 | AND t.production_year > 2003 14 | AND t.id = mc.movie_id 15 | AND t.id = ci.movie_id 16 | AND ci.movie_id = mc.movie_id 17 | AND ci.role_id = rt.id 18 | AND chn.id = ci.person_role_id; 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e2b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(chn.name) AS uncredited_voiced_character, 3 | MIN(t.title) 4 | FROM 5 | char_name chn, 6 | cast_info ci, 7 | role_type rt, 8 | movie_companies mc, 9 | title t 10 | WHERE 11 | ci.note NOT LIKE '%(voice)%' 12 | AND ci.note LIKE '%(uncredited)%' 13 | AND t.production_year > 2010 14 | AND t.id = mc.movie_id 15 | AND t.id = ci.movie_id 16 | AND ci.movie_id = mc.movie_id 17 | AND ci.role_id = rt.id 18 | AND chn.id = ci.person_role_id; 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e3a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS mainstream_movie 4 | FROM 5 | movie_companies mc, 6 | movie_info mi, 7 | movie_info_idx mi_idx, 8 | title t 9 | WHERE 10 | mi.info IN ('Drama', 'Horror', 'Western', 'Family') 11 | AND mi_idx.info > '7.0' 12 | AND t.production_year BETWEEN 2000 AND 2010 13 | AND t.id = mi.movie_id 14 | AND t.id = mi_idx.movie_id 15 | AND t.id = mc.movie_id; 16 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e3b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS mainstream_movie 4 | FROM 5 | movie_companies mc, 6 | movie_info mi, 7 | movie_info_idx mi_idx, 8 | title t 9 | WHERE 10 | mi.info IN ('Drama', 'Horror', 'Western', 'Family') 11 | AND mi_idx.info > '5.0' 12 | AND t.production_year BETWEEN 2005 AND 2010 13 | AND t.id = mi.movie_id 14 | AND t.id = mi_idx.movie_id 15 | AND t.id = mc.movie_id; 16 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e4a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi.info) AS release_date, 3 | MIN(miidx.info) AS rating, 4 | MIN(t.title) AS hongkong_movie 5 | FROM 6 | company_name cn, 7 | company_type ct, 8 | info_type it, 9 | kind_type kt, 10 | movie_companies mc, 11 | movie_info mi, 12 | movie_info_idx miidx, 13 | title t 14 | WHERE 15 | cn.country_code = '[hk]' 16 | AND ct.kind = 'production companies' 17 | AND it.info = 'rating' 18 | AND kt.kind = 'movie' 19 | AND mi.movie_id = t.id 20 | AND kt.id = t.kind_id 21 | AND mc.movie_id = t.id 22 | AND cn.id = mc.company_id 23 | AND ct.id = mc.company_type_id 24 | AND miidx.movie_id = t.id 25 | AND it.id = miidx.info_type_id 26 | AND mi.movie_id = miidx.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND miidx.movie_id = mc.movie_id; 29 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e4b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi.info) AS release_date, 3 | MIN(t.title) AS modern_internet_movie 4 | FROM 5 | aka_title at, 6 | movie_companies mc, 7 | movie_info mi, 8 | movie_keyword mk, 9 | title t 10 | WHERE 11 | mi.note LIKE '%internet%' 12 | AND mi.info IS NOT NULL 13 | AND (mi.info LIKE 'USA:% 199%' 14 | OR mi.info LIKE 'USA:% 200%') 15 | AND t.production_year > 2000 16 | AND t.id = at.movie_id 17 | AND t.id = mi.movie_id 18 | AND t.id = mk.movie_id 19 | AND t.id = mc.movie_id; 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e5a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mc.note) AS production_note, 3 | MIN(t.title) AS movie_title, 4 | MIN(t.production_year) AS movie_year 5 | FROM 6 | company_type ct, 7 | movie_companies mc, 8 | title t 9 | WHERE 10 | ct.kind = 'production companies' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND t.production_year > 2008 13 | AND ct.id = mc.company_type_id 14 | AND t.id = mc.movie_id; 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e5b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(t.title) AS movie_title 3 | FROM 4 | keyword k, 5 | movie_info mi, 6 | movie_keyword mk, 7 | title t 8 | WHERE 9 | k.keyword LIKE '%sequel%' 10 | AND mi.info IN ('Sweden', 'Norway', 'Germany', 'Denmark', 'Swedish', 'Denish', 'Norwegian', 'German') 11 | AND t.production_year > 2005 12 | AND t.id = mi.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi.movie_id 15 | AND k.id = mk.keyword_id; 16 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e6a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS movie_title 4 | FROM 5 | movie_info_idx mi_idx, 6 | movie_keyword mk, 7 | title t 8 | WHERE 9 | mi_idx.info > '2.0' 10 | AND t.production_year > 2005 11 | AND t.id = mi_idx.movie_id 12 | AND t.id = mk.movie_id 13 | AND mk.movie_id = mi_idx.movie_id; 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e6b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS movie_title 4 | FROM 5 | movie_info_idx mi_idx, 6 | movie_keyword mk, 7 | title t 8 | WHERE 9 | mi_idx.info > '3.0' 10 | AND t.production_year > 2008 11 | AND t.id = mi_idx.movie_id 12 | AND t.id = mk.movie_id 13 | AND mk.movie_id = mi_idx.movie_id; 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e7a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | MIN(mi.info) AS movie_budget, 3 | MIN(mi_idx.info) AS movie_votes, 4 | MIN(kt.kind) AS movie_type, 5 | MIN(t.title) AS violent_movie 6 | FROM 7 | cast_info ci, 8 | company_name cn, 9 | info_type it1, 10 | info_type it2, 11 | keyword k, 12 | movie_companies mc, 13 | movie_info mi, 14 | movie_info_idx mi_idx, 15 | movie_keyword mk, 16 | title t, 17 | kind_type kt 18 | WHERE 19 | ci.note IN ('(writer)', '(head writer)', '(written by)', '(story)', '(story editor)') 20 | AND cn.country_code = '[hk]' 21 | AND it1.info = 'genres' 22 | AND it2.info = 'votes' 23 | AND k.keyword IN ('murder', 'violence', 'blood', 'gore', 'death', 'female-nudity', 'hospital') 24 | AND mc.note LIKE '%(Blu-ray)%' 25 | AND mi.info IN ('Horror', 'Thriller') 26 | AND t.production_year > 2000 27 | AND t.id = mi.movie_id 28 | AND t.id = mi_idx.movie_id 29 | AND t.id = ci.movie_id 30 | AND t.id = mk.movie_id 31 | AND t.id = mc.movie_id 32 | AND ci.movie_id = mi.movie_id 33 | AND ci.movie_id = mi_idx.movie_id 34 | AND ci.movie_id = mk.movie_id 35 | AND ci.movie_id = mc.movie_id 36 | AND mi.movie_id = mi_idx.movie_id 37 | AND mi.movie_id = mk.movie_id 38 | AND mi.movie_id = mc.movie_id 39 | AND mi_idx.movie_id = mk.movie_id 40 | AND mi_idx.movie_id = mc.movie_id 41 | AND mk.movie_id = mc.movie_id 42 | AND it1.id = mi.info_type_id 43 | AND it2.id = mi_idx.info_type_id 44 | AND k.id = mk.keyword_id 45 | AND cn.id = mc.company_id 46 | AND t.kind_id = kt.id; 47 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e8a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | count(*) 3 | FROM 4 | title AS t, 5 | movie_keyword AS mk, 6 | keyword AS k, 7 | info_type AS it, 8 | movie_info AS mi 9 | WHERE 10 | it.id = 3 11 | AND it.id = mi.info_type_id 12 | AND mi.movie_id = t.id 13 | AND mk.keyword_id = k.id 14 | AND mk.movie_id = t.id 15 | AND lower(k.keyword) LIKE '%love%' 16 | AND lower(mi.info) LIKE '%romance%'; 17 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e8b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | count(*) 3 | FROM 4 | title AS t, 5 | movie_keyword AS mk, 6 | keyword AS k, 7 | info_type AS it, 8 | movie_info AS mi 9 | WHERE 10 | it.id = 3 11 | AND it.id = mi.info_type_id 12 | AND mi.movie_id = t.id 13 | AND mk.keyword_id = k.id 14 | AND mk.movie_id = t.id 15 | AND lower(k.keyword) LIKE '%fight%' 16 | AND lower(mi.info) LIKE '%action%'; 17 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e9a.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(t.title), 3 | min(pi.info) 4 | FROM 5 | person_info AS pi, 6 | info_type AS it1, 7 | info_type AS it2, 8 | name AS n, 9 | cast_info AS ci, 10 | title AS t, 11 | movie_info AS mi 12 | WHERE 13 | t.id = mi.movie_id 14 | AND it2.id = 3 15 | AND mi.info_type_id = it2.id 16 | AND lower(mi.info) LIKE '%sci%' 17 | AND t.id = ci.movie_id 18 | AND ci.person_id = n.id 19 | AND n.id = pi.person_id 20 | AND lower(it1.info) LIKE 'birth date' 21 | AND pi.info_type_id = it1.id 22 | AND lower(pi.info) LIKE '%199%'; 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark-extended/e9b.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | min(t.title), 3 | min(pi.info) 4 | FROM 5 | person_info AS pi, 6 | info_type AS it1, 7 | info_type AS it2, 8 | name AS n, 9 | cast_info AS ci, 10 | title AS t, 11 | movie_info AS mi 12 | WHERE 13 | t.id = mi.movie_id 14 | AND it2.id = 3 15 | AND mi.info_type_id = it2.id 16 | AND (lower(mi.info) LIKE '%documentary%') 17 | AND t.id = ci.movie_id 18 | AND ci.person_id = n.id 19 | AND n.id = pi.person_id 20 | AND lower(it1.info) LIKE 'birth date' 21 | AND pi.info_type_id = it1.id 22 | AND (lower(pi.info) LIKE '%189%' 23 | OR lower(pi.info) LIKE '188%' 24 | OR lower(pi.info) LIKE '187%' 25 | OR lower(pi.info) LIKE '186%' 26 | OR lower(pi.info) LIKE '185%' 27 | OR lower(pi.info) LIKE '184%') 28 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/10a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS uncredited_voiced_character, 2 | MIN(t.title) AS russian_movie 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(voice)%' 11 | AND ci.note LIKE '%(uncredited)%' 12 | AND cn.country_code = '[ru]' 13 | AND rt.role = 'actor' 14 | AND t.production_year > 2005 15 | AND t.id = mc.movie_id 16 | AND t.id = ci.movie_id 17 | AND ci.movie_id = mc.movie_id 18 | AND chn.id = ci.person_role_id 19 | AND rt.id = ci.role_id 20 | AND cn.id = mc.company_id 21 | AND ct.id = mc.company_type_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/10b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character, 2 | MIN(t.title) AS russian_mov_with_actor_producer 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(producer)%' 11 | AND cn.country_code = '[ru]' 12 | AND rt.role = 'actor' 13 | AND t.production_year > 2010 14 | AND t.id = mc.movie_id 15 | AND t.id = ci.movie_id 16 | AND ci.movie_id = mc.movie_id 17 | AND chn.id = ci.person_role_id 18 | AND rt.id = ci.role_id 19 | AND cn.id = mc.company_id 20 | AND ct.id = mc.company_type_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/10c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character, 2 | MIN(t.title) AS movie_with_american_producer 3 | FROM char_name AS chn, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | company_type AS ct, 7 | movie_companies AS mc, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note LIKE '%(producer)%' 11 | AND cn.country_code = '[us]' 12 | AND t.production_year > 1990 13 | AND t.id = mc.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mc.movie_id 16 | AND chn.id = ci.person_role_id 17 | AND rt.id = ci.role_id 18 | AND cn.id = mc.company_id 19 | AND ct.id = mc.company_type_id; 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/11a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(lt.link) AS movie_link_type, 3 | MIN(t.title) AS non_polish_sequel_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '%Film%' 14 | OR cn.name LIKE '%Warner%') 15 | AND ct.kind ='production companies' 16 | AND k.keyword ='sequel' 17 | AND lt.link LIKE '%follow%' 18 | AND mc.note IS NULL 19 | AND t.production_year BETWEEN 1950 AND 2000 20 | AND lt.id = ml.link_type_id 21 | AND ml.movie_id = t.id 22 | AND t.id = mk.movie_id 23 | AND mk.keyword_id = k.id 24 | AND t.id = mc.movie_id 25 | AND mc.company_type_id = ct.id 26 | AND mc.company_id = cn.id 27 | AND ml.movie_id = mk.movie_id 28 | AND ml.movie_id = mc.movie_id 29 | AND mk.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/11b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(lt.link) AS movie_link_type, 3 | MIN(t.title) AS sequel_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '%Film%' 14 | OR cn.name LIKE '%Warner%') 15 | AND ct.kind ='production companies' 16 | AND k.keyword ='sequel' 17 | AND lt.link LIKE '%follows%' 18 | AND mc.note IS NULL 19 | AND t.production_year = 1998 20 | AND t.title LIKE '%Money%' 21 | AND lt.id = ml.link_type_id 22 | AND ml.movie_id = t.id 23 | AND t.id = mk.movie_id 24 | AND mk.keyword_id = k.id 25 | AND t.id = mc.movie_id 26 | AND mc.company_type_id = ct.id 27 | AND mc.company_id = cn.id 28 | AND ml.movie_id = mk.movie_id 29 | AND ml.movie_id = mc.movie_id 30 | AND mk.movie_id = mc.movie_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/11c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(mc.note) AS production_note, 3 | MIN(t.title) AS movie_based_on_book 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND (cn.name LIKE '20th Century Fox%' 14 | OR cn.name LIKE 'Twentieth Century Fox%') 15 | AND ct.kind != 'production companies' 16 | AND ct.kind IS NOT NULL 17 | AND k.keyword IN ('sequel', 18 | 'revenge', 19 | 'based-on-novel') 20 | AND mc.note IS NOT NULL 21 | AND t.production_year > 1950 22 | AND lt.id = ml.link_type_id 23 | AND ml.movie_id = t.id 24 | AND t.id = mk.movie_id 25 | AND mk.keyword_id = k.id 26 | AND t.id = mc.movie_id 27 | AND mc.company_type_id = ct.id 28 | AND mc.company_id = cn.id 29 | AND ml.movie_id = mk.movie_id 30 | AND ml.movie_id = mc.movie_id 31 | AND mk.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/11d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS from_company, 2 | MIN(mc.note) AS production_note, 3 | MIN(t.title) AS movie_based_on_book 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_keyword AS mk, 10 | movie_link AS ml, 11 | title AS t 12 | WHERE cn.country_code !='[pl]' 13 | AND ct.kind != 'production companies' 14 | AND ct.kind IS NOT NULL 15 | AND k.keyword IN ('sequel', 16 | 'revenge', 17 | 'based-on-novel') 18 | AND mc.note IS NOT NULL 19 | AND t.production_year > 1950 20 | AND lt.id = ml.link_type_id 21 | AND ml.movie_id = t.id 22 | AND t.id = mk.movie_id 23 | AND mk.keyword_id = k.id 24 | AND t.id = mc.movie_id 25 | AND mc.company_type_id = ct.id 26 | AND mc.company_id = cn.id 27 | AND ml.movie_id = mk.movie_id 28 | AND ml.movie_id = mc.movie_id 29 | AND mk.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/12a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS drama_horror_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND ct.kind = 'production companies' 14 | AND it1.info = 'genres' 15 | AND it2.info = 'rating' 16 | AND mi.info IN ('Drama', 17 | 'Horror') 18 | AND mi_idx.info > '8.0' 19 | AND t.production_year BETWEEN 2005 AND 2008 20 | AND t.id = mi.movie_id 21 | AND t.id = mi_idx.movie_id 22 | AND mi.info_type_id = it1.id 23 | AND mi_idx.info_type_id = it2.id 24 | AND t.id = mc.movie_id 25 | AND ct.id = mc.company_type_id 26 | AND cn.id = mc.company_id 27 | AND mc.movie_id = mi.movie_id 28 | AND mc.movie_id = mi_idx.movie_id 29 | AND mi.movie_id = mi_idx.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/12b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS budget, 2 | MIN(t.title) AS unsuccsessful_movie 3 | FROM company_name AS cn, 4 | company_type AS ct, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_companies AS mc, 8 | movie_info AS mi, 9 | movie_info_idx AS mi_idx, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND ct.kind IS NOT NULL 13 | AND (ct.kind ='production companies' 14 | OR ct.kind = 'distributors') 15 | AND it1.info ='budget' 16 | AND it2.info ='bottom 10 rank' 17 | AND t.production_year >2000 18 | AND (t.title LIKE 'Birdemic%' 19 | OR t.title LIKE '%Movie%') 20 | AND t.id = mi.movie_id 21 | AND t.id = mi_idx.movie_id 22 | AND mi.info_type_id = it1.id 23 | AND mi_idx.info_type_id = it2.id 24 | AND t.id = mc.movie_id 25 | AND ct.id = mc.company_type_id 26 | AND cn.id = mc.company_id 27 | AND mc.movie_id = mi.movie_id 28 | AND mc.movie_id = mi_idx.movie_id 29 | AND mi.movie_id = mi_idx.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/12c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS mainstream_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND ct.kind = 'production companies' 14 | AND it1.info = 'genres' 15 | AND it2.info = 'rating' 16 | AND mi.info IN ('Drama', 17 | 'Horror', 18 | 'Western', 19 | 'Family') 20 | AND mi_idx.info > '7.0' 21 | AND t.production_year BETWEEN 2000 AND 2010 22 | AND t.id = mi.movie_id 23 | AND t.id = mi_idx.movie_id 24 | AND mi.info_type_id = it1.id 25 | AND mi_idx.info_type_id = it2.id 26 | AND t.id = mc.movie_id 27 | AND ct.id = mc.company_type_id 28 | AND cn.id = mc.company_id 29 | AND mc.movie_id = mi.movie_id 30 | AND mc.movie_id = mi_idx.movie_id 31 | AND mi.movie_id = mi_idx.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/13a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS german_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[de]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND mi.movie_id = t.id 19 | AND it2.id = mi.info_type_id 20 | AND kt.id = t.kind_id 21 | AND mc.movie_id = t.id 22 | AND cn.id = mc.company_id 23 | AND ct.id = mc.company_type_id 24 | AND miidx.movie_id = t.id 25 | AND it.id = miidx.info_type_id 26 | AND mi.movie_id = miidx.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND miidx.movie_id = mc.movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/13b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie_about_winning 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND t.title != '' 19 | AND (t.title LIKE '%Champion%' 20 | OR t.title LIKE '%Loser%') 21 | AND mi.movie_id = t.id 22 | AND it2.id = mi.info_type_id 23 | AND kt.id = t.kind_id 24 | AND mc.movie_id = t.id 25 | AND cn.id = mc.company_id 26 | AND ct.id = mc.company_type_id 27 | AND miidx.movie_id = t.id 28 | AND it.id = miidx.info_type_id 29 | AND mi.movie_id = miidx.movie_id 30 | AND mi.movie_id = mc.movie_id 31 | AND miidx.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/13c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie_about_winning 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND t.title != '' 19 | AND (t.title LIKE 'Champion%' 20 | OR t.title LIKE 'Loser%') 21 | AND mi.movie_id = t.id 22 | AND it2.id = mi.info_type_id 23 | AND kt.id = t.kind_id 24 | AND mc.movie_id = t.id 25 | AND cn.id = mc.company_id 26 | AND ct.id = mc.company_type_id 27 | AND miidx.movie_id = t.id 28 | AND it.id = miidx.info_type_id 29 | AND mi.movie_id = miidx.movie_id 30 | AND mi.movie_id = mc.movie_id 31 | AND miidx.movie_id = mc.movie_id; 32 | 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/13d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS producing_company, 2 | MIN(miidx.info) AS rating, 3 | MIN(t.title) AS movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it, 7 | info_type AS it2, 8 | kind_type AS kt, 9 | movie_companies AS mc, 10 | movie_info AS mi, 11 | movie_info_idx AS miidx, 12 | title AS t 13 | WHERE cn.country_code ='[us]' 14 | AND ct.kind ='production companies' 15 | AND it.info ='rating' 16 | AND it2.info ='release dates' 17 | AND kt.kind ='movie' 18 | AND mi.movie_id = t.id 19 | AND it2.id = mi.info_type_id 20 | AND kt.id = t.kind_id 21 | AND mc.movie_id = t.id 22 | AND cn.id = mc.company_id 23 | AND ct.id = mc.company_type_id 24 | AND miidx.movie_id = t.id 25 | AND it.id = miidx.info_type_id 26 | AND mi.movie_id = miidx.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND miidx.movie_id = mc.movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/14a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS northern_dark_movie 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IN ('murder', 14 | 'murder-in-title', 15 | 'blood', 16 | 'violence') 17 | AND kt.kind = 'movie' 18 | AND mi.info IN ('Sweden', 19 | 'Norway', 20 | 'Germany', 21 | 'Denmark', 22 | 'Swedish', 23 | 'Denish', 24 | 'Norwegian', 25 | 'German', 26 | 'USA', 27 | 'American') 28 | AND mi_idx.info < '8.5' 29 | AND t.production_year > 2010 30 | AND kt.id = t.kind_id 31 | AND t.id = mi.movie_id 32 | AND t.id = mk.movie_id 33 | AND t.id = mi_idx.movie_id 34 | AND mk.movie_id = mi.movie_id 35 | AND mk.movie_id = mi_idx.movie_id 36 | AND mi.movie_id = mi_idx.movie_id 37 | AND k.id = mk.keyword_id 38 | AND it1.id = mi.info_type_id 39 | AND it2.id = mi_idx.info_type_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/14b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS western_dark_production 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IN ('murder', 14 | 'murder-in-title') 15 | AND kt.kind = 'movie' 16 | AND mi.info IN ('Sweden', 17 | 'Norway', 18 | 'Germany', 19 | 'Denmark', 20 | 'Swedish', 21 | 'Denish', 22 | 'Norwegian', 23 | 'German', 24 | 'USA', 25 | 'American') 26 | AND mi_idx.info > '6.0' 27 | AND t.production_year > 2010 28 | AND (t.title LIKE '%murder%' 29 | OR t.title LIKE '%Murder%' 30 | OR t.title LIKE '%Mord%') 31 | AND kt.id = t.kind_id 32 | AND t.id = mi.movie_id 33 | AND t.id = mk.movie_id 34 | AND t.id = mi_idx.movie_id 35 | AND mk.movie_id = mi.movie_id 36 | AND mk.movie_id = mi_idx.movie_id 37 | AND mi.movie_id = mi_idx.movie_id 38 | AND k.id = mk.keyword_id 39 | AND it1.id = mi.info_type_id 40 | AND it2.id = mi_idx.info_type_id; 41 | 42 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/14c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS north_european_dark_production 3 | FROM info_type AS it1, 4 | info_type AS it2, 5 | keyword AS k, 6 | kind_type AS kt, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | movie_keyword AS mk, 10 | title AS t 11 | WHERE it1.info = 'countries' 12 | AND it2.info = 'rating' 13 | AND k.keyword IS NOT NULL 14 | AND k.keyword IN ('murder', 15 | 'murder-in-title', 16 | 'blood', 17 | 'violence') 18 | AND kt.kind IN ('movie', 19 | 'episode') 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Danish', 26 | 'Norwegian', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '8.5' 31 | AND t.production_year > 2005 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND mk.movie_id = mi.movie_id 37 | AND mk.movie_id = mi_idx.movie_id 38 | AND mi.movie_id = mi_idx.movie_id 39 | AND k.id = mk.keyword_id 40 | AND it1.id = mi.info_type_id 41 | AND it2.id = mi_idx.info_type_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/15a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS internet_movie 3 | FROM aka_title AS aka_t, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mc.note LIKE '%(200%)%' 15 | AND mc.note LIKE '%(worldwide)%' 16 | AND mi.note LIKE '%internet%' 17 | AND mi.info LIKE 'USA:% 200%' 18 | AND t.production_year > 2000 19 | AND t.id = aka_t.movie_id 20 | AND t.id = mi.movie_id 21 | AND t.id = mk.movie_id 22 | AND t.id = mc.movie_id 23 | AND mk.movie_id = mi.movie_id 24 | AND mk.movie_id = mc.movie_id 25 | AND mk.movie_id = aka_t.movie_id 26 | AND mi.movie_id = mc.movie_id 27 | AND mi.movie_id = aka_t.movie_id 28 | AND mc.movie_id = aka_t.movie_id 29 | AND k.id = mk.keyword_id 30 | AND it1.id = mi.info_type_id 31 | AND cn.id = mc.company_id 32 | AND ct.id = mc.company_type_id; 33 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/15b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS youtube_movie 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND cn.name = 'YouTube' 14 | AND it1.info = 'release dates' 15 | AND mc.note LIKE '%(200%)%' 16 | AND mc.note LIKE '%(worldwide)%' 17 | AND mi.note LIKE '%internet%' 18 | AND mi.info LIKE 'USA:% 200%' 19 | AND t.production_year BETWEEN 2005 AND 2010 20 | AND t.id = at.movie_id 21 | AND t.id = mi.movie_id 22 | AND t.id = mk.movie_id 23 | AND t.id = mc.movie_id 24 | AND mk.movie_id = mi.movie_id 25 | AND mk.movie_id = mc.movie_id 26 | AND mk.movie_id = at.movie_id 27 | AND mi.movie_id = mc.movie_id 28 | AND mi.movie_id = at.movie_id 29 | AND mc.movie_id = at.movie_id 30 | AND k.id = mk.keyword_id 31 | AND it1.id = mi.info_type_id 32 | AND cn.id = mc.company_id 33 | AND ct.id = mc.company_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/15c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS release_date, 2 | MIN(t.title) AS modern_american_internet_movie 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mi.note LIKE '%internet%' 15 | AND mi.info IS NOT NULL 16 | AND (mi.info LIKE 'USA:% 199%' 17 | OR mi.info LIKE 'USA:% 200%') 18 | AND t.production_year > 1990 19 | AND t.id = at.movie_id 20 | AND t.id = mi.movie_id 21 | AND t.id = mk.movie_id 22 | AND t.id = mc.movie_id 23 | AND mk.movie_id = mi.movie_id 24 | AND mk.movie_id = mc.movie_id 25 | AND mk.movie_id = at.movie_id 26 | AND mi.movie_id = mc.movie_id 27 | AND mi.movie_id = at.movie_id 28 | AND mc.movie_id = at.movie_id 29 | AND k.id = mk.keyword_id 30 | AND it1.id = mi.info_type_id 31 | AND cn.id = mc.company_id 32 | AND ct.id = mc.company_type_id; 33 | 34 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/15d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(at.title) AS aka_title, 2 | MIN(t.title) AS internet_movie_title 3 | FROM aka_title AS at, 4 | company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | keyword AS k, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | title AS t 12 | WHERE cn.country_code = '[us]' 13 | AND it1.info = 'release dates' 14 | AND mi.note LIKE '%internet%' 15 | AND t.production_year > 1990 16 | AND t.id = at.movie_id 17 | AND t.id = mi.movie_id 18 | AND t.id = mk.movie_id 19 | AND t.id = mc.movie_id 20 | AND mk.movie_id = mi.movie_id 21 | AND mk.movie_id = mc.movie_id 22 | AND mk.movie_id = at.movie_id 23 | AND mi.movie_id = mc.movie_id 24 | AND mi.movie_id = at.movie_id 25 | AND mc.movie_id = at.movie_id 26 | AND k.id = mk.keyword_id 27 | AND it1.id = mi.info_type_id 28 | AND cn.id = mc.company_id 29 | AND ct.id = mc.company_type_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/16a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr >= 50 14 | AND t.episode_nr < 100 15 | AND an.person_id = n.id 16 | AND n.id = ci.person_id 17 | AND ci.movie_id = t.id 18 | AND t.id = mk.movie_id 19 | AND mk.keyword_id = k.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND an.person_id = ci.person_id 23 | AND ci.movie_id = mc.movie_id 24 | AND ci.movie_id = mk.movie_id 25 | AND mc.movie_id = mk.movie_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/16b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND an.person_id = n.id 14 | AND n.id = ci.person_id 15 | AND ci.movie_id = t.id 16 | AND t.id = mk.movie_id 17 | AND mk.keyword_id = k.id 18 | AND t.id = mc.movie_id 19 | AND mc.company_id = cn.id 20 | AND an.person_id = ci.person_id 21 | AND ci.movie_id = mc.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND mc.movie_id = mk.movie_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/16c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr < 100 14 | AND an.person_id = n.id 15 | AND n.id = ci.person_id 16 | AND ci.movie_id = t.id 17 | AND t.id = mk.movie_id 18 | AND mk.keyword_id = k.id 19 | AND t.id = mc.movie_id 20 | AND mc.company_id = cn.id 21 | AND an.person_id = ci.person_id 22 | AND ci.movie_id = mc.movie_id 23 | AND ci.movie_id = mk.movie_id 24 | AND mc.movie_id = mk.movie_id; 25 | 26 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/16d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS cool_actor_pseudonym, 2 | MIN(t.title) AS series_named_after_char 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | keyword AS k, 7 | movie_companies AS mc, 8 | movie_keyword AS mk, 9 | name AS n, 10 | title AS t 11 | WHERE cn.country_code ='[us]' 12 | AND k.keyword ='character-name-in-title' 13 | AND t.episode_nr >= 5 14 | AND t.episode_nr < 100 15 | AND an.person_id = n.id 16 | AND n.id = ci.person_id 17 | AND ci.movie_id = t.id 18 | AND t.id = mk.movie_id 19 | AND mk.keyword_id = k.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND an.person_id = ci.person_id 23 | AND ci.movie_id = mc.movie_id 24 | AND ci.movie_id = mk.movie_id 25 | AND mc.movie_id = mk.movie_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_american_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND k.keyword ='character-name-in-title' 12 | AND n.name LIKE 'B%' 13 | AND n.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mk.movie_id 16 | AND mk.keyword_id = k.id 17 | AND t.id = mc.movie_id 18 | AND mc.company_id = cn.id 19 | AND ci.movie_id = mc.movie_id 20 | AND ci.movie_id = mk.movie_id 21 | AND mc.movie_id = mk.movie_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE k.keyword ='character-name-in-title' 11 | AND n.name LIKE 'Z%' 12 | AND n.id = ci.person_id 13 | AND ci.movie_id = t.id 14 | AND t.id = mk.movie_id 15 | AND mk.keyword_id = k.id 16 | AND t.id = mc.movie_id 17 | AND mc.company_id = cn.id 18 | AND ci.movie_id = mc.movie_id 19 | AND ci.movie_id = mk.movie_id 20 | AND mc.movie_id = mk.movie_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie, 2 | MIN(n.name) AS a1 3 | FROM cast_info AS ci, 4 | company_name AS cn, 5 | keyword AS k, 6 | movie_companies AS mc, 7 | movie_keyword AS mk, 8 | name AS n, 9 | title AS t 10 | WHERE k.keyword ='character-name-in-title' 11 | AND n.name LIKE 'X%' 12 | AND n.id = ci.person_id 13 | AND ci.movie_id = t.id 14 | AND t.id = mk.movie_id 15 | AND mk.keyword_id = k.id 16 | AND t.id = mc.movie_id 17 | AND mc.company_id = cn.id 18 | AND ci.movie_id = mc.movie_id 19 | AND ci.movie_id = mk.movie_id 20 | AND mc.movie_id = mk.movie_id; 21 | 22 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword ='character-name-in-title' 10 | AND n.name LIKE '%Bert%' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17e.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE cn.country_code ='[us]' 10 | AND k.keyword ='character-name-in-title' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/17f.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS member_in_charnamed_movie 2 | FROM cast_info AS ci, 3 | company_name AS cn, 4 | keyword AS k, 5 | movie_companies AS mc, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword ='character-name-in-title' 10 | AND n.name LIKE '%B%' 11 | AND n.id = ci.person_id 12 | AND ci.movie_id = t.id 13 | AND t.id = mk.movie_id 14 | AND mk.keyword_id = k.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.movie_id = mc.movie_id 18 | AND ci.movie_id = mk.movie_id 19 | AND mc.movie_id = mk.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/18a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(producer)', 12 | '(executive producer)') 13 | AND it1.info = 'budget' 14 | AND it2.info = 'votes' 15 | AND n.gender = 'm' 16 | AND n.name LIKE '%Tim%' 17 | AND t.id = mi.movie_id 18 | AND t.id = mi_idx.movie_id 19 | AND t.id = ci.movie_id 20 | AND ci.movie_id = mi.movie_id 21 | AND ci.movie_id = mi_idx.movie_id 22 | AND mi.movie_id = mi_idx.movie_id 23 | AND n.id = ci.person_id 24 | AND it1.id = mi.info_type_id 25 | AND it2.id = mi_idx.info_type_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/18b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(writer)', 12 | '(head writer)', 13 | '(written by)', 14 | '(story)', 15 | '(story editor)') 16 | AND it1.info = 'genres' 17 | AND it2.info = 'rating' 18 | AND mi.info IN ('Horror', 19 | 'Thriller') 20 | AND mi.note IS NULL 21 | AND mi_idx.info > '8.0' 22 | AND n.gender IS NOT NULL 23 | AND n.gender = 'f' 24 | AND t.production_year BETWEEN 2008 AND 2014 25 | AND t.id = mi.movie_id 26 | AND t.id = mi_idx.movie_id 27 | AND t.id = ci.movie_id 28 | AND ci.movie_id = mi.movie_id 29 | AND ci.movie_id = mi_idx.movie_id 30 | AND mi.movie_id = mi_idx.movie_id 31 | AND n.id = ci.person_id 32 | AND it1.id = mi.info_type_id 33 | AND it2.id = mi_idx.info_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/18c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(t.title) AS movie_title 4 | FROM cast_info AS ci, 5 | info_type AS it1, 6 | info_type AS it2, 7 | movie_info AS mi, 8 | movie_info_idx AS mi_idx, 9 | name AS n, 10 | title AS t 11 | WHERE ci.note IN ('(writer)', 12 | '(head writer)', 13 | '(written by)', 14 | '(story)', 15 | '(story editor)') 16 | AND it1.info = 'genres' 17 | AND it2.info = 'votes' 18 | AND mi.info IN ('Horror', 19 | 'Action', 20 | 'Sci-Fi', 21 | 'Thriller', 22 | 'Crime', 23 | 'War') 24 | AND n.gender = 'm' 25 | AND t.id = mi.movie_id 26 | AND t.id = mi_idx.movie_id 27 | AND t.id = ci.movie_id 28 | AND ci.movie_id = mi.movie_id 29 | AND ci.movie_id = mi_idx.movie_id 30 | AND mi.movie_id = mi_idx.movie_id 31 | AND n.id = ci.person_id 32 | AND it1.id = mi.info_type_id 33 | AND it2.id = mi_idx.info_type_id; 34 | 35 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/19a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND mc.note IS NOT NULL 20 | AND (mc.note LIKE '%(USA)%' 21 | OR mc.note LIKE '%(worldwide)%') 22 | AND mi.info IS NOT NULL 23 | AND (mi.info LIKE 'Japan:%200%' 24 | OR mi.info LIKE 'USA:%200%') 25 | AND n.gender ='f' 26 | AND n.name LIKE '%Ang%' 27 | AND rt.role ='actress' 28 | AND t.production_year BETWEEN 2005 AND 2009 29 | AND t.id = mi.movie_id 30 | AND t.id = mc.movie_id 31 | AND t.id = ci.movie_id 32 | AND mc.movie_id = ci.movie_id 33 | AND mc.movie_id = mi.movie_id 34 | AND mi.movie_id = ci.movie_id 35 | AND cn.id = mc.company_id 36 | AND it.id = mi.info_type_id 37 | AND n.id = ci.person_id 38 | AND rt.id = ci.role_id 39 | AND n.id = an.person_id 40 | AND ci.person_id = an.person_id 41 | AND chn.id = ci.person_role_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/19b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS kung_fu_panda 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note = '(voice)' 14 | AND cn.country_code ='[us]' 15 | AND it.info = 'release dates' 16 | AND mc.note LIKE '%(200%)%' 17 | AND (mc.note LIKE '%(USA)%' 18 | OR mc.note LIKE '%(worldwide)%') 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'Japan:%2007%' 21 | OR mi.info LIKE 'USA:%2008%') 22 | AND n.gender ='f' 23 | AND n.name LIKE '%Angel%' 24 | AND rt.role ='actress' 25 | AND t.production_year BETWEEN 2007 AND 2008 26 | AND t.title LIKE '%Kung%Fu%Panda%' 27 | AND t.id = mi.movie_id 28 | AND t.id = mc.movie_id 29 | AND t.id = ci.movie_id 30 | AND mc.movie_id = ci.movie_id 31 | AND mc.movie_id = mi.movie_id 32 | AND mi.movie_id = ci.movie_id 33 | AND cn.id = mc.company_id 34 | AND it.id = mi.info_type_id 35 | AND n.id = ci.person_id 36 | AND rt.id = ci.role_id 37 | AND n.id = an.person_id 38 | AND ci.person_id = an.person_id 39 | AND chn.id = ci.person_role_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/19c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS jap_engl_voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'Japan:%200%' 21 | OR mi.info LIKE 'USA:%200%') 22 | AND n.gender ='f' 23 | AND n.name LIKE '%An%' 24 | AND rt.role ='actress' 25 | AND t.production_year > 2000 26 | AND t.id = mi.movie_id 27 | AND t.id = mc.movie_id 28 | AND t.id = ci.movie_id 29 | AND mc.movie_id = ci.movie_id 30 | AND mc.movie_id = mi.movie_id 31 | AND mi.movie_id = ci.movie_id 32 | AND cn.id = mc.company_id 33 | AND it.id = mi.info_type_id 34 | AND n.id = ci.person_id 35 | AND rt.id = ci.role_id 36 | AND n.id = an.person_id 37 | AND ci.person_id = an.person_id 38 | AND chn.id = ci.person_role_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/19d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS voicing_actress, 2 | MIN(t.title) AS jap_engl_voiced_movie 3 | FROM aka_name AS an, 4 | char_name AS chn, 5 | cast_info AS ci, 6 | company_name AS cn, 7 | info_type AS it, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND it.info = 'release dates' 19 | AND n.gender ='f' 20 | AND rt.role ='actress' 21 | AND t.production_year > 2000 22 | AND t.id = mi.movie_id 23 | AND t.id = mc.movie_id 24 | AND t.id = ci.movie_id 25 | AND mc.movie_id = ci.movie_id 26 | AND mc.movie_id = mi.movie_id 27 | AND mi.movie_id = ci.movie_id 28 | AND cn.id = mc.company_id 29 | AND it.id = mi.info_type_id 30 | AND n.id = ci.person_id 31 | AND rt.id = ci.role_id 32 | AND n.id = an.person_id 33 | AND ci.person_id = an.person_id 34 | AND chn.id = ci.person_role_id; 35 | 36 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/1a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'top 250 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND (mc.note LIKE '%(co-production)%' 13 | OR mc.note LIKE '%(presents)%') 14 | AND ct.id = mc.company_type_id 15 | AND t.id = mc.movie_id 16 | AND t.id = mi_idx.movie_id 17 | AND mc.movie_id = mi_idx.movie_id 18 | AND it.id = mi_idx.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/1b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'bottom 10 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND t.production_year BETWEEN 2005 AND 2010 13 | AND ct.id = mc.company_type_id 14 | AND t.id = mc.movie_id 15 | AND t.id = mi_idx.movie_id 16 | AND mc.movie_id = mi_idx.movie_id 17 | AND it.id = mi_idx.info_type_id; 18 | 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/1c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'top 250 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND (mc.note LIKE '%(co-production)%') 13 | AND t.production_year >2010 14 | AND ct.id = mc.company_type_id 15 | AND t.id = mc.movie_id 16 | AND t.id = mi_idx.movie_id 17 | AND mc.movie_id = mi_idx.movie_id 18 | AND it.id = mi_idx.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/1d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mc.note) AS production_note, 2 | MIN(t.title) AS movie_title, 3 | MIN(t.production_year) AS movie_year 4 | FROM company_type AS ct, 5 | info_type AS it, 6 | movie_companies AS mc, 7 | movie_info_idx AS mi_idx, 8 | title AS t 9 | WHERE ct.kind = 'production companies' 10 | AND it.info = 'bottom 10 rank' 11 | AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%' 12 | AND t.production_year >2000 13 | AND ct.id = mc.company_type_id 14 | AND t.id = mc.movie_id 15 | AND t.id = mi_idx.movie_id 16 | AND mc.movie_id = mi_idx.movie_id 17 | AND it.id = mi_idx.info_type_id; 18 | 19 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/20a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS complete_downey_ironman_movie 2 | FROM complete_cast AS cc, 3 | comp_cast_type AS cct1, 4 | comp_cast_type AS cct2, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | keyword AS k, 8 | kind_type AS kt, 9 | movie_keyword AS mk, 10 | name AS n, 11 | title AS t 12 | WHERE cct1.kind = 'cast' 13 | AND cct2.kind LIKE '%complete%' 14 | AND chn.name NOT LIKE '%Sherlock%' 15 | AND (chn.name LIKE '%Tony%Stark%' 16 | OR chn.name LIKE '%Iron%Man%') 17 | AND k.keyword IN ('superhero', 18 | 'sequel', 19 | 'second-part', 20 | 'marvel-comics', 21 | 'based-on-comic', 22 | 'tv-special', 23 | 'fight', 24 | 'violence') 25 | AND kt.kind = 'movie' 26 | AND t.production_year > 1950 27 | AND kt.id = t.kind_id 28 | AND t.id = mk.movie_id 29 | AND t.id = ci.movie_id 30 | AND t.id = cc.movie_id 31 | AND mk.movie_id = ci.movie_id 32 | AND mk.movie_id = cc.movie_id 33 | AND ci.movie_id = cc.movie_id 34 | AND chn.id = ci.person_role_id 35 | AND n.id = ci.person_id 36 | AND k.id = mk.keyword_id 37 | AND cct1.id = cc.subject_id 38 | AND cct2.id = cc.status_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/20b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS complete_downey_ironman_movie 2 | FROM complete_cast AS cc, 3 | comp_cast_type AS cct1, 4 | comp_cast_type AS cct2, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | keyword AS k, 8 | kind_type AS kt, 9 | movie_keyword AS mk, 10 | name AS n, 11 | title AS t 12 | WHERE cct1.kind = 'cast' 13 | AND cct2.kind LIKE '%complete%' 14 | AND chn.name NOT LIKE '%Sherlock%' 15 | AND (chn.name LIKE '%Tony%Stark%' 16 | OR chn.name LIKE '%Iron%Man%') 17 | AND k.keyword IN ('superhero', 18 | 'sequel', 19 | 'second-part', 20 | 'marvel-comics', 21 | 'based-on-comic', 22 | 'tv-special', 23 | 'fight', 24 | 'violence') 25 | AND kt.kind = 'movie' 26 | AND n.name LIKE '%Downey%Robert%' 27 | AND t.production_year > 2000 28 | AND kt.id = t.kind_id 29 | AND t.id = mk.movie_id 30 | AND t.id = ci.movie_id 31 | AND t.id = cc.movie_id 32 | AND mk.movie_id = ci.movie_id 33 | AND mk.movie_id = cc.movie_id 34 | AND ci.movie_id = cc.movie_id 35 | AND chn.id = ci.person_role_id 36 | AND n.id = ci.person_id 37 | AND k.id = mk.keyword_id 38 | AND cct1.id = cc.subject_id 39 | AND cct2.id = cc.status_id; 40 | 41 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/20c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS cast_member, 2 | MIN(t.title) AS complete_dynamic_hero_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | comp_cast_type AS cct2, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_keyword AS mk, 11 | name AS n, 12 | title AS t 13 | WHERE cct1.kind = 'cast' 14 | AND cct2.kind LIKE '%complete%' 15 | AND chn.name IS NOT NULL 16 | AND (chn.name LIKE '%man%' 17 | OR chn.name LIKE '%Man%') 18 | AND k.keyword IN ('superhero', 19 | 'marvel-comics', 20 | 'based-on-comic', 21 | 'tv-special', 22 | 'fight', 23 | 'violence', 24 | 'magnet', 25 | 'web', 26 | 'claw', 27 | 'laser') 28 | AND kt.kind = 'movie' 29 | AND t.production_year > 2000 30 | AND kt.id = t.kind_id 31 | AND t.id = mk.movie_id 32 | AND t.id = ci.movie_id 33 | AND t.id = cc.movie_id 34 | AND mk.movie_id = ci.movie_id 35 | AND mk.movie_id = cc.movie_id 36 | AND ci.movie_id = cc.movie_id 37 | AND chn.id = ci.person_role_id 38 | AND n.id = ci.person_id 39 | AND k.id = mk.keyword_id 40 | AND cct1.id = cc.subject_id 41 | AND cct2.id = cc.status_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/21a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS western_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Denish', 26 | 'Norwegian', 27 | 'German') 28 | AND t.production_year BETWEEN 1950 AND 2000 29 | AND lt.id = ml.link_type_id 30 | AND ml.movie_id = t.id 31 | AND t.id = mk.movie_id 32 | AND mk.keyword_id = k.id 33 | AND t.id = mc.movie_id 34 | AND mc.company_type_id = ct.id 35 | AND mc.company_id = cn.id 36 | AND mi.movie_id = t.id 37 | AND ml.movie_id = mk.movie_id 38 | AND ml.movie_id = mc.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND ml.movie_id = mi.movie_id 41 | AND mk.movie_id = mi.movie_id 42 | AND mc.movie_id = mi.movie_id; 43 | 44 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/21b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS german_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Germany', 21 | 'German') 22 | AND t.production_year BETWEEN 2000 AND 2010 23 | AND lt.id = ml.link_type_id 24 | AND ml.movie_id = t.id 25 | AND t.id = mk.movie_id 26 | AND mk.keyword_id = k.id 27 | AND t.id = mc.movie_id 28 | AND mc.company_type_id = ct.id 29 | AND mc.company_id = cn.id 30 | AND mi.movie_id = t.id 31 | AND ml.movie_id = mk.movie_id 32 | AND ml.movie_id = mc.movie_id 33 | AND mk.movie_id = mc.movie_id 34 | AND ml.movie_id = mi.movie_id 35 | AND mk.movie_id = mi.movie_id 36 | AND mc.movie_id = mi.movie_id; 37 | 38 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/21c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS company_name, 2 | MIN(lt.link) AS link_type, 3 | MIN(t.title) AS western_follow_up 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | keyword AS k, 7 | link_type AS lt, 8 | movie_companies AS mc, 9 | movie_info AS mi, 10 | movie_keyword AS mk, 11 | movie_link AS ml, 12 | title AS t 13 | WHERE cn.country_code !='[pl]' 14 | AND (cn.name LIKE '%Film%' 15 | OR cn.name LIKE '%Warner%') 16 | AND ct.kind ='production companies' 17 | AND k.keyword ='sequel' 18 | AND lt.link LIKE '%follow%' 19 | AND mc.note IS NULL 20 | AND mi.info IN ('Sweden', 21 | 'Norway', 22 | 'Germany', 23 | 'Denmark', 24 | 'Swedish', 25 | 'Denish', 26 | 'Norwegian', 27 | 'German', 28 | 'English') 29 | AND t.production_year BETWEEN 1950 AND 2010 30 | AND lt.id = ml.link_type_id 31 | AND ml.movie_id = t.id 32 | AND t.id = mk.movie_id 33 | AND mk.keyword_id = k.id 34 | AND t.id = mc.movie_id 35 | AND mc.company_type_id = ct.id 36 | AND mc.company_id = cn.id 37 | AND mi.movie_id = t.id 38 | AND ml.movie_id = mk.movie_id 39 | AND ml.movie_id = mc.movie_id 40 | AND mk.movie_id = mc.movie_id 41 | AND ml.movie_id = mi.movie_id 42 | AND mk.movie_id = mi.movie_id 43 | AND mc.movie_id = mi.movie_id; 44 | 45 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/22a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS western_violent_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | title AS t 15 | WHERE cn.country_code != '[us]' 16 | AND it1.info = 'countries' 17 | AND it2.info = 'rating' 18 | AND k.keyword IN ('murder', 19 | 'murder-in-title', 20 | 'blood', 21 | 'violence') 22 | AND kt.kind IN ('movie', 23 | 'episode') 24 | AND mc.note NOT LIKE '%(USA)%' 25 | AND mc.note LIKE '%(200%)%' 26 | AND mi.info IN ('Germany', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '7.0' 31 | AND t.production_year > 2008 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND t.id = mc.movie_id 37 | AND mk.movie_id = mi.movie_id 38 | AND mk.movie_id = mi_idx.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND mi.movie_id = mi_idx.movie_id 41 | AND mi.movie_id = mc.movie_id 42 | AND mc.movie_id = mi_idx.movie_id 43 | AND k.id = mk.keyword_id 44 | AND it1.id = mi.info_type_id 45 | AND it2.id = mi_idx.info_type_id 46 | AND ct.id = mc.company_type_id 47 | AND cn.id = mc.company_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/22b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn.name) AS movie_company, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS western_violent_movie 4 | FROM company_name AS cn, 5 | company_type AS ct, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | title AS t 15 | WHERE cn.country_code != '[us]' 16 | AND it1.info = 'countries' 17 | AND it2.info = 'rating' 18 | AND k.keyword IN ('murder', 19 | 'murder-in-title', 20 | 'blood', 21 | 'violence') 22 | AND kt.kind IN ('movie', 23 | 'episode') 24 | AND mc.note NOT LIKE '%(USA)%' 25 | AND mc.note LIKE '%(200%)%' 26 | AND mi.info IN ('Germany', 27 | 'German', 28 | 'USA', 29 | 'American') 30 | AND mi_idx.info < '7.0' 31 | AND t.production_year > 2009 32 | AND kt.id = t.kind_id 33 | AND t.id = mi.movie_id 34 | AND t.id = mk.movie_id 35 | AND t.id = mi_idx.movie_id 36 | AND t.id = mc.movie_id 37 | AND mk.movie_id = mi.movie_id 38 | AND mk.movie_id = mi_idx.movie_id 39 | AND mk.movie_id = mc.movie_id 40 | AND mi.movie_id = mi_idx.movie_id 41 | AND mi.movie_id = mc.movie_id 42 | AND mc.movie_id = mi_idx.movie_id 43 | AND k.id = mk.keyword_id 44 | AND it1.id = mi.info_type_id 45 | AND it2.id = mi_idx.info_type_id 46 | AND ct.id = mc.company_type_id 47 | AND cn.id = mc.company_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/23a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_us_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND kt.kind IN ('movie') 18 | AND mi.note LIKE '%internet%' 19 | AND mi.info IS NOT NULL 20 | AND (mi.info LIKE 'USA:% 199%' 21 | OR mi.info LIKE 'USA:% 200%') 22 | AND t.production_year > 2000 23 | AND kt.id = t.kind_id 24 | AND t.id = mi.movie_id 25 | AND t.id = mk.movie_id 26 | AND t.id = mc.movie_id 27 | AND t.id = cc.movie_id 28 | AND mk.movie_id = mi.movie_id 29 | AND mk.movie_id = mc.movie_id 30 | AND mk.movie_id = cc.movie_id 31 | AND mi.movie_id = mc.movie_id 32 | AND mi.movie_id = cc.movie_id 33 | AND mc.movie_id = cc.movie_id 34 | AND k.id = mk.keyword_id 35 | AND it1.id = mi.info_type_id 36 | AND cn.id = mc.company_id 37 | AND ct.id = mc.company_type_id 38 | AND cct1.id = cc.status_id; 39 | 40 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/23b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_nerdy_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND k.keyword IN ('nerd', 18 | 'loner', 19 | 'alienation', 20 | 'dignity') 21 | AND kt.kind IN ('movie') 22 | AND mi.note LIKE '%internet%' 23 | AND mi.info LIKE 'USA:% 200%' 24 | AND t.production_year > 2000 25 | AND kt.id = t.kind_id 26 | AND t.id = mi.movie_id 27 | AND t.id = mk.movie_id 28 | AND t.id = mc.movie_id 29 | AND t.id = cc.movie_id 30 | AND mk.movie_id = mi.movie_id 31 | AND mk.movie_id = mc.movie_id 32 | AND mk.movie_id = cc.movie_id 33 | AND mi.movie_id = mc.movie_id 34 | AND mi.movie_id = cc.movie_id 35 | AND mc.movie_id = cc.movie_id 36 | AND k.id = mk.keyword_id 37 | AND it1.id = mi.info_type_id 38 | AND cn.id = mc.company_id 39 | AND ct.id = mc.company_type_id 40 | AND cct1.id = cc.status_id; 41 | 42 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/23c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(kt.kind) AS movie_kind, 2 | MIN(t.title) AS complete_us_internet_movie 3 | FROM complete_cast AS cc, 4 | comp_cast_type AS cct1, 5 | company_name AS cn, 6 | company_type AS ct, 7 | info_type AS it1, 8 | keyword AS k, 9 | kind_type AS kt, 10 | movie_companies AS mc, 11 | movie_info AS mi, 12 | movie_keyword AS mk, 13 | title AS t 14 | WHERE cct1.kind = 'complete+verified' 15 | AND cn.country_code = '[us]' 16 | AND it1.info = 'release dates' 17 | AND kt.kind IN ('movie', 18 | 'tv movie', 19 | 'video movie', 20 | 'video game') 21 | AND mi.note LIKE '%internet%' 22 | AND mi.info IS NOT NULL 23 | AND (mi.info LIKE 'USA:% 199%' 24 | OR mi.info LIKE 'USA:% 200%') 25 | AND t.production_year > 1990 26 | AND kt.id = t.kind_id 27 | AND t.id = mi.movie_id 28 | AND t.id = mk.movie_id 29 | AND t.id = mc.movie_id 30 | AND t.id = cc.movie_id 31 | AND mk.movie_id = mi.movie_id 32 | AND mk.movie_id = mc.movie_id 33 | AND mk.movie_id = cc.movie_id 34 | AND mi.movie_id = mc.movie_id 35 | AND mi.movie_id = cc.movie_id 36 | AND mc.movie_id = cc.movie_id 37 | AND k.id = mk.keyword_id 38 | AND it1.id = mi.info_type_id 39 | AND cn.id = mc.company_id 40 | AND ct.id = mc.company_type_id 41 | AND cct1.id = cc.status_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/25a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'blood', 23 | 'gore', 24 | 'death', 25 | 'female-nudity') 26 | AND mi.info = 'Horror' 27 | AND n.gender = 'm' 28 | AND t.id = mi.movie_id 29 | AND t.id = mi_idx.movie_id 30 | AND t.id = ci.movie_id 31 | AND t.id = mk.movie_id 32 | AND ci.movie_id = mi.movie_id 33 | AND ci.movie_id = mi_idx.movie_id 34 | AND ci.movie_id = mk.movie_id 35 | AND mi.movie_id = mi_idx.movie_id 36 | AND mi.movie_id = mk.movie_id 37 | AND mi_idx.movie_id = mk.movie_id 38 | AND n.id = ci.person_id 39 | AND it1.id = mi.info_type_id 40 | AND it2.id = mi_idx.info_type_id 41 | AND k.id = mk.keyword_id; 42 | 43 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/25b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'blood', 23 | 'gore', 24 | 'death', 25 | 'female-nudity') 26 | AND mi.info = 'Horror' 27 | AND n.gender = 'm' 28 | AND t.production_year > 2010 29 | AND t.title LIKE 'Vampire%' 30 | AND t.id = mi.movie_id 31 | AND t.id = mi_idx.movie_id 32 | AND t.id = ci.movie_id 33 | AND t.id = mk.movie_id 34 | AND ci.movie_id = mi.movie_id 35 | AND ci.movie_id = mi_idx.movie_id 36 | AND ci.movie_id = mk.movie_id 37 | AND mi.movie_id = mi_idx.movie_id 38 | AND mi.movie_id = mk.movie_id 39 | AND mi_idx.movie_id = mk.movie_id 40 | AND n.id = ci.person_id 41 | AND it1.id = mi.info_type_id 42 | AND it2.id = mi_idx.info_type_id 43 | AND k.id = mk.keyword_id; 44 | 45 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/25c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi.info) AS movie_budget, 2 | MIN(mi_idx.info) AS movie_votes, 3 | MIN(n.name) AS male_writer, 4 | MIN(t.title) AS violent_movie_title 5 | FROM cast_info AS ci, 6 | info_type AS it1, 7 | info_type AS it2, 8 | keyword AS k, 9 | movie_info AS mi, 10 | movie_info_idx AS mi_idx, 11 | movie_keyword AS mk, 12 | name AS n, 13 | title AS t 14 | WHERE ci.note IN ('(writer)', 15 | '(head writer)', 16 | '(written by)', 17 | '(story)', 18 | '(story editor)') 19 | AND it1.info = 'genres' 20 | AND it2.info = 'votes' 21 | AND k.keyword IN ('murder', 22 | 'violence', 23 | 'blood', 24 | 'gore', 25 | 'death', 26 | 'female-nudity', 27 | 'hospital') 28 | AND mi.info IN ('Horror', 29 | 'Action', 30 | 'Sci-Fi', 31 | 'Thriller', 32 | 'Crime', 33 | 'War') 34 | AND n.gender = 'm' 35 | AND t.id = mi.movie_id 36 | AND t.id = mi_idx.movie_id 37 | AND t.id = ci.movie_id 38 | AND t.id = mk.movie_id 39 | AND ci.movie_id = mi.movie_id 40 | AND ci.movie_id = mi_idx.movie_id 41 | AND ci.movie_id = mk.movie_id 42 | AND mi.movie_id = mi_idx.movie_id 43 | AND mi.movie_id = mk.movie_id 44 | AND mi_idx.movie_id = mk.movie_id 45 | AND n.id = ci.person_id 46 | AND it1.id = mi.info_type_id 47 | AND it2.id = mi_idx.info_type_id 48 | AND k.id = mk.keyword_id; 49 | 50 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/26b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(chn.name) AS character_name, 2 | MIN(mi_idx.info) AS rating, 3 | MIN(t.title) AS complete_hero_movie 4 | FROM complete_cast AS cc, 5 | comp_cast_type AS cct1, 6 | comp_cast_type AS cct2, 7 | char_name AS chn, 8 | cast_info AS ci, 9 | info_type AS it2, 10 | keyword AS k, 11 | kind_type AS kt, 12 | movie_info_idx AS mi_idx, 13 | movie_keyword AS mk, 14 | name AS n, 15 | title AS t 16 | WHERE cct1.kind = 'cast' 17 | AND cct2.kind LIKE '%complete%' 18 | AND chn.name IS NOT NULL 19 | AND (chn.name LIKE '%man%' 20 | OR chn.name LIKE '%Man%') 21 | AND it2.info = 'rating' 22 | AND k.keyword IN ('superhero', 23 | 'marvel-comics', 24 | 'based-on-comic', 25 | 'fight') 26 | AND kt.kind = 'movie' 27 | AND mi_idx.info > '8.0' 28 | AND t.production_year > 2005 29 | AND kt.id = t.kind_id 30 | AND t.id = mk.movie_id 31 | AND t.id = ci.movie_id 32 | AND t.id = cc.movie_id 33 | AND t.id = mi_idx.movie_id 34 | AND mk.movie_id = ci.movie_id 35 | AND mk.movie_id = cc.movie_id 36 | AND mk.movie_id = mi_idx.movie_id 37 | AND ci.movie_id = cc.movie_id 38 | AND ci.movie_id = mi_idx.movie_id 39 | AND cc.movie_id = mi_idx.movie_id 40 | AND chn.id = ci.person_role_id 41 | AND n.id = ci.person_id 42 | AND k.id = mk.keyword_id 43 | AND cct1.id = cc.subject_id 44 | AND cct2.id = cc.status_id 45 | AND it2.id = mi_idx.info_type_id; 46 | 47 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/2a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[de]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/2b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[nl]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/2c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[sm]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/2d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM company_name AS cn, 3 | keyword AS k, 4 | movie_companies AS mc, 5 | movie_keyword AS mk, 6 | title AS t 7 | WHERE cn.country_code ='[us]' 8 | AND k.keyword ='character-name-in-title' 9 | AND cn.id = mc.company_id 10 | AND mc.movie_id = t.id 11 | AND t.id = mk.movie_id 12 | AND mk.keyword_id = k.id 13 | AND mc.movie_id = mk.movie_id; 14 | 15 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/32a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(lt.link) AS link_type, 2 | MIN(t1.title) AS first_movie, 3 | MIN(t2.title) AS second_movie 4 | FROM keyword AS k, 5 | link_type AS lt, 6 | movie_keyword AS mk, 7 | movie_link AS ml, 8 | title AS t1, 9 | title AS t2 10 | WHERE k.keyword ='10,000-mile-club' 11 | AND mk.keyword_id = k.id 12 | AND t1.id = mk.movie_id 13 | AND ml.movie_id = t1.id 14 | AND ml.linked_movie_id = t2.id 15 | AND lt.id = ml.link_type_id 16 | AND mk.movie_id = t1.id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/32b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(lt.link) AS link_type, 2 | MIN(t1.title) AS first_movie, 3 | MIN(t2.title) AS second_movie 4 | FROM keyword AS k, 5 | link_type AS lt, 6 | movie_keyword AS mk, 7 | movie_link AS ml, 8 | title AS t1, 9 | title AS t2 10 | WHERE k.keyword ='character-name-in-title' 11 | AND mk.keyword_id = k.id 12 | AND t1.id = mk.movie_id 13 | AND ml.movie_id = t1.id 14 | AND ml.linked_movie_id = t2.id 15 | AND lt.id = ml.link_type_id 16 | AND mk.movie_id = t1.id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/33b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(cn1.name) AS first_company, 2 | MIN(cn2.name) AS second_company, 3 | MIN(mi_idx1.info) AS first_rating, 4 | MIN(mi_idx2.info) AS second_rating, 5 | MIN(t1.title) AS first_movie, 6 | MIN(t2.title) AS second_movie 7 | FROM company_name AS cn1, 8 | company_name AS cn2, 9 | info_type AS it1, 10 | info_type AS it2, 11 | kind_type AS kt1, 12 | kind_type AS kt2, 13 | link_type AS lt, 14 | movie_companies AS mc1, 15 | movie_companies AS mc2, 16 | movie_info_idx AS mi_idx1, 17 | movie_info_idx AS mi_idx2, 18 | movie_link AS ml, 19 | title AS t1, 20 | title AS t2 21 | WHERE cn1.country_code = '[nl]' 22 | AND it1.info = 'rating' 23 | AND it2.info = 'rating' 24 | AND kt1.kind IN ('tv series') 25 | AND kt2.kind IN ('tv series') 26 | AND lt.link LIKE '%follow%' 27 | AND mi_idx2.info < '3.0' 28 | AND t2.production_year = 2007 29 | AND lt.id = ml.link_type_id 30 | AND t1.id = ml.movie_id 31 | AND t2.id = ml.linked_movie_id 32 | AND it1.id = mi_idx1.info_type_id 33 | AND t1.id = mi_idx1.movie_id 34 | AND kt1.id = t1.kind_id 35 | AND cn1.id = mc1.company_id 36 | AND t1.id = mc1.movie_id 37 | AND ml.movie_id = mi_idx1.movie_id 38 | AND ml.movie_id = mc1.movie_id 39 | AND mi_idx1.movie_id = mc1.movie_id 40 | AND it2.id = mi_idx2.info_type_id 41 | AND t2.id = mi_idx2.movie_id 42 | AND kt2.id = t2.kind_id 43 | AND cn2.id = mc2.company_id 44 | AND t2.id = mc2.movie_id 45 | AND ml.linked_movie_id = mi_idx2.movie_id 46 | AND ml.linked_movie_id = mc2.movie_id 47 | AND mi_idx2.movie_id = mc2.movie_id; 48 | 49 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/3a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Sweden', 8 | 'Norway', 9 | 'Germany', 10 | 'Denmark', 11 | 'Swedish', 12 | 'Denish', 13 | 'Norwegian', 14 | 'German') 15 | AND t.production_year > 2005 16 | AND t.id = mi.movie_id 17 | AND t.id = mk.movie_id 18 | AND mk.movie_id = mi.movie_id 19 | AND k.id = mk.keyword_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/3b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Bulgaria') 8 | AND t.production_year > 2010 9 | AND t.id = mi.movie_id 10 | AND t.id = mk.movie_id 11 | AND mk.movie_id = mi.movie_id 12 | AND k.id = mk.keyword_id; 13 | 14 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/3c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS movie_title 2 | FROM keyword AS k, 3 | movie_info AS mi, 4 | movie_keyword AS mk, 5 | title AS t 6 | WHERE k.keyword LIKE '%sequel%' 7 | AND mi.info IN ('Sweden', 8 | 'Norway', 9 | 'Germany', 10 | 'Denmark', 11 | 'Swedish', 12 | 'Denish', 13 | 'Norwegian', 14 | 'German', 15 | 'USA', 16 | 'American') 17 | AND t.production_year > 1990 18 | AND t.id = mi.movie_id 19 | AND t.id = mk.movie_id 20 | AND mk.movie_id = mi.movie_id 21 | AND k.id = mk.keyword_id; 22 | 23 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/4a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '5.0' 11 | AND t.production_year > 2005 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/4b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '9.0' 11 | AND t.production_year > 2010 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/4c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(mi_idx.info) AS rating, 2 | MIN(t.title) AS movie_title 3 | FROM info_type AS it, 4 | keyword AS k, 5 | movie_info_idx AS mi_idx, 6 | movie_keyword AS mk, 7 | title AS t 8 | WHERE it.info ='rating' 9 | AND k.keyword LIKE '%sequel%' 10 | AND mi_idx.info > '2.0' 11 | AND t.production_year > 1990 12 | AND t.id = mi_idx.movie_id 13 | AND t.id = mk.movie_id 14 | AND mk.movie_id = mi_idx.movie_id 15 | AND k.id = mk.keyword_id 16 | AND it.id = mi_idx.info_type_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/5a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS typical_european_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note LIKE '%(theatrical)%' 9 | AND mc.note LIKE '%(France)%' 10 | AND mi.info IN ('Sweden', 11 | 'Norway', 12 | 'Germany', 13 | 'Denmark', 14 | 'Swedish', 15 | 'Denish', 16 | 'Norwegian', 17 | 'German') 18 | AND t.production_year > 2005 19 | AND t.id = mi.movie_id 20 | AND t.id = mc.movie_id 21 | AND mc.movie_id = mi.movie_id 22 | AND ct.id = mc.company_type_id 23 | AND it.id = mi.info_type_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/5b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS american_vhs_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note LIKE '%(VHS)%' 9 | AND mc.note LIKE '%(USA)%' 10 | AND mc.note LIKE '%(1994)%' 11 | AND mi.info IN ('USA', 12 | 'America') 13 | AND t.production_year > 2010 14 | AND t.id = mi.movie_id 15 | AND t.id = mc.movie_id 16 | AND mc.movie_id = mi.movie_id 17 | AND ct.id = mc.company_type_id 18 | AND it.id = mi.info_type_id; 19 | 20 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/5c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(t.title) AS american_movie 2 | FROM company_type AS ct, 3 | info_type AS it, 4 | movie_companies AS mc, 5 | movie_info AS mi, 6 | title AS t 7 | WHERE ct.kind = 'production companies' 8 | AND mc.note NOT LIKE '%(TV)%' 9 | AND mc.note LIKE '%(USA)%' 10 | AND mi.info IN ('Sweden', 11 | 'Norway', 12 | 'Germany', 13 | 'Denmark', 14 | 'Swedish', 15 | 'Denish', 16 | 'Norwegian', 17 | 'German', 18 | 'USA', 19 | 'American') 20 | AND t.production_year > 1990 21 | AND t.id = mi.movie_id 22 | AND t.id = mc.movie_id 23 | AND mc.movie_id = mi.movie_id 24 | AND ct.id = mc.company_type_id 25 | AND it.id = mi.info_type_id; 26 | 27 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2010 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND n.name LIKE '%Downey%Robert%' 18 | AND t.production_year > 2014 19 | AND k.id = mk.keyword_id 20 | AND t.id = mk.movie_id 21 | AND t.id = ci.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND n.id = ci.person_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2014 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND n.name LIKE '%Downey%Robert%' 18 | AND t.production_year > 2000 19 | AND k.id = mk.keyword_id 20 | AND t.id = mk.movie_id 21 | AND t.id = ci.movie_id 22 | AND ci.movie_id = mk.movie_id 23 | AND n.id = ci.person_id; 24 | 25 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6e.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS marvel_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword = 'marvel-cinematic-universe' 10 | AND n.name LIKE '%Downey%Robert%' 11 | AND t.production_year > 2000 12 | AND k.id = mk.keyword_id 13 | AND t.id = mk.movie_id 14 | AND t.id = ci.movie_id 15 | AND ci.movie_id = mk.movie_id 16 | AND n.id = ci.person_id; 17 | 18 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/6f.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(k.keyword) AS movie_keyword, 2 | MIN(n.name) AS actor_name, 3 | MIN(t.title) AS hero_movie 4 | FROM cast_info AS ci, 5 | keyword AS k, 6 | movie_keyword AS mk, 7 | name AS n, 8 | title AS t 9 | WHERE k.keyword IN ('superhero', 10 | 'sequel', 11 | 'second-part', 12 | 'marvel-comics', 13 | 'based-on-comic', 14 | 'tv-special', 15 | 'fight', 16 | 'violence') 17 | AND t.production_year > 2000 18 | AND k.id = mk.keyword_id 19 | AND t.id = mk.movie_id 20 | AND t.id = ci.movie_id 21 | AND ci.movie_id = mk.movie_id 22 | AND n.id = ci.person_id; 23 | 24 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/7a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS of_person, 2 | MIN(t.title) AS biography_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name LIKE '%a%' 12 | AND it.info ='mini biography' 13 | AND lt.link ='features' 14 | AND n.name_pcode_cf BETWEEN 'A' AND 'F' 15 | AND (n.gender='m' 16 | OR (n.gender = 'f' 17 | AND n.name LIKE 'B%')) 18 | AND pi.note ='Volker Boehm' 19 | AND t.production_year BETWEEN 1980 AND 1995 20 | AND n.id = an.person_id 21 | AND n.id = pi.person_id 22 | AND ci.person_id = n.id 23 | AND t.id = ci.movie_id 24 | AND ml.linked_movie_id = t.id 25 | AND lt.id = ml.link_type_id 26 | AND it.id = pi.info_type_id 27 | AND pi.person_id = an.person_id 28 | AND pi.person_id = ci.person_id 29 | AND an.person_id = ci.person_id 30 | AND ci.movie_id = ml.linked_movie_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/7b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS of_person, 2 | MIN(t.title) AS biography_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name LIKE '%a%' 12 | AND it.info ='mini biography' 13 | AND lt.link ='features' 14 | AND n.name_pcode_cf LIKE 'D%' 15 | AND n.gender='m' 16 | AND pi.note ='Volker Boehm' 17 | AND t.production_year BETWEEN 1980 AND 1984 18 | AND n.id = an.person_id 19 | AND n.id = pi.person_id 20 | AND ci.person_id = n.id 21 | AND t.id = ci.movie_id 22 | AND ml.linked_movie_id = t.id 23 | AND lt.id = ml.link_type_id 24 | AND it.id = pi.info_type_id 25 | AND pi.person_id = an.person_id 26 | AND pi.person_id = ci.person_id 27 | AND an.person_id = ci.person_id 28 | AND ci.movie_id = ml.linked_movie_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/7c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(n.name) AS cast_member_name, 2 | MIN(pi.info) AS cast_member_info 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | info_type AS it, 6 | link_type AS lt, 7 | movie_link AS ml, 8 | name AS n, 9 | person_info AS pi, 10 | title AS t 11 | WHERE an.name IS NOT NULL 12 | AND (an.name LIKE '%a%' 13 | OR an.name LIKE 'A%') 14 | AND it.info ='mini biography' 15 | AND lt.link IN ('references', 16 | 'referenced in', 17 | 'features', 18 | 'featured in') 19 | AND n.name_pcode_cf BETWEEN 'A' AND 'F' 20 | AND (n.gender='m' 21 | OR (n.gender = 'f' 22 | AND n.name LIKE 'A%')) 23 | AND pi.note IS NOT NULL 24 | AND t.production_year BETWEEN 1980 AND 2010 25 | AND n.id = an.person_id 26 | AND n.id = pi.person_id 27 | AND ci.person_id = n.id 28 | AND t.id = ci.movie_id 29 | AND ml.linked_movie_id = t.id 30 | AND lt.id = ml.link_type_id 31 | AND it.id = pi.info_type_id 32 | AND pi.person_id = an.person_id 33 | AND pi.person_id = ci.person_id 34 | AND an.person_id = ci.person_id 35 | AND ci.movie_id = ml.linked_movie_id; 36 | 37 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/8a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an1.name) AS actress_pseudonym, 2 | MIN(t.title) AS japanese_movie_dubbed 3 | FROM aka_name AS an1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note ='(voice: English version)' 11 | AND cn.country_code ='[jp]' 12 | AND mc.note LIKE '%(Japan)%' 13 | AND mc.note NOT LIKE '%(USA)%' 14 | AND n1.name LIKE '%Yo%' 15 | AND n1.name NOT LIKE '%Yu%' 16 | AND rt.role ='actress' 17 | AND an1.person_id = n1.id 18 | AND n1.id = ci.person_id 19 | AND ci.movie_id = t.id 20 | AND t.id = mc.movie_id 21 | AND mc.company_id = cn.id 22 | AND ci.role_id = rt.id 23 | AND an1.person_id = ci.person_id 24 | AND ci.movie_id = mc.movie_id; 25 | 26 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/8b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS acress_pseudonym, 2 | MIN(t.title) AS japanese_anime_movie 3 | FROM aka_name AS an, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n, 8 | role_type AS rt, 9 | title AS t 10 | WHERE ci.note ='(voice: English version)' 11 | AND cn.country_code ='[jp]' 12 | AND mc.note LIKE '%(Japan)%' 13 | AND mc.note NOT LIKE '%(USA)%' 14 | AND (mc.note LIKE '%(2006)%' 15 | OR mc.note LIKE '%(2007)%') 16 | AND n.name LIKE '%Yo%' 17 | AND n.name NOT LIKE '%Yu%' 18 | AND rt.role ='actress' 19 | AND t.production_year BETWEEN 2006 AND 2007 20 | AND (t.title LIKE 'One Piece%' 21 | OR t.title LIKE 'Dragon Ball Z%') 22 | AND an.person_id = n.id 23 | AND n.id = ci.person_id 24 | AND ci.movie_id = t.id 25 | AND t.id = mc.movie_id 26 | AND mc.company_id = cn.id 27 | AND ci.role_id = rt.id 28 | AND an.person_id = ci.person_id 29 | AND ci.movie_id = mc.movie_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/8c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(a1.name) AS writer_pseudo_name, 2 | MIN(t.title) AS movie_title 3 | FROM aka_name AS a1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND rt.role ='writer' 12 | AND a1.person_id = n1.id 13 | AND n1.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.role_id = rt.id 18 | AND a1.person_id = ci.person_id 19 | AND ci.movie_id = mc.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/8d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an1.name) AS costume_designer_pseudo, 2 | MIN(t.title) AS movie_with_costumes 3 | FROM aka_name AS an1, 4 | cast_info AS ci, 5 | company_name AS cn, 6 | movie_companies AS mc, 7 | name AS n1, 8 | role_type AS rt, 9 | title AS t 10 | WHERE cn.country_code ='[us]' 11 | AND rt.role ='costume designer' 12 | AND an1.person_id = n1.id 13 | AND n1.id = ci.person_id 14 | AND ci.movie_id = t.id 15 | AND t.id = mc.movie_id 16 | AND mc.company_id = cn.id 17 | AND ci.role_id = rt.id 18 | AND an1.person_id = ci.person_id 19 | AND ci.movie_id = mc.movie_id; 20 | 21 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/9a.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS character_name, 3 | MIN(t.title) AS movie 4 | FROM aka_name AS an, 5 | char_name AS chn, 6 | cast_info AS ci, 7 | company_name AS cn, 8 | movie_companies AS mc, 9 | name AS n, 10 | role_type AS rt, 11 | title AS t 12 | WHERE ci.note IN ('(voice)', 13 | '(voice: Japanese version)', 14 | '(voice) (uncredited)', 15 | '(voice: English version)') 16 | AND cn.country_code ='[us]' 17 | AND mc.note IS NOT NULL 18 | AND (mc.note LIKE '%(USA)%' 19 | OR mc.note LIKE '%(worldwide)%') 20 | AND n.gender ='f' 21 | AND n.name LIKE '%Ang%' 22 | AND rt.role ='actress' 23 | AND t.production_year BETWEEN 2005 AND 2015 24 | AND ci.movie_id = t.id 25 | AND t.id = mc.movie_id 26 | AND ci.movie_id = mc.movie_id 27 | AND mc.company_id = cn.id 28 | AND ci.role_id = rt.id 29 | AND n.id = ci.person_id 30 | AND chn.id = ci.person_role_id 31 | AND an.person_id = n.id 32 | AND an.person_id = ci.person_id; 33 | 34 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/9b.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_character, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note = '(voice)' 14 | AND cn.country_code ='[us]' 15 | AND mc.note LIKE '%(200%)%' 16 | AND (mc.note LIKE '%(USA)%' 17 | OR mc.note LIKE '%(worldwide)%') 18 | AND n.gender ='f' 19 | AND n.name LIKE '%Angel%' 20 | AND rt.role ='actress' 21 | AND t.production_year BETWEEN 2007 AND 2010 22 | AND ci.movie_id = t.id 23 | AND t.id = mc.movie_id 24 | AND ci.movie_id = mc.movie_id 25 | AND mc.company_id = cn.id 26 | AND ci.role_id = rt.id 27 | AND n.id = ci.person_id 28 | AND chn.id = ci.person_role_id 29 | AND an.person_id = n.id 30 | AND an.person_id = ci.person_id; 31 | 32 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/9c.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_character_name, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND n.gender ='f' 19 | AND n.name LIKE '%An%' 20 | AND rt.role ='actress' 21 | AND ci.movie_id = t.id 22 | AND t.id = mc.movie_id 23 | AND ci.movie_id = mc.movie_id 24 | AND mc.company_id = cn.id 25 | AND ci.role_id = rt.id 26 | AND n.id = ci.person_id 27 | AND chn.id = ci.person_role_id 28 | AND an.person_id = n.id 29 | AND an.person_id = ci.person_id; 30 | 31 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/9d.sql: -------------------------------------------------------------------------------- 1 | SELECT MIN(an.name) AS alternative_name, 2 | MIN(chn.name) AS voiced_char_name, 3 | MIN(n.name) AS voicing_actress, 4 | MIN(t.title) AS american_movie 5 | FROM aka_name AS an, 6 | char_name AS chn, 7 | cast_info AS ci, 8 | company_name AS cn, 9 | movie_companies AS mc, 10 | name AS n, 11 | role_type AS rt, 12 | title AS t 13 | WHERE ci.note IN ('(voice)', 14 | '(voice: Japanese version)', 15 | '(voice) (uncredited)', 16 | '(voice: English version)') 17 | AND cn.country_code ='[us]' 18 | AND n.gender ='f' 19 | AND rt.role ='actress' 20 | AND ci.movie_id = t.id 21 | AND t.id = mc.movie_id 22 | AND ci.movie_id = mc.movie_id 23 | AND mc.company_id = cn.id 24 | AND ci.role_id = rt.id 25 | AND n.id = ci.person_id 26 | AND chn.id = ci.person_role_id 27 | AND an.person_id = n.id 28 | AND an.person_id = ci.person_id; 29 | 30 | -------------------------------------------------------------------------------- /queries/join-order-benchmark/README.md: -------------------------------------------------------------------------------- 1 | # Changes 2 | 3 | * modified 15{b,c,d} by `s/AT/at`. Antlr parsers sometimes treat `AT` as a keyword and fail to parse it. 4 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ray==1.9.2 2 | pandas 3 | pytorch_lightning==0.9.0 4 | torch==1.4.0 5 | wandb 6 | psycopg2-binary==2.8.5 7 | absl-py==0.9.0 8 | numpy==1.18.1 9 | networkx 10 | ipdb 11 | # Required by Ray 12 | aiohttp==3.7.4 13 | aioredis==1.3.1 14 | aiopg 15 | grpcio==1.43.0 16 | -------------------------------------------------------------------------------- /scripts/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Launch concurrent experiments of a config. 3 | # bash scripts/launch.sh 4 | # 5 | # Example usage: 6 | # 7 | # # Launch 8 concurrent runs of a config 'RUN'. 8 | # RUN=Balsa_JOBRandSplit; bash scripts/launch.sh $RUN 8 2>&1 | tee launch-$RUN.log 9 | # 10 | # # In a separate window, monitor a particular run. 11 | # # This will show query execution progress, training messages, etc. 12 | # tail -f $RUN-1.log 13 | # 14 | # # Monitor all runs' mtime to check for any errored runs. 15 | # # Alternatively, look at W&B UI. 16 | # watch -n10 "ls -lthr ${RUN}-*.log launch-${RUN}.log" 17 | 18 | RUN=$1 19 | N=$2 20 | 21 | # If desired, use this array to manully assign gpu ids. 22 | gpus=(1 1 0 1 2 3 2 0) 23 | numgpu=$(nvidia-smi --list-gpus | wc -l) 24 | 25 | for i in $(seq 1 $N); 26 | do 27 | # Mod. OK for first launch. 28 | gpu_id=$(($(($i + $numgpu - 1)) % $numgpu)) 29 | 30 | # Later launches: manually assign IDs to load balance. 31 | # gpu_id=${gpus[$(($i-1))]} 32 | 33 | # Use this to check. 34 | # echo $gpu_id 35 | 36 | CUDA_VISIBLE_DEVICES=$gpu_id python -u run.py --run $RUN 2>&1 >$RUN-$i.log & 37 | sleep 10 38 | done 39 | 40 | wait 41 | -------------------------------------------------------------------------------- /scripts/start-mps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | # https://stackoverflow.com/questions/34709749/how-do-i-use-nvidia-multi-process-service-mps-to-run-multiple-non-mpi-cuda-app 4 | # the following must be performed with root privilege 5 | 6 | GPU_ID=$1 7 | 8 | # export CUDA_VISIBLE_DEVICES=$GPU_ID 9 | # nvidia-smi -i $GPU_ID -c EXCLUSIVE_PROCESS 10 | # nvidia-cuda-mps-control -d 11 | 12 | export CUDA_VISIBLE_DEVICES=0,1,2,3 13 | # export CUDA_VISIBLE_DEVICES=1,2 14 | for GPU_ID in $(seq 0 3); do 15 | nvidia-smi -i $GPU_ID -c EXCLUSIVE_PROCESS 16 | done 17 | taskset 0x00000001 nvidia-cuda-mps-control -d 18 | -------------------------------------------------------------------------------- /scripts/stop-mps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | GPU_ID=$1 3 | echo quit | nvidia-cuda-mps-control 4 | nvidia-smi -i $GPU_ID -c DEFAULT 5 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # Copyright 2022 The Balsa Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from setuptools import setup 16 | 17 | setup(name='balsa', 18 | version='0.1dev', 19 | packages=['balsa'], 20 | include_package_data=True, 21 | package_data={ 22 | '': ['conf/*conf*'], 23 | }) 24 | --------------------------------------------------------------------------------