OmniSciDB  06b3bd477c
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CompilationOptions.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 MapD Technologies, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef QUERYENGINE_COMPILATIONOPTIONS_H
18 #define QUERYENGINE_COMPILATIONOPTIONS_H
19 
20 #include <vector>
21 
22 enum class ExecutorDeviceType { CPU, GPU };
23 
25 
27 
29 
36  bool filter_on_deleted_column{true}; // if false, ignore the delete column during table
37  // scans. Primarily disabled for delete queries.
40 
43  in.hoist_literals,
44  in.opt_level,
48  in.explain_type,
50  }
51 
55  true,
57  false,
58  true,
59  true,
61  false};
62  }
63 };
64 
65 enum class ExecutorType { Native, Extern };
66 
69  const bool allow_multifrag;
70  const bool just_explain; // return the generated IR for the first step
71  const bool allow_loop_joins;
72  const bool with_watchdog; // Per work unit, not global.
73  const bool jit_debug;
74  const bool just_validate;
75  const bool with_dynamic_watchdog; // Per work unit, not global.
76  const unsigned
77  dynamic_watchdog_time_limit; // Dynamic watchdog time limit, in milliseconds.
80  const double gpu_input_mem_limit_percent; // punt to CPU if input memory exceeds this
84  const std::vector<size_t> outer_fragment_indices{};
85 
87  return ExecutionOptions{false,
88  true,
89  false,
90  false,
91  true,
92  false,
93  false,
94  false,
95  0,
96  false,
97  false,
98  1.0,
99  false,
100  1000};
101  }
102 };
103 
104 #endif // QUERYENGINE_COMPILATIONOPTIONS_H
ExecutorDeviceType
const unsigned runtime_query_interrupt_frequency
ExecutorOptLevel opt_level
ExecutorOptLevel
ExecutorDispatchMode
ExecutorType
const bool allow_multifrag
static CompilationOptions makeCpuOnly(const CompilationOptions &in)
const bool find_push_down_candidates
const bool just_validate
ExecutorType executor_type
const bool with_dynamic_watchdog
const double gpu_input_mem_limit_percent
ExecutorExplainType explain_type
ExecutorDeviceType device_type
const std::vector< size_t > outer_fragment_indices
const bool just_calcite_explain
static CompilationOptions defaults(const ExecutorDeviceType device_type=ExecutorDeviceType::GPU)
const bool allow_loop_joins
const bool allow_runtime_query_interrupt
const unsigned dynamic_watchdog_time_limit
static ExecutionOptions defaults()
ExecutorExplainType
const bool with_watchdog