| //****************************************************************************** |
| // @@@ START COPYRIGHT @@@ |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| // @@@ END COPYRIGHT @@@ |
| //**********************************************************************/ |
| #ifndef DEFAULTCONSTANTS_H |
| #define DEFAULTCONSTANTS_H |
| |
| #undef DEFAULT_CHARSET |
| /* -*-C++-*- |
| ***************************************************************************** |
| * |
| * File: DefaultConstants.h |
| * Description: Default attribute enum and keyword enum. |
| * |
| * Created: 7/11/1996 |
| * Language: C++ |
| * |
| * |
| * |
| ***************************************************************************** */ |
| |
| // This enum contains defaults used in Trafodion. |
| // To add a default, include it in this enum and in DefaultDefaults of |
| // sqlcomp/NADefaults.cpp. |
| // |
| // To change the value at run-time, do either: |
| // a) Insert the ATTRIBUTE name of the default along with its ATTR_VALUE |
| // into the SQL DEFAULTS table. |
| // This change take effect the next time you start a compiler session. |
| // b) Issue a CONTROL QUERY DEFAULT statement. |
| // This change takes effect immediately. |
| // (Note that some SET statements, e.g. SET CATALOG/SCHEMA, |
| // also take effect immediately *if* you are in dynamic compilation mode, |
| // e.g., if you are in SQLCI.) |
| |
| // *************************************************************************** |
| // *************************************************************************** |
| // NOTE: DO NOT make this enum non-contiguous. |
| // Valid attributes must begin at zero and there must be no holes. |
| // The algorithm to read defaults from the defaults table requires this. |
| // You must always add a default default in NADefaults.cpp, otherwise |
| // the code will fail in an assertion. |
| // *************************************************************************** |
| // *************************************************************************** |
| |
| |
| enum DefaultConstants |
| { |
| __INVALID_DEFAULT_ATTRIBUTE = -1, // negative; not in DefaultDefaults |
| ALLOW_INCOMPATIBLE_ASSIGNMENT = 0, |
| ALLOW_INCOMPATIBLE_COMPARISON, |
| ARKCMP_FAKE_HW, |
| AUTOMATIC_RECOMPILATION, |
| |
| // ------------------------------------------------------------------------- |
| // defaults for big memory operators (HJ, HGB, SORT) |
| // ------------------------------------------------------------------------- |
| BMO_MEMORY_USAGE_PERCENT, |
| PHY_MEM_CONTINGENCY_MB, |
| BMO_CITIZENSHIP_FACTOR, |
| // ------------------------------------------------------------------------- |
| // Costs for common fundamental primitive operations. |
| // ------------------------------------------------------------------------- |
| |
| // Set this to TRUE to enable display cost_detail in explain |
| // to support the calibration reports. Default is FALSE. |
| |
| EXPLAIN_DETAIL_COST_FOR_CALIBRATION, |
| |
| // Used in CostPrimitives::cpuCostForCompare(). |
| CPUCOST_COMPARE_COMPLEX_DATA_TYPE_OVERHEAD, |
| CPUCOST_COMPARE_COMPLEX_DATA_TYPE_PER_BYTE, |
| CPUCOST_COMPARE_SIMPLE_DATA_TYPE, |
| |
| // Used in both CostPrimitives::cpuCostForCopyRow() and cpuCostForCopySet(). |
| CPUCOST_COPY_ROW_OVERHEAD, |
| CPUCOST_COPY_ROW_PER_BYTE, |
| |
| // Used in Exchange Costing |
| CPUCOST_EXCHANGE_COST_PER_BYTE, |
| CPUCOST_EXCHANGE_INTERNODE_COST_PER_BYTE, |
| CPUCOST_EXCHANGE_REMOTENODE_COST_PER_BYTE, |
| |
| // Used in CostPrimitives::cpuCostForCopySet(). |
| CPUCOST_COPY_SIMPLE_DATA_TYPE, |
| |
| // Used in CostPrimitives::cpuCostForEvalArithExpr(). |
| CPUCOST_EVAL_ARITH_OP, |
| |
| // Used in CostPrimitives::cpuCostForEvalFunc(). |
| CPUCOST_EVAL_FUNC_DEFAULT, |
| |
| // Used in CostPrimitives::cpuCostForEvalPred(). |
| CPUCOST_EVAL_SIMPLE_PREDICATE, |
| |
| // Used in CostPrimitives::cpuCostForLikeCompare(). |
| CPUCOST_LIKE_COMPARE_OVERHEAD, |
| CPUCOST_LIKE_COMPARE_PER_BYTE, |
| |
| // ------------------------------------------------------------------------- |
| // Used in CostPrimitives::cpuCostForHash(). |
| // |
| // Hash(k1,k2) is done by Hash(k1) + Hash(k2) where the + may be overloaded. |
| // Here, CPUCOST_HASH_PER_KEY records the cost for the +. If we have 5 keys |
| // to hash, this cost (CPUCOST_HASH_PER_KEY * 5), include the file modulus |
| // operation to give the final hash value. The cost of the Hash function |
| // itself is assumed to be dependent on the byte count of each key. The per |
| // byte cost for that is given as CPUCOST_HASH_PER_BYTE. |
| // |
| // Assume the overloaded + is half way between simple and complex arithmetic |
| // operation. Hash() operates a simple arithmetic on each byte of the key. |
| // ------------------------------------------------------------------------- |
| CPUCOST_HASH_PER_KEY, |
| CPUCOST_HASH_PER_BYTE, |
| |
| // Used in CostPrimitives::cpuCostForEncode() |
| CPUCOST_ENCODE_PER_BYTE, |
| |
| // ----------------------------------------------------------------------- |
| // The following 11 were (semi-blindly) converted from #define's so |
| // that calibration would (hopefully) go easier --> i.e., change a |
| // value in the Defaults table instead of recompiling. |
| // |
| // If any of these need additional commenting, the original author |
| // (or just someone who understands their use) should do so. |
| // |
| // The file alongside each reference tells where the original #define |
| // existed; although it's currently commented out, many have associated |
| // comments (which I (Martin) can't decide if they're vital or not). |
| // ----------------------------------------------------------------------- |
| CPUCOST_ESP_INITIALIZATION, // Cost.h |
| CPUCOST_LOCK_ROW, // Cost.h |
| CPUCOST_PREDICATE_COMPARISON, // Cost.h |
| CPUCOST_SUBSET_OPEN, // Cost.h |
| CPUCOST_SUBSET_OPEN_AFTER_FIRST, // Cost.h |
| DP2_MESSAGE_BUFFER_SIZE, // Cost.h |
| LOCAL_MESSAGE_BUFFER_SIZE, // Cost.h |
| OS_MESSAGE_BUFFER_SIZE, // Cost.h |
| |
| // The CPU overhead paid by a data request to DP2: |
| CPUCOST_DATARQST_OVHD, |
| |
| // There are four types of cache in DP2: |
| DP2_CACHE_512_BLOCKS, |
| DP2_CACHE_1024_BLOCKS, |
| DP2_CACHE_2048_BLOCKS, |
| DP2_CACHE_4096_BLOCKS, |
| |
| |
| |
| // Constants needed to estimate the cost of communication |
| // between DP2 and exeInDp2: |
| CPUCOST_SCAN_KEY_LENGTH, // key encoding/decoding |
| CPUCOST_SCAN_OVH_PER_KB, // catch all overhead per KB |
| CPUCOST_SCAN_OVH_PER_ROW, // catch all overhead per row |
| // Catch all for cost of transferring data from disk to dp2: |
| CPUCOST_SCAN_DSK_TO_DP2_PER_KB, |
| CPUCOST_SCAN_DSK_TO_DP2_PER_SEEK, |
| |
| |
| // Used in estimating blocks to read per scan access: |
| COST_PROBE_DENSITY_THRESHOLD, |
| |
| // Cost factors used in IO: |
| // The read ahead penalty is a fraction of the KB reads. |
| // As the scan selectivity increases, reading the same |
| // ammount of data costs more because the scan is busier |
| // putting together buffers to send which makes it miss |
| // prefetch cycles. Thus it reads more data. The best case |
| // (i.e. the case when the scan reads less data) happens when |
| // the scan is not selecting any rows. The worst case is when |
| // the scan selects all the rows. the prefetch penalty determines |
| // how much more data the scan needs to read (as a fraction of the |
| // absolute data) because of prefetch misses. The absolute data |
| // is the blocks that need to be read in a key sequenced table |
| // in a particular single subset access. |
| // This number must be between 0 and 1. |
| IO_TRANSFER_COST_PREFETCH_MISSES_FRACTION, |
| |
| DEF_CHUNK_SIZE, |
| DEF_CPU_ARCHITECTURE, |
| DEF_DISCS_ON_CLUSTER, |
| DEF_INSTRUCTIONS_SECOND, |
| DEF_LOCAL_CLUSTER_NUMBER, |
| DEF_LOCAL_SMP_NODE_NUMBER, |
| DEF_MAX_HISTORY_ROWS,//will be obeseleted |
| DEF_NUM_BM_CHUNKS, |
| DEF_NUM_NODES_IN_ACTIVE_CLUSTERS, |
| DEF_NUM_SMP_CPUS, |
| DEF_PAGE_SIZE, |
| DEF_PHYSICAL_MEMORY_AVAILABLE, |
| DEF_TOTAL_MEMORY_AVAILABLE, |
| DEF_VIRTUAL_MEMORY_AVAILABLE, |
| |
| // to generate detailed executor statitics |
| DETAILED_STATISTICS, |
| |
| |
| // Used in Exchange costing. |
| DP2_END_OF_BUFFER_HEADER_SIZE, |
| DP2_EXCHANGE_REQUEST_SIZE, |
| DP2_MAX_READ_PER_ACCESS_IN_KB, |
| DP2_MESSAGE_HEADER_SIZE, |
| DP2_MESSAGE_HEADER_SIZE_BYTES, |
| DP2_MINIMUM_FILE_SIZE_FOR_SEEK_IN_BLOCKS, |
| |
| MAX_DEPTH_TO_CHECK_FOR_CYCLIC_PLAN, |
| |
| MAX_LONG_VARCHAR_DEFAULT_SIZE, |
| MIN_LONG_VARCHAR_DEFAULT_SIZE, |
| MAX_LONG_WVARCHAR_DEFAULT_SIZE, |
| MIN_LONG_WVARCHAR_DEFAULT_SIZE, |
| |
| // -------------------------------------------------------------------------- |
| // Basic Executor Operations. |
| // -------------------------------------------------------------------------- |
| EX_OP_ALLOCATE_BUFFER_POOL, |
| EX_OP_ALLOCATE_BUFFER, |
| EX_OP_ALLOCATE_TUPLE, |
| EX_OP_COPY_ATP, |
| |
| |
| FIND_COMMON_SUBEXPRS_IN_OR, |
| |
| FLOAT_ESP_RANDOM_NUM_SEED, |
| |
| // Special handling for forcing Bushy CQS, for shapes generated by the wizard |
| FORCE_BUSHY_CQS, |
| |
| // CQD to enable or disable explain |
| GENERATE_EXPLAIN, |
| |
| // -------------------------------------------------------------------------- |
| // Operator defaults used by the Generator: |
| // buffer size, number of buffers, and queue sizes (down, up). |
| // -------------------------------------------------------------------------- |
| // DDL. |
| GEN_DDL_BUFFER_SIZE, |
| GEN_DDL_NUM_BUFFERS, |
| GEN_DDL_SIZE_DOWN, |
| GEN_DDL_SIZE_UP, |
| // Describe. |
| GEN_DESC_BUFFER_SIZE, |
| GEN_DESC_NUM_BUFFERS, |
| GEN_DESC_SIZE_DOWN, |
| GEN_DESC_SIZE_UP, |
| // DP2 Insert. |
| GEN_DP2I_BUFFER_SIZE, |
| GEN_DP2I_NUM_BUFFERS, |
| GEN_DP2I_SIZE_DOWN, |
| GEN_DP2I_SIZE_UP, |
| // DP2 Subset Operator. |
| GEN_DPSO_BUFFER_SIZE, |
| GEN_DPSO_SIZE_DOWN, |
| GEN_DPSO_SIZE_UP, |
| // DP2 Unique Operator. |
| GEN_DPUO_NUM_BUFFERS, |
| // Hash GroupBy. |
| GEN_HGBY_BUFFER_SIZE, |
| GEN_HGBY_NUM_BUFFERS, |
| GEN_HGBY_SIZE_DOWN, |
| GEN_HGBY_SIZE_UP, |
| // Hash Join. |
| GEN_HSHJ_BUFFER_SIZE, |
| GEN_HSHJ_NUM_BUFFERS, |
| GEN_HSHJ_SIZE_DOWN, |
| GEN_HSHJ_SIZE_UP, |
| // Memory pressure Threshold |
| GEN_MEM_PRESSURE_THRESHOLD, |
| // Merge Join. |
| GEN_MJ_BUFFER_SIZE, |
| GEN_MJ_NUM_BUFFERS, |
| GEN_MJ_SIZE_DOWN, |
| GEN_MJ_SIZE_UP, |
| // Ordered NLJ. |
| GEN_ONLJ_BUFFER_SIZE, |
| GEN_ONLJ_NUM_BUFFERS, |
| GEN_ONLJ_SIZE_DOWN, |
| GEN_ONLJ_SIZE_UP, |
| // Partition Access. |
| GEN_PA_BUFFER_SIZE, |
| GEN_PA_NUM_BUFFERS, |
| // Sample node |
| GEN_SAMPLE_SIZE_DOWN, |
| GEN_SAMPLE_SIZE_UP, |
| // Scan. |
| // Sequence Functions |
| GEN_SEQFUNC_BUFFER_SIZE, |
| GEN_SEQFUNC_NUM_BUFFERS, |
| GEN_SEQFUNC_SIZE_DOWN, |
| GEN_SEQFUNC_SIZE_UP, |
| // Sort GroupBy. |
| GEN_SGBY_BUFFER_SIZE, |
| GEN_SGBY_NUM_BUFFERS, |
| GEN_SGBY_SIZE_DOWN, |
| GEN_SGBY_SIZE_UP, |
| // Send Bottom. |
| GEN_SNDB_NUM_BUFFERS, |
| GEN_SNDB_SIZE_DOWN, |
| GEN_SNDB_SIZE_UP, |
| // Send Top. |
| GEN_SNDT_BUFFER_SIZE_DOWN, |
| GEN_SNDT_BUFFER_SIZE_UP, |
| GEN_SNDT_NUM_BUFFERS, |
| GEN_SNDT_RESTRICT_SEND_BUFFERS, |
| GEN_SNDT_SIZE_DOWN, |
| GEN_SNDT_SIZE_UP, |
| // Sort. |
| GEN_SORT_MAX_BUFFER_SIZE, |
| GEN_SORT_NUM_BUFFERS, |
| GEN_SORT_SIZE_DOWN, |
| GEN_SORT_SIZE_UP, |
| // Split Bottom. |
| // Split Top. |
| GEN_SPLT_SIZE_UP, |
| // Tuple Flow. |
| GEN_TFLO_BUFFER_SIZE, |
| GEN_TFLO_NUM_BUFFERS, |
| GEN_TFLO_SIZE_DOWN, |
| GEN_TFLO_SIZE_UP, |
| |
| // Set Table Timeout. |
| GEN_TIMEOUT_BUFFER_SIZE, |
| GEN_TIMEOUT_NUM_BUFFERS, |
| GEN_TIMEOUT_SIZE_DOWN, |
| GEN_TIMEOUT_SIZE_UP, |
| |
| |
| // Transaction. |
| GEN_TRAN_BUFFER_SIZE, |
| GEN_TRAN_NUM_BUFFERS, |
| GEN_TRAN_SIZE_DOWN, |
| GEN_TRAN_SIZE_UP, |
| // Transpose. |
| GEN_TRSP_BUFFER_SIZE, |
| GEN_TRSP_NUM_BUFFERS, |
| GEN_TRSP_SIZE_DOWN, |
| GEN_TRSP_SIZE_UP, |
| // Tuple. |
| GEN_TUPL_BUFFER_SIZE, |
| GEN_TUPL_NUM_BUFFERS, |
| GEN_TUPL_SIZE_DOWN, |
| GEN_TUPL_SIZE_UP, |
| // Union. |
| GEN_UN_BUFFER_SIZE, |
| GEN_UN_NUM_BUFFERS, |
| GEN_UN_SIZE_DOWN, |
| GEN_UN_SIZE_UP, |
| // Compound Stmt. |
| GEN_CS_BUFFER_SIZE, |
| GEN_CS_NUM_BUFFERS, |
| GEN_CS_SIZE_DOWN, |
| GEN_CS_SIZE_UP, |
| // User-Defined Routines |
| GEN_UDR_BUFFER_SIZE, |
| GEN_UDR_NUM_BUFFERS, |
| GEN_UDR_SIZE_DOWN, |
| GEN_UDR_SIZE_UP, |
| |
| // ------------------------------------------------------------------------- |
| // Parameters used by the executor when dynamically resizing queues |
| // (are stored in each TDB that is generated) |
| // ------------------------------------------------------------------------- |
| DYN_QUEUE_RESIZE_FACTOR, |
| DYN_QUEUE_RESIZE_INIT_DOWN, |
| DYN_QUEUE_RESIZE_INIT_UP, |
| DYN_QUEUE_RESIZE_LIMIT, |
| |
| // ------------------------------------------------------------------------- |
| // Enable 'ON' or disable 'OFF' considering hash joins of any form |
| // ------------------------------------------------------------------------- |
| HASH_JOINS, |
| |
| // ------------------------------------------------------------------------- |
| // For HashGroupBy. |
| // ------------------------------------------------------------------------- |
| HGB_BITMUX, |
| HGB_CPUCOST_INITIALIZE, |
| HGB_DP2_MEMORY_LIMIT, // Memory limit if operator executes in DP2. |
| HGB_GROUPING_FACTOR_FOR_SPILLED_CLUSTERS, |
| |
| // ------------------------------------------------------------------------- |
| // Histogram fudge factors |
| // |
| // Since these values are all pretty arbitrary (having to do with |
| // default statistics -- i.e., the case when no statistics exist, or the |
| // predicate, for whatever reason, cannot be reasonably evaluated by |
| // histograms), we might as well let the user fiddle with them. |
| // |
| // The default selectivity values are used in |
| // |
| // /optimizer/ColStatDesc.cpp |
| // /optimizer/ItemExpr.cpp |
| // /optimizer/OptItemExpr.cpp |
| // |
| // The "no stats" rowcount & uec values are used in |
| // |
| // /ustat/hs_read.cpp |
| // |
| // These are the values we use if no stats information exists for a |
| // particular table. |
| // |
| // NO_STATS_ROWCOUNT_MINIMUM is the absolutely fewest number of rows |
| // we'll put into a "fake histogram" -- i.e., in the case where our file |
| // label says the histogram has only 5 rows, we say fooey, for the |
| // purposes of generating a reasonable plan, there are at least |
| // ROWCOUNT_MINIMUM rows. |
| // |
| // ROWCOUNT_REQUIRING_STATS determines whether we fire off WARNING |
| // 6008 or not -- so if the user really doesn't want to update stats, he |
| // can set this to an extremely large value in order to never get a |
| // "6008". (6008 is a friendly reminder to the user that better plans |
| // come from tables whose statistics have been updated.) |
| // |
| // HIST_SAME_TABLE_PRED_REDUCTION is a kludge to account for cases where |
| // we apply multiple predicates to the same table, and multiplying the |
| // resulting reductions together results in too large of an overall |
| // reduction. This reduction is applied to every reduction after the |
| // first for a table that has 2+ predicates applied to it. This value |
| // should be between 1 and 2 in general; initial value is 1.4 . |
| // |
| // HIST_MAX_NUMBER_OF_INTERVALS is a way to limit the number of |
| // histogram intervals that are synthesized & maintained in the |
| // histogram code. This upper bound is used to reduce compile-time for |
| // queries involving large numbers of joins, where the user has updated |
| // statistics to have more intervals than s/he actually needs. In |
| // general, this number should be set high (100 or so); in practice, we may |
| // want to play with this value to see the trade-offs between compile time & |
| // estimation accuracy. |
| // ------------------------------------------------------------------------- |
| HIST_DEFAULT_SEL_FOR_BOOLEAN, // col_a is true | false |
| HIST_DEFAULT_SEL_FOR_IS_NULL, // col_a is null | unknown |
| HIST_DEFAULT_SEL_FOR_JOIN_EQUAL, // col_a = col_b |
| HIST_DEFAULT_SEL_FOR_JOIN_RANGE, // col_a < col_b |
| HIST_DEFAULT_SEL_FOR_LIKE_NO_WILDCARD, // col_a like "blah" |
| HIST_DEFAULT_SEL_FOR_LIKE_WILDCARD, // col_a like "%blah" |
| HIST_DEFAULT_SEL_FOR_PRED_EQUAL, // col_a = 5 |
| HIST_DEFAULT_SEL_FOR_PRED_RANGE, // col_a < 5 |
| |
| HIST_MAX_NUMBER_OF_INTERVALS, // 1 ... 1000 (1000 by default: i.e., no limit) |
| HIST_MC_STATS_NEEDED, //T: use MC histograms and issue 6007 message |
| |
| HIST_NO_STATS_ROWCOUNT, |
| HIST_NO_STATS_UEC, |
| HIST_NO_STATS_UEC_CHAR1, |
| // This default is used to define the sample size for the quick stats |
| HIST_ON_DEMAND_STATS_SIZE, |
| HIST_REMOVE_TRAILING_BLANKS, |
| |
| HIST_ROWCOUNT_REQUIRING_STATS, |
| |
| |
| //jbbsubset that specifies the root of the tree |
| //for which we want to check the histograms |
| HIST_ROOT_NODE, |
| |
| // ------------------------------------------------------------------------- |
| // For Histogram Intervals reduction and histogram prefetching |
| // ------------------------------------------------------------------------- |
| // HIST_BASE_REDUCTION controls if reduction of the number of hist ints is |
| // ON / OFF for histograms read from disk using ustat method FetchStatistics. |
| // Valid values are 'ON' / 'OFF'. |
| // HIST_INTERMEDIATE_REDUCTION controls if reduction of the number of hist ints |
| // is ON / OFF for histograms generated after relational operations like join etc. |
| // Valid values are 'ON' / 'OFF'. |
| // HIST_BASE_REDUCTION_FUDGE_FACTOR controls the fudge factor used in the comparison |
| // when deciding to merge two adjacent hist ints for reducing the number of hist ints |
| // in histograms read from disk using ustat method FetchStatistics. |
| // Valid values are positive ratios like 0.12 representing 12% |
| // HIST_INTERMEDIATE_REDUCTION_FUDGE_FACTOR controls the fudge factor used in the comparison |
| // when deciding to merge two adjacent hist ints for reducing the number of hist ints |
| // in histograms generated after relational operations like join etc. |
| // Valid values are positive ratios like 0.12 representing 12% |
| // HIST_CONSTANT_ALPHA is used in the comparison of two adjacent intervals. |
| // Valid values are numbers between 0 - 1. |
| // HIST_PREFETCH controls if histograms are prefetched by ustat method FetchStatistics. |
| // Valid values are 'ON' / 'OFF' |
| DYNAMIC_HISTOGRAM_COMPRESSION, |
| HIST_INTERMEDIATE_REDUCTION, |
| HIST_BASE_REDUCTION_FUDGE_FACTOR, |
| HIST_INTERMEDIATE_REDUCTION_FUDGE_FACTOR, |
| HIST_CONSTANT_ALPHA, |
| HIST_PREFETCH, |
| |
| |
| // -------------------------------------------------------------------------- |
| // For Update Statistics. |
| // -------------------------------------------------------------------------- |
| USTAT_ADD_SALTED_KEY_PREFIXES_FOR_MC, // Generate MCs for primary key prefixes as well as full key of |
| // salted table when ON EVERY KEY or ON EVERY COLUMN is specified. |
| USTAT_ATTEMPT_ESP_PARALLELISM, // use parallel plans for reading columns to form histograms |
| USTAT_AUTOMATIC_LOGGING, // If ON, gives same semantics as UPDATE STATISTICS LOG SYSTEM |
| USTAT_COMPACT_VARCHARS, // For internal sort, store only the actual # chars used in each value |
| USTAT_DELETE_NO_ROLLBACK, // If ON, use DELETE WITH NO ROLLBACK in incremental stats when updating sample table |
| USTAT_ESTIMATE_HBASE_ROW_COUNT, // If ON, estimate row count of HBase table instead of count(*), subject |
| // to USTAT_MIN_ESTIMATE_FOR_ROWCOUNT setting) |
| USTAT_FORCE_TEMP, // Force temporary table to be used |
| USTAT_HBASE_SAMPLE_RETURN_INTERVAL, // When sampling in HBase, adjust sampling rate to return once |
| // on average once per this many rows |
| USTAT_JIT_LOGGING, // Use just-in-time logging when error occurs |
| // avoid deadlock for concurrent Update Stats on same table |
| USTAT_LOG, // Generate USTAT log and write to file specified |
| USTAT_MIN_ESTIMATE_FOR_ROWCOUNT, // Minimum estimated rowcount to be accepted |
| // as actual rowcount |
| USTAT_MIN_ROWCOUNT_FOR_SAMPLE, // Smallest table for which sampling used |
| USTAT_MIN_ROWCOUNT_FOR_LOW_SAMPLE, // Smallest table for which lowest sampling rate used |
| USTAT_MODIFY_DEFAULT_UEC, // Modify the default UEC |
| USTAT_UEC_HI_RATIO, // When the estimated UEC/ROWCOUNT ratio is |
| USTAT_UEC_LOW_RATIO, // between HI_RATIO and LOW_RATIO, we will avoid |
| // calling xValue() to find the root value. |
| USTAT_USE_BACKING_SAMPLE, // Use Hive persistent sample table instead of reading from full table. @ZXtemp |
| USTAT_USE_SLIDING_SAMPLE_RATIO, // Vary sampling rate according to table size |
| USTAT_AUTOMATION_INTERVAL, // set the ustat automation interval |
| USTAT_MAX_READ_AGE_IN_MIN, // criterion for 'recently read histogram' |
| USTAT_COLLECT_FILE_STATS, // do we collect file stats |
| USTAT_USE_IS_WHEN_NO_STATS, // use IS when no histograms exist for the column |
| USTAT_CQDS_ALLOWED_FOR_SPAWNED_COMPILERS, // list of CQDs that can be pushed to seconday compilers |
| // CQDs are delimited by "," |
| USTAT_MIN_CHAR_UEC_FOR_IS, // minimum UEC for char type to use internal sort |
| USTAT_MIN_DEC_BIN_UEC_FOR_IS, // minimum UEC for binary types to use internal sort |
| USTAT_YOULL_LIKELY_BE_SORRY, // minimum row count where explicit NO SAMPLE clause is required |
| |
| |
| // ------------------------------------------------------------------------- |
| // For Hybrid Hash Operators (shared by HashJoin and HashGroupBy). |
| // ------------------------------------------------------------------------- |
| HH_OP_ALLOCATE_HASH_TABLE, |
| HH_OP_PROBE_HASH_TABLE, // ref head of hash chain given a hash value |
| HH_OP_INSERT_ROW_TO_CHAIN, // insert a row in a hash chain |
| HH_OP_HASHED_ROW_OVERHEAD, // no of bytes to store hash value and pointer |
| |
| // ------------------------------------------------------------------------- |
| // For HashJoin. |
| // ------------------------------------------------------------------------- |
| HJ_CPUCOST_INITIALIZE, |
| HJ_INITIAL_BUCKETS_PER_CLUSTER, |
| HJ_SCAN_TO_NJ_PROBE_SPEED_RATIO, |
| HJ_TYPE, |
| |
| // ------------------------------------------------------------------------- |
| // If on, indicates that conversion from/to sql/application-hostvars are to |
| // be done using the CAST rules, even if the datatypes are incompatible. |
| // For example, conversion from DATE column to CHAR user hostvar is not |
| // allowed according to ANSI as these are incompatible datatypes even |
| // though this conversion could be done using cast function. |
| // This default will enable all conversions that are allowed if a CAST |
| // function is used. |
| // ------------------------------------------------------------------------- |
| IMPLICIT_HOSTVAR_CONVERSION, |
| |
| //-------------------------------------------------------------------------- |
| // Index elimination level allows us to control the heuristics that will be |
| // applied to reduce improbable indexes early. Default can take three values: |
| // MINIMUM - No or little heuristic is applied |
| // MEDIUM - Probably useless indexes are eliminated and no histogram statistics |
| // required |
| // MAXIMUM - Histogram statistics required and aggressive approach to reducing |
| // indexes. Indexes tagged for single subset access will not be used with MDAM |
| //-------------------------------------------------------------------------- |
| INDEX_ELIMINATION_LEVEL, |
| |
| // ------------------------------------------------------------------------- |
| // Enable 'ON' or disable 'OFF' the heuristic to limit # of merge joins |
| // ------------------------------------------------------------------------- |
| MERGE_JOIN_CONTROL, |
| // ------------------------------------------------------------------------- |
| // Enable 'ON' or disable 'OFF' considering merge joins of any form |
| // ------------------------------------------------------------------------- |
| MERGE_JOINS, |
| |
| //-------------------------------------------------------------------------- |
| // Enable 'ON' or disable 'OFF' for min-max optimization |
| //-------------------------------------------------------------------------- |
| MIN_MAX_OPTIMIZATION, |
| |
| //-------------------------------------------------------------------------- |
| // Minimum ESP parallelism. If the user does not specifies this value then |
| // the number of segments will be used as CQD value. If user sets this value |
| // it should be integer >=1 AND <= totalNumberOfCPUs |
| //-------------------------------------------------------------------------- |
| MINIMUM_ESP_PARALLELISM, |
| |
| // ------------------------------------------------------------------------- |
| // For MergeJoin. |
| // ------------------------------------------------------------------------- |
| MJ_CPUCOST_INITIALIZE, |
| MJ_CPUCOST_INSERT_ROW_TO_LIST, |
| MJ_CPUCOST_REWIND_LIST, |
| MJ_CPUCOST_GET_NEXT_ROW_FROM_LIST, |
| MJ_CPUCOST_CLEAR_LIST, |
| MJ_LIST_NODE_SIZE, |
| |
| // ------------------------------------------------------------------------- |
| // Factors used in converting resource usage to Elapsed Time (ET) |
| // (Resource-to-time multipliers are environment dependant) |
| // ------------------------------------------------------------------------- |
| MSCF_ET_CPU, |
| MSCF_ET_NUM_IO_SEEKS, // count of Random I/Os |
| MSCF_ET_IO_TRANSFER, // KB transfer |
| MSCF_ET_NUM_LOCAL_MSGS, |
| MSCF_ET_LOCAL_MSG_TRANSFER, // KB transfer |
| MSCF_ET_NUM_REMOTE_MSGS, |
| MSCF_ET_REMOTE_MSG_TRANSFER, // KB transfer |
| |
| // turn on and off olt query optimizations. Default is ON. |
| OLT_QUERY_OPT, |
| |
| // ----------------------------------------------------------------------- |
| // Factors used for recalibrating the resource-to-time multipliers |
| // ----------------------------------------------------------------------- |
| // Reference calibration machine environment defaults |
| REFERENCE_CPU_FREQUENCY, // In MHZ |
| REFERENCE_IO_SEQ_READ_RATE, // In KB/Second |
| REFERENCE_IO_SEEK_TIME, // In milliseconds |
| REFERENCE_MSG_LOCAL_RATE, // In Mb/Second |
| REFERENCE_MSG_LOCAL_TIME, // In seconds |
| REFERENCE_MSG_REMOTE_RATE, // In Mb/Second |
| REFERENCE_MSG_REMOTE_TIME, // In seconds |
| REFERENCE_CODE, // ['DEBUG' | 'RELEASE'] |
| |
| // End user machine environment defaults |
| TARGET_CPU_FREQUENCY, // In MHZ |
| TARGET_IO_SEQ_READ_RATE, // In KB/Second |
| TARGET_IO_SEEK_TIME, // In milliseconds |
| TARGET_MSG_LOCAL_RATE, // In Mb/Second |
| TARGET_MSG_LOCAL_TIME, // In seconds |
| TARGET_MSG_REMOTE_RATE, // In Mb/Second |
| TARGET_MSG_REMOTE_TIME, // In seconds |
| TARGET_CODE, // ['DEBUG' | 'RELEASE'] |
| |
| // Default to account for speed up (or slowdown) of runnin in release |
| // or default |
| MSCF_DEBUG_TO_RELEASE_MULTIPLIER, |
| |
| // ------------------------------------------------------------------------- |
| // Factors used for estimating overlappability of I/O and messaging used |
| // in the calculation for overlapped addition |
| // ------------------------------------------------------------------------- |
| MSCF_OV_IO, |
| MSCF_OV_MSG, |
| |
| |
| // ----------------------------------------------------------------------- |
| // Big memory usage |
| // ----------------------------------------------------------------------- |
| MEMORY_UNITS_SIZE, |
| NUMBER_OF_USERS, |
| |
| // ------------------------------------------------------------------------- |
| // For MergeUnion. |
| // ------------------------------------------------------------------------- |
| MU_CPUCOST_INITIALIZE, // Per probe initialization cost. |
| MU_INITIAL_BUFFER_COUNT, // Initial no of buffers allocated. |
| MU_INITIAL_BUFFER_SIZE, // Size of executor buffer it is using. |
| |
| // ------------------------------------------------------------------------- |
| //++ MV OZ |
| // For Materialized Views: |
| MV_AGE, // timestamp default is 0 |
| MV_ALLOW_SELECT_SYSTEM_ADDED_COLUMNS, // ON/OFF default is OFF |
| MV_AS_ROW_TRIGGER, // YES/NO default is NO |
| MV_ENABLE_INTERNAL_REFRESH_SHOWPLAN, // internal only - enable showplan for IR |
| MV_LOG_PUSH_DOWN_DP2_INSERT, // push down mv logging tp dp2 for insert |
| MV_LOG_PUSH_DOWN_DP2_DELETE, // push down mv logging tp dp2 for delete |
| MV_LOG_PUSH_DOWN_DP2_UPDATE, // push down mv logging tp dp2 for update |
| |
| |
| MV_REFRESH_MAX_PARALLELISM, // unsigned integer - initially set to 1. |
| MV_REFRESH_MAX_PIPELINING, // unsigned integer - initially set to 1. |
| MV_TRACE_INCONSISTENCY, // YES/NO default is NO |
| |
| // For MV Query Rewrite: |
| // ------------------------------------------------------------------------- |
| MVQR_ALL_JBBS_IN_QD, // add JBBs to query descriptor even if criteria |
| // not met. Used for testing descriptors. |
| MVQR_ENABLE_LOGGING, // Use log files. Temporary until Log4CXX. |
| MVQR_LOG_QUERY_DESCRIPTORS, // whether or not to log query descriptors |
| MVQR_PARAMETERIZE_EQ_PRED, // whether or not to parameterize equality |
| MVQR_PRIVATE_QMS_INIT, // how to init private qms: SMD, XML, NONE (default) |
| MVQR_PUBLISH_TO, // PRIVATE(default) qms, PUBLIC qms, BOTH |
| MVQR_REWRITE_CANDIDATES, // list of MVs by MV qualified names |
| MVQR_REWRITE_ENABLED_OPTION, // establishes default for MVs that don't state |
| // whether or not they are enabled for rewrite |
| MVQR_REWRITE_LEVEL, // 0 to 4, default 0 (disabled) |
| MVQR_REWRITE_SINGLE_TABLE_QUERIES, // whether or not to rewrite queries on single tables |
| MVQR_USE_EXTRA_HUB_TABLES, // Use extra-hub tables in descriptors. |
| MVQR_USE_RI_FOR_EXTRA_HUB_TABLES, // Use RI constraints for extra-hub tables in descriptors. |
| MVQR_MAX_EXPR_SIZE, // maximum size of an expr for which mvqr can produce a descriptor |
| MVQR_MAX_EXPR_DEPTH, // maximum depth of an expr for which mvqr can produce a descriptor |
| MVQR_WORKLOAD_ANALYSIS_MV_NAME, // Name of MV descriptor to be generated from next query. |
| |
| // ------------------------------------------------------------------------- |
| // Enable 'ON' or disable 'OFF' considering nested joins |
| // except when they are the only choice. |
| // ------------------------------------------------------------------------- |
| NESTED_JOINS, |
| KEYLESS_NESTED_JOINS, |
| NESTED_JOINS_PLAN0, // turn off PLAN0 of nested joins |
| |
| |
| // ------------------------------------------------------------------------- |
| // For NestedJoin. |
| // ------------------------------------------------------------------------- |
| NJ_CPUCOST_INITIALIZE, // Per probe initialization cost. |
| NJ_CPUCOST_PASS_ROW, // Cost for passing a row to right child |
| NJ_INITIAL_BUFFER_COUNT, // Initial no of buffers allocated. |
| NJ_INITIAL_BUFFER_SIZE, // Size of executor buffer it is using. |
| |
| |
| // Calibration Constants for NESTEDJOIN INORDER created 11/21/00 |
| |
| NJ_INC_UPTOLIMIT, // cost for seeks upto the blocks in innertable |
| NJ_INC_AFTERLIMIT, // cost for seeks once the probes > innerblocks |
| NJ_INC_MOVEROWS, // cost for moving the final result rows |
| NJ_MAX_SEEK_DISTANCE, // Average distance for a seek |
| |
| // ---------------------------------------------------------------------- |
| // If enabled (ON), indicates that query processing is to be done |
| // following ODBC rules. This affects (currently) type synthesis of |
| // params and some unicode support. |
| // ---------------------------------------------------------------------- |
| ODBC_PROCESS, |
| |
| // ------------------------------------------------------------------------- |
| // Tells what the optimization goal is (for instance, first row, last row). |
| // ------------------------------------------------------------------------- |
| OPTIMIZATION_GOAL, |
| |
| // ----------------------------------------------------------------------- |
| // monitor the compile time using time.h system calls and print the result |
| // summary |
| // ----------------------------------------------------------------------- |
| COMPILE_TIME_MONITOR, |
| COMPILE_TIME_MONITOR_OUTPUT_FILE, |
| |
| //------------------------------------------------------------------------ |
| // If CACHE_HISTOGRAMS is 'ON', we cache histograms that have been read by a |
| // previous statement compilation and use the histogram for a compilation |
| // on the same table |
| //------------------------------------------------------------------------ |
| CACHE_HISTOGRAMS, |
| CACHE_HISTOGRAMS_CHECK_FOR_LEAKS, |
| CACHE_HISTOGRAMS_IN_KB, |
| CACHE_HISTOGRAMS_MONITOR_HIST_DETAIL, |
| CACHE_HISTOGRAMS_MONITOR_MEM_DETAIL, |
| CACHE_HISTOGRAMS_MONITOR_OUTPUT_FILE, |
| CACHE_HISTOGRAMS_TRACE_OUTPUT_FILE, |
| |
| //------------------------------------------------------------------------ |
| //NATable Cache Size in MBs |
| //------------------------------------------------------------------------ |
| METADATA_CACHE_SIZE, |
| |
| //NARoutine and NARoutineDesc cache size in MBs |
| ROUTINE_CACHE_SIZE, |
| |
| // ----------------------------------------------------------------------- |
| // Specifies if simple vector cost has to be reused to compute cost objects |
| // ----------------------------------------------------------------------- |
| REUSE_BASIC_COST, |
| |
| // ----------------------------------------------------------------------- |
| // These are switches and variables to use for compiler debugging |
| // ----------------------------------------------------------------------- |
| COMP_BOOL_1, |
| COMP_BOOL_2, |
| COMP_BOOL_3, |
| COMP_BOOL_4, |
| COMP_BOOL_5, |
| COMP_BOOL_7, |
| COMP_BOOL_8, |
| COMP_BOOL_9, |
| |
| COMP_INT_2, |
| COMP_INT_3, |
| COMP_INT_4, |
| COMP_INT_5, |
| |
| COMP_FLOAT_1, |
| COMP_FLOAT_2, |
| COMP_FLOAT_3, |
| |
| COMP_STRING_1, |
| COMP_STRING_2, |
| //------------------------------------------------------------------------ |
| // Do the query analysis phase, building JBBs, TCG, QGs, and ASM. |
| //------------------------------------------------------------------------ |
| QUERY_ANALYSIS, |
| |
| //------------------------------------------------------------------------ |
| // Dump the data flow graph into a file and invokes DOTTY to view graph. |
| //------------------------------------------------------------------------ |
| DISPLAY_DATA_FLOW_GRAPH, |
| |
| //------------------------------------------------------------------------ |
| // Specifies the threshold at MultiJoin Rewrite step occur. |
| //------------------------------------------------------------------------ |
| MULTI_JOIN_THRESHOLD, |
| |
| //------------------------------------------------------------------------ |
| // Force the user specified join order to enumerate among orders enumrated |
| //------------------------------------------------------------------------ |
| MULTI_JOIN_CONSIDER_INITIAL_JOIN_ORDER, |
| |
| MULTI_JOIN_PROBE_HASH_TABLE, |
| |
| //------------------------------------------------------------------------ |
| // Specifies if ASM cache should be available. |
| //------------------------------------------------------------------------ |
| ASM_ALLOWED, |
| |
| //------------------------------------------------------------------------ |
| // Specifies if pre-computation of statistics should be done in ASM |
| //------------------------------------------------------------------------ |
| ASM_PRECOMPUTE, |
| |
| // ------------------------------------------------------------------------- |
| // Specifies the level of optimization desired. |
| // 0 = minimum level, 1 = intermediate level, 2 = maximum level (default) |
| // constant1 and constant2 are used by optimization level 1. |
| // ------------------------------------------------------------------------- |
| OPTIMIZATION_LEVEL, |
| OPTIMIZATION_LEVEL_1_CONSTANT_1, |
| OPTIMIZATION_LEVEL_1_CONSTANT_2, |
| OPTIMIZATION_LEVEL_1_THRESHOLD, |
| OPTIMIZATION_LEVEL_1_SAFETY_NET, |
| OPTIMIZATION_LEVEL_1_SAFETY_NET_MULTIPLE, |
| |
| // Specifies the type of graceful termination to use |
| OPTIMIZER_GRACEFUL_TERMINATION, |
| |
| // ------------------------------------------------------------------------- |
| // Temp. optimizer heuristics. Used for testing only, The heuristic is |
| // renamed after proven worthy |
| // ------------------------------------------------------------------------- |
| OPTIMIZER_HEURISTIC_1, |
| OPTIMIZER_HEURISTIC_2, |
| OPTIMIZER_HEURISTIC_3, |
| // #4 & #5 are heuristics for elimination of plans with relatively |
| // high data flow wrt other logical plans in the group |
| OPTIMIZER_HEURISTIC_4, |
| OPTIMIZER_HEURISTIC_5, |
| |
| // Optimizer heuristics to prevent unnecessary parallelism |
| // for "small" non-partitioned groups |
| PARALLEL_HEURISTIC_1, |
| PARALLEL_HEURISTIC_2, |
| PARALLEL_HEURISTIC_3, |
| PARALLEL_HEURISTIC_4, |
| |
| // if this one is "ON" it overwrites optimizer heuristics 4 & 5 as "ON" |
| // if its "OFF" then the defaults of the two heuristics will be used |
| DATA_FLOW_OPTIMIZATION, |
| |
| PARTITIONING_SCHEME_SHARING, |
| |
| // ------------------------------------------------------------------------- |
| // Optimization heuristic to control # of cross-products in the plan |
| // ------------------------------------------------------------------------- |
| CROSS_PRODUCT_CONTROL, |
| |
| // ------------------------------------------------------------------------- |
| // Force the join order given by the user |
| // ------------------------------------------------------------------------- |
| JOIN_ORDER_BY_USER, |
| |
| // ------------------------------------------------------------------------- |
| // Optimization heuristic to control # of nested joins considered in a plan |
| // ------------------------------------------------------------------------- |
| NESTED_JOIN_CONTROL, |
| |
| // ------------------------------------------------------------------------- |
| // Allow nested join for cross products |
| // ------------------------------------------------------------------------- |
| NESTED_JOIN_FOR_CROSS_PRODUCTS, |
| |
| // ------------------------------------------------------------------------- |
| // Threshold above which OCR is enabled for nested joins |
| // ------------------------------------------------------------------------- |
| NESTED_JOINS_OCR_MAXOPEN_THRESHOLD, |
| |
| // ------------------------------------------------------------------------- |
| // Controls the number of blocks read per DP2 access |
| // ------------------------------------------------------------------------- |
| NUM_OF_BLOCKS_PER_ACCESS, |
| |
| // ------------------------------------------------------------------------- |
| // Controls the complexity threshold to skip pass1 optimization |
| // ------------------------------------------------------------------------- |
| SHORT_OPTIMIZATION_PASS_THRESHOLD, |
| |
| // ------------------------------------------------------------------------- |
| // Controls whether plan stealing is allowed or not |
| // ------------------------------------------------------------------------- |
| PLAN_STEALING, |
| |
| // ------------------------------------------------------------------------- |
| // Use info from right child to require order on left child of NJ |
| // ------------------------------------------------------------------------- |
| PREFERRED_PROBING_ORDER_FOR_NESTED_JOIN, |
| |
| // ------------------------------------------------------------------------- |
| // Heuristic to reduce the number of double exchanges (OFF enables it) |
| // ------------------------------------------------------------------------- |
| TRY_DP2_REPARTITION_ALWAYS, |
| |
| // ------------------------------------------------------------------------- |
| // Specifies the max. number of tasks the optimizer is allowed to do. |
| // If exceeded and beyond the first pass, aggressive pruning will |
| // finalize the optimization process. |
| // ------------------------------------------------------------------------- |
| OPTIMIZATION_TASKS_LIMIT, |
| |
| // ----------------------------------------------------------------------- |
| // Disables/enables pruning. |
| // ----------------------------------------------------------------------- |
| OPTIMIZER_PRUNING, |
| OPTIMIZER_PRUNING_FIX_1, |
| |
| // ----------------------------------------------------------------------- |
| // Optimizer pruning heuristics. |
| // ----------------------------------------------------------------------- |
| OPH_EXITHJCRCONTCHILOOP, |
| OPH_EXITMJCRCONTCHILOOP, |
| OPH_EXITNJCRCONTCHILOOP, |
| OPH_PRUNING_COMPLEXITY_THRESHOLD, |
| OPH_PRUNING_PASS2_COST_LIMIT, |
| OPH_PRUNE_WHEN_COST_LIMIT_EXCEEDED, |
| OPH_USE_NICE_CONTEXT, |
| OPH_REDUCE_COST_LIMIT_FROM_CANDIDATES, |
| OPH_REDUCE_COST_LIMIT_FROM_PASS1_SOLUTION, |
| OPH_REUSE_FAILED_PLAN, |
| OPH_REUSE_OPERATOR_COST, |
| OPH_SKIP_OGT_FOR_SHARED_GC_FAILED_CL, |
| OPH_USE_CACHED_ELAPSED_TIME, |
| OPH_USE_CANDIDATE_PLANS, |
| OPH_USE_COMPARE_COST_THRESHOLD, |
| OPH_USE_CONSERVATIVE_COST_LIMIT, |
| OPH_USE_ENFORCER_PLAN_PROMOTION, |
| OPH_USE_FAILED_PLAN_COST, |
| OPH_USE_ORDERED_MJ_PRED, |
| OPH_USE_PWS_FLAG_FOR_CONTEXT, |
| |
| |
| // ----------------------------------------------------------------------- |
| // PCODE |
| // ----------------------------------------------------------------------- |
| PCODE_OPT_LEVEL, |
| |
| //-------------------------------------------------------------------------- |
| // The group by reduction for pushing a partial group by past the |
| // right side of the TSJ must be at least this much. If 0.0, then |
| // pushing it will always be tried. |
| //-------------------------------------------------------------------------- |
| REDUCTION_TO_PUSH_GB_PAST_TSJ, |
| |
| // ------------------------------------------------------------------------ |
| // Ordered Hash Join |
| // ------------------------------------------------------------------------ |
| ORDERED_HASH_JOIN_CONTROL, |
| OHJ_BMO_REUSE_SORTED_BMOFACTOR_LIMIT, |
| OHJ_BMO_REUSE_SORTED_UECRATIO_UPPERLIMIT, |
| OHJ_BMO_REUSE_UNSORTED_UECRATIO_UPPERLIMIT, |
| OHJ_VBMOLIMIT, |
| |
| //-------------------------------------------------------------------------- |
| // OR-optimization (using multiple indexes for OR predicates) |
| //-------------------------------------------------------------------------- |
| OR_OPTIMIZATION, |
| |
| // ------------------------------------------------------------------------- |
| // Makes the optimizer issue a warning message with its internal |
| // counters |
| // ------------------------------------------------------------------------- |
| OPTIMIZER_PRINT_INTERNAL_COUNTERS, |
| |
| // ------------------------------------------------------------------------- |
| // Makes the optimizer prints costing information. |
| // ------------------------------------------------------------------------- |
| OPTIMIZER_PRINT_COST, |
| |
| //-------------------------------------------------------------------------- |
| // Push down certain operators down dp2 for TPC-C performance. |
| // 0 = do not push (default), 1= do push (any nonzero pushes operator) |
| //-------------------------------------------------------------------------- |
| OPTS_PUSH_DOWN_DAM, |
| |
| //-------------------------------------------------------------------------- |
| // Partition Overlay Support (POS) options |
| //-------------------------------------------------------------------------- |
| POS_NUM_OF_PARTNS, |
| |
| //-------------------------------------------------------------------------- |
| // Query Caching options |
| //-------------------------------------------------------------------------- |
| QUERY_CACHE, |
| QUERY_CACHE_AVERAGE_PLAN_SIZE, |
| QUERY_CACHE_SELECTIVITY_TOLERANCE, |
| QUERY_CACHE_MAX_CHAR_LEN, |
| QUERY_CACHE_MAX_EXPRS, |
| QUERY_CACHE_MAX_VICTIMS, |
| QUERY_CACHE_REQUIRED_PREFIX_KEYS, |
| QUERY_CACHE_STATEMENT_PINNING, |
| QUERY_CACHE_STATISTICS, |
| QUERY_CACHE_STATISTICS_FILE, |
| QUERY_CACHE_USE_CONVDOIT_FOR_BACKPATCH, |
| |
| |
| // ------------------------------------------------------------------------- |
| // If set to TRUE, this indicates that a select query will not be updated |
| // or deleted using an 'upd/del where current of cursor' statement. |
| // According to ANSI, all SELECTs could be upd/del by default. |
| // The default is FALSE. |
| // ------------------------------------------------------------------------ |
| READONLY_CURSOR, |
| |
| // multiplicative factor used to inflate cost of risky operators. |
| RISK_PREMIUM_MJ, |
| RISK_PREMIUM_NJ, |
| RISK_PREMIUM_SERIAL, |
| |
| ROBUST_HJ_TO_NJ_FUDGE_FACTOR, |
| ROBUST_QUERY_OPTIMIZATION, |
| ROBUST_SORTGROUPBY, |
| |
| // ------------------------------------------------------------------------- |
| // For Scratch files |
| // ------------------------------------------------------------------------- |
| |
| SCRATCH_DIRS, |
| |
| |
| // ------------------------------------------------------------------------- |
| // For SortGroupBy. |
| // ------------------------------------------------------------------------- |
| SGB_CPUCOST_INITIALIZE, |
| SGB_INITIAL_BUFFER_COUNT, |
| SGB_INITIAL_BUFFER_SIZE, |
| |
| // ------------------------------------------------------------------------- |
| // For Sort. |
| // ------------------------------------------------------------------------- |
| SORT_CPUCOST_INITIALIZE, // Per probe initialization cost. |
| SORT_QS_FACTOR, // Constant factor for Quick Sort. |
| SORT_RS_FACTOR, // Constant factor for Replacement Sel. |
| SORT_IO_BUFFER_SIZE, // I/O buffer size. |
| SORT_EX_BUFFER_SIZE, // Executor buffer size. |
| SORT_TREE_NODE_SIZE, // Internal node size of Tournament Tree. |
| // ------------------------------------------------------------------------- |
| // For Node Maps |
| // ------------------------------------------------------------------------- |
| FAKE_VOLUME_ASSIGNMENTS, // Force num of DP2 vols = num of partitions? ON/OFF |
| FAKE_VOLUME_NUM_VOLUMES, // Number of partitions per volume |
| |
| // ------------------------------------------------------------------------- |
| // For Exchange and parallel execution |
| // ------------------------------------------------------------------------- |
| ATTEMPT_ASYNCHRONOUS_ACCESS, // Nowait I/O allowed? ON/OFF |
| ATTEMPT_ESP_PARALLELISM, // Generate and cost ESP parallelism plans? |
| // ON or OFF or SYSTEM |
| // SYSTEM = optimizer decides, based on whether |
| // operator is a BMO, uses lots of CPU, etc. |
| BASE_NUM_PAS_ON_ACTIVE_PARTS, // limit # of PAs to # of active parts? |
| MAX_ESPS_PER_CPU_PER_OP, // max number of ESPs per cpu for a given operator |
| MAX_ACCESS_NODES_PER_ESP, // max number of access nodes per ESP |
| NUMBER_OF_PARTITIONS_DEVIATION, // % deviation allowed for # of parts/ESPs |
| NUMBER_OF_ROWS_PARALLEL_THRESHOLD, // # of rows where parallelism is a good idea |
| NUM_OF_PARTS_DEVIATION_TYPE2_JOINS, // % deviation allowed for type2 joins |
| PARALLEL_ESP_NODEMASK, // nodes to be used for ESPs |
| PARALLEL_NUM_ESPS, // max # of ESPs an operator can use |
| PARTITION_ACCESS_NODES_PER_ESP, // optimal number of PAs per ESP |
| UPDATED_BYTES_PER_ESP, // ratio of updated bytes/ESPs in updates |
| |
| // ------------------------------------------------------------------------ |
| // For allowing / hiding indexes |
| // ------------------------------------------------------------------------ |
| HIDE_INDEXES, |
| |
| // ------------------------------------------------------------------------- |
| // For Insert/update/delete |
| // ------------------------------------------------------------------------- |
| UPD_ORDERED, // require ins/upd/del rows to be ordered |
| IUD_NONAUDITED_INDEX_MAINT, // is index maint. allowed on nonaud. tables? |
| INSERT_VSBB, // insert VSBB options |
| VSBB_TEST_MODE, // Bypass heuristics for VSBB selection. |
| DISABLE_BUFFERED_INSERTS, // Use only single row inserts. |
| |
| // for IUD operations, this default indicates whether a transaction needs |
| // to be rolled back on error(ON), not rolled back(OFF), or let the |
| // system decide. See BindRelExpr.cpp and GenPreCode.cpp and look for |
| // setRollbackOnError() methods for how this is set. |
| // ROLLBACK_ON_ERROR, : obsolete |
| |
| // ------------------------------------------------------------------------- |
| // For constraint droppable default option. |
| // ------------------------------------------------------------------------- |
| NOT_NULL_CONSTRAINT_DROPPABLE_OPTION, |
| PRIMARY_KEY_CONSTRAINT_DROPPABLE_OPTION, |
| |
| CATALOG, |
| SCHEMA, |
| |
| // -------------------------------------------------------------------------- |
| // These values are taken from Ganesh Hariharan's document, |
| // Mapping the SQL/MP defines and control in SQL/ARK. |
| // -------------------------------------------------------------------------- |
| ISOLATION_LEVEL, |
| IF_LOCKED, |
| MDAM_CPUCOST_NET_OVH, |
| MDAM_CPUCOST_NET_PER_PRED, |
| MDAM_SCAN_METHOD, |
| //--------------------------------------------------------------------------- |
| //Used to control agressiveness of executor predicate replication minimization |
| ALLOW_INPUT_PRED_REPLICATION_REDUCTION, |
| |
| //--------------------------------------------------------------------------- |
| //Following three defaults were added in conjunction to index elimination project. |
| |
| //We calculate the promise of index join using the initial inputEstLogProp. |
| //In FileScanRule::nextSubstitute() we need to ensure that context inputEstLogProp |
| //cardinality is not less than acceptable error * cardinality of initial |
| // estlogprop |
| //---------------------------------------------------------------------------- |
| ACCEPTABLE_INPUTESTLOGPROP_ERROR, |
| |
| // if mdamSkips exceeds indexBlocks * selection default then index probably |
| // not good for mdam. Look at IndexDesc.cpp for more detail. |
| MDAM_SELECTION_DEFAULT, |
| |
| //How many blocks do we read ahead for a sequential scan of a file. |
| READ_AHEAD_MAX_BLOCKS, |
| |
| TABLELOCK, |
| TIMEOUT, |
| STREAM_TIMEOUT, // BertBert VV |
| UNAVAILABLE_PARTITION, |
| // ACCESS_OPTION, |
| // ACCESS_PATH, |
| // AGGREGATE_METHOD, |
| // GROUP_METHOD, |
| // JOIN_METHOD_HASH, |
| // JOIN_METHOD_MERGE, |
| // JOIN_METHOD_NESTED, |
| // OPEN_PARTITION, |
| // PARALLEL_PLAN, |
| // SEQUENTIAL, |
| // SEQUENTIAL_BLOCKSPLIT, |
| // TRANSACTION_MODE, |
| |
| ZIG_ZAG_TREES, // Enable 'ON' or disable 'OFF' considering zig-zag trees |
| ZIG_ZAG_TREES_CONTROL, // A heuristic to reduce # of non-promising z-zag nodes |
| |
| RECOMPILATION_WARNINGS, |
| |
| SHOWCONTROL_SHOW_ALL, |
| NAMETYPE, |
| |
| |
| NATIONAL_CHARSET, |
| TERMINAL_CHARSET, |
| |
| |
| //-------------------------------------------------------------------------- |
| // Enable character set inference for ODBC 2.X. |
| // OFF = do not infer (default), ON = do infer |
| //-------------------------------------------------------------------------- |
| INFER_CHARSET, |
| |
| // -------------------------------------------------------------------------- |
| // NSK DEBUG defaults. |
| // -------------------------------------------------------------------------- |
| NSK_DBG, |
| NSK_DBG_LOG_FILE, |
| // |
| NSK_DBG_SHOW_TREE_AFTER_PARSING, |
| NSK_DBG_SHOW_TREE_AFTER_BINDING, |
| NSK_DBG_SHOW_TREE_AFTER_TRANSFORMATION, |
| NSK_DBG_SHOW_TREE_AFTER_NORMALIZATION, |
| NSK_DBG_SHOW_TREE_AFTER_ANALYSIS, |
| NSK_DBG_SHOW_PASS1_PLAN, |
| NSK_DBG_SHOW_PASS2_PLAN, |
| NSK_DBG_SHOW_PLAN_LOG, |
| NSK_DBG_SHOW_TREE_AFTER_PRE_CODEGEN, |
| NSK_DBG_SHOW_TREE_AFTER_CODEGEN, |
| |
| // |
| NSK_DBG_PRINT_COST, |
| NSK_DBG_PRINT_LOG_PROP, |
| NSK_DBG_PRINT_PHYS_PROP, |
| NSK_DBG_PRINT_CHAR_INPUT, |
| NSK_DBG_PRINT_CHAR_OUTPUT, |
| NSK_DBG_PRINT_CONSTRAINT, |
| NSK_DBG_PRINT_CONTEXT, |
| NSK_DBG_PRINT_CONTEXT_POINTER, |
| NSK_DBG_PRINT_ITEM_EXPR, |
| NSK_DBG_PRINT_TASK, |
| NSK_DBG_PRINT_TASK_STACK, |
| |
| // ----------------------------------------------------------------------- |
| // for IUD operations, this default, if set, indicates that the Xn needs |
| // to be rolled back on error. |
| // ----------------------------------------------------------------------- |
| UPD_ABORT_ON_ERROR, |
| |
| // ------------------------------------------------------------------- |
| // For certain IUD operations, this default, if set, returns an error |
| // and not aborts the transaction. This simulates sql/mp error. |
| // ------------------------------------------------------------------- |
| UPD_PARTIAL_ON_ERROR, |
| |
| // ------------------------------------------------------------------- |
| // this default, if set, indicates that dp2 savepoint will be used |
| // and stmt will be rolled back to the start of that savepoint. |
| // ------------------------------------------------------------------- |
| UPD_SAVEPOINT_ON_ERROR, |
| |
| |
| // ---------------------------------------------------------------------- |
| // User-defined routines |
| // |
| // UDF_METADATA_SCHEMA: Schema containing user metadata tables for |
| // UDFs. This setting will not be needed once we support UDF |
| // metadata in the SQL catalog. |
| // |
| // UDR_JAVA_OPTIONS: JVM startup options in the UDR server. Can be |
| // OFF, ANYTHING, or a series of JVM options separated by the |
| // UDR_JAVA_OPTION_DELIMITER string. The default is OFF. |
| // |
| // UDR_JAVA_OPTION_DELIMITERS: Characters in this string delimit JVM |
| // options. The default is a single space character. |
| // |
| // ---------------------------------------------------------------------- |
| UDF_METADATA_SCHEMA, |
| UDR_JAVA_OPTIONS, |
| UDR_JAVA_OPTION_DELIMITERS, |
| |
| FSO_RUN_TESTS, |
| FSO_TO_USE, |
| |
| OPTIMIZER_SYNTH_FUNC_DEPENDENCIES, |
| |
| COMP_BOOL_11, |
| COMP_BOOL_12, |
| COMP_BOOL_13, |
| COMP_BOOL_14, |
| COMP_BOOL_18, |
| COMP_BOOL_19, |
| COMP_BOOL_20, |
| COMP_BOOL_21, // used by generator |
| COMP_BOOL_22, |
| COMP_BOOL_23, |
| COMP_BOOL_24, // used by generator |
| COMP_BOOL_25, // used by generator |
| COMP_BOOL_27, |
| COMP_BOOL_28, |
| COMP_BOOL_29, |
| COMP_BOOL_30, |
| COMP_BOOL_31, |
| COMP_BOOL_32, |
| COMP_BOOL_33, |
| COMP_BOOL_34, |
| COMP_BOOL_35, |
| COMP_BOOL_36, |
| COMP_BOOL_37, |
| COMP_BOOL_38, |
| COMP_BOOL_39, |
| COMP_BOOL_40, |
| COMP_BOOL_41, |
| COMP_BOOL_42, |
| COMP_BOOL_44, |
| COMP_BOOL_45, |
| COMP_BOOL_46, |
| COMP_BOOL_47, |
| COMP_BOOL_48, |
| COMP_BOOL_49, |
| COMP_BOOL_51, |
| COMP_BOOL_52, |
| COMP_BOOL_53, |
| COMP_BOOL_54, |
| COMP_BOOL_55, |
| COMP_BOOL_56, |
| COMP_BOOL_57, |
| COMP_BOOL_59, |
| COMP_BOOL_60, |
| COMP_BOOL_61, |
| COMP_BOOL_62, |
| COMP_BOOL_63, |
| COMP_BOOL_64, |
| COMP_BOOL_65, |
| COMP_BOOL_66, |
| COMP_BOOL_67, |
| COMP_BOOL_68, |
| COMP_BOOL_69, |
| COMP_BOOL_70, |
| COMP_BOOL_71, |
| COMP_BOOL_72, |
| COMP_BOOL_73, |
| COMP_BOOL_74, |
| COMP_BOOL_75, |
| COMP_BOOL_76, |
| COMP_BOOL_77, |
| COMP_BOOL_78, |
| COMP_BOOL_79, |
| COMP_BOOL_80, |
| COMP_BOOL_81, |
| COMP_BOOL_82, |
| COMP_BOOL_83, |
| COMP_BOOL_84, |
| COMP_BOOL_85, |
| COMP_BOOL_86, |
| COMP_BOOL_87, |
| COMP_BOOL_88, |
| COMP_BOOL_90, |
| COMP_BOOL_91, // used by generator |
| COMP_BOOL_92, |
| COMP_BOOL_93, |
| COMP_BOOL_94, |
| COMP_BOOL_95, |
| COMP_BOOL_96, |
| COMP_BOOL_97, |
| COMP_BOOL_98, |
| COMP_BOOL_99, |
| |
| COMP_INT_0, |
| COMP_INT_7, |
| COMP_INT_8, |
| COMP_INT_9, |
| |
| COMP_FLOAT_0, |
| COMP_FLOAT_4, |
| COMP_FLOAT_5, |
| COMP_FLOAT_6, |
| COMP_FLOAT_7, |
| COMP_FLOAT_8, |
| COMP_FLOAT_9, |
| COMP_STRING_5, |
| |
| COSTING_SHORTCUT_GROUPBY_FIX, |
| |
| VARCHAR_PARAM_DEFAULT_SIZE, |
| |
| // ---------------------------------------------------------------------- |
| // If enabled (ON), indicates that query processing is to be done |
| // following JDBC rules. This covers all of stuff done for ODBC_PROCESS |
| // plus more. |
| // ---------------------------------------------------------------------- |
| JDBC_PROCESS, |
| |
| OPTIMIZATION_LEVEL_1_IMMUNITY_LIMIT, |
| OPTIMIZATION_LEVEL_1_MJENUM_LIMIT, |
| |
| NSK_DBG_MJRULES_TRACKING, |
| |
| NEW_MDAM, |
| |
| MDAM_COSTING_REWRITE, |
| |
| MDAM_SUBSET_FACTOR, |
| |
| MDAM_FSO_SIMPLE_RULE, |
| |
| // ------------------------------------------------------------------------- |
| // Makes NO ACTION referential action behave like RESTRICT. |
| // ------------------------------------------------------------------------- |
| REF_CONSTRAINT_NO_ACTION_LIKE_RESTRICT, |
| |
| |
| GEN_SORT_MAX_NUM_BUFFERS, |
| GEN_SORT_TOPN, |
| |
| SORT_ALGO, // Sort algorithm choice |
| |
| |
| // ------------------------------------------------------------------------- |
| // Specifies what percentage of smaller table in join, should be used as |
| // a lower bound for join cardinality |
| // ------------------------------------------------------------------------- |
| HIST_JOIN_CARD_LOWBOUND, |
| |
| // allow any/first N in subqueries. |
| ALLOW_FIRSTN_IN_SUBQUERIES, |
| |
| // ------------------------------------------------------------------------ |
| // This default will use a new type of an ASSERT, CCMPASSERT as a CMPASSERT |
| // when ON, else use that as a DCMPASSERT. |
| // ------------------------------------------------------------------------- |
| USE_CCMPASSERT_AS_CMPASSERT, |
| |
| |
| NEW_OPT_DRIVER, |
| FORCE_PASS_ONE, |
| FORCE_PASS_TWO, |
| TRY_PASS_ONE_IF_PASS_TWO_FAILS, |
| TEST_PASS_ONE_ASSERT_TASK_NUMBER, |
| TEST_PASS_TWO_ASSERT_TASK_NUMBER, |
| SHOWWARN_OPT, |
| |
| // ------------------------------------------------------------------------ |
| // This default will dictate which $volume the temporary sample table will |
| // be located. |
| // ------------------------------------------------------------------------ |
| HIST_SCRATCH_VOL, |
| |
| PRESERVE_MIN_SCALE, |
| |
| // ------------------------------------------------------------------------- |
| // If on, indicates that conversion from sql to application-hostvars are to |
| // be done using the CAST rules, even if the datatypes are incompatible. |
| // For example, conversion from CHAR column to DATE user hostvar is not |
| // allowed according to ANSI as these are incompatible datatypes even |
| // though this conversion could be done using cast function. |
| // This default will enable all conversions that are allowed as if a CAST |
| // function is used. |
| // ------------------------------------------------------------------------- |
| IMPLICIT_DATETIME_INTERVAL_HOSTVAR_CONVERSION, |
| |
| //------------------------------------------------------------------------ |
| // If on, compiler considers generation of a plan that does synchronous |
| // access in reverse order |
| //------------------------------------------------------------------------ |
| ATTEMPT_REVERSE_SYNCHRONOUS_ORDER, |
| |
| //-------------------------------------------------------------------------- |
| // The foll indicates the percentage of the free space on a particular disk |
| // after which the scratch overflow code will not use that disk any more. |
| // By default this is set at 20%. If the user wants to change this to 0% |
| // then the scratch logic will use all the space on the disk |
| //---------------------------------------------------------------------------- |
| SCRATCH_FREESPACE_THRESHOLD_PERCENT, |
| |
| //-------------------------------------------------------------------------- |
| // rand() function in sql is disabled unless this CQD is turned on |
| //-------------------------------------------------------------------------- |
| ALLOW_RAND_FUNCTION, |
| |
| // This defaults control whether we should use MC UEC while computing cardinalities |
| // for Join on non-key columns. By default we shall not use those |
| // |
| HIST_SKIP_MC_FOR_NONKEY_JOIN_COLUMNS, |
| |
| //-------------------------------------------------------------------------- |
| // If set, then view validation(view existence, security checks) at runtime |
| // is only done at fixup(open) time instead of on each execution. |
| // This is non-ANSI behavior. |
| //-------------------------------------------------------------------------- |
| VALIDATE_VIEWS_AT_OPEN_TIME, |
| |
| //10-040621-7139-begin |
| INTERACTIVE_ACCESS, |
| //10-040621-7139-end |
| |
| |
| //Support transactions for DDL operations. |
| DDL_TRANSACTIONS, |
| |
| // controls various optimizations, see enum QueryOptimizationOptions. |
| QUERY_OPTIMIZATION_OPTIONS, |
| |
| |
| // force use of Method-of-Moments UEC estimator in update stats |
| USTAT_FORCE_MOM_ESTIMATOR, |
| |
| // set the maximum weight for the Shlosser UEC estimator |
| USTAT_DSHMAX, |
| |
| // turn on and off olt query optimizations. Default is ON. |
| EID_SPACE_USAGE_OPT, |
| |
| |
| // partition threshold to control partition size when update statistics |
| // temporary sample table is created |
| HIST_SCRATCH_VOL_THRESHOLD, |
| |
| |
| // Allows users to specify SYSKEY value. In other words |
| // the system does not generate one. |
| OVERRIDE_SYSKEY , |
| |
| //-------------------------------------------------------------------------- |
| //External sort involves both READ and WRITE operation, where as the DISK |
| // IO rate is only for READ. We need to multiply the elapsed time by this |
| // factor. |
| //-------------------------------------------------------------------------- |
| SORT_RW_FACTOR, |
| |
| HIST_MISSING_STATS_WARNING_LEVEL, |
| |
| HIST_DEFAULT_BASE_SEL_FOR_LIKE_WILDCARD, |
| |
| DP2_SEQ_READS_WITHOUT_SEEKS, |
| |
| DIMENSIONAL_QUERY_OPTIMIZATION, |
| // turn post-parser & post-binder query caching ON or OFF |
| QUERY_TEMPLATE_CACHE, |
| // turn pre-parser query caching ON or OFF |
| QUERY_TEXT_CACHE, |
| |
| // allows users to specify a limit on the number of nonfatal errors that will be |
| // tolerated for a non-atomic statement. |
| NOT_ATOMIC_FAILURE_LIMIT, |
| |
| // allows user to turn ON/OFF the ROWSET_ROW_COUNT feature. |
| ROWSET_ROW_COUNT, |
| |
| |
| // POS |
| POS, |
| |
| // how many maximum groups dp2 hash group-by operator can handle? |
| MAX_DP2_HASHBY_GROUPS, |
| |
| // HASH_header entries per hash table used in group-by costing |
| MAX_HEADER_ENTREIS_PER_HASH_TABLE, |
| |
| HGB_MAX_TABLE_SIZE_FOR_CLUSTERS, |
| HGB_MEMORY_AVAILABLE_FOR_CLUSTERS, |
| |
| |
| //Allows user to specify default SAMPLE limits that should be used during fetchcount |
| HIST_DEFAULT_SAMPLE_MIN, |
| HIST_DEFAULT_SAMPLE_MAX, |
| HIST_DEFAULT_SAMPLE_RATIO, |
| |
| |
| // EMS events |
| USER_EXPERIENCE_LEVEL, |
| |
| |
| // Starting size of Partition Access's parent queues. |
| DYN_PA_QUEUE_RESIZE_INIT_DOWN, |
| DYN_PA_QUEUE_RESIZE_INIT_UP, |
| |
| // if this default is set to ON, then the max precision of a numeric |
| // expression(arithmetic, aggregate) is limited to MAX_NUMERIC_PRECISION |
| // (= 18). If this is set to OFF, the default value, then the max precision |
| // is computed based on the operands and the operation which could make the |
| // result a software datatype(BIGNUM). Software datatypes give better |
| // precision but degraded performance. |
| LIMIT_MAX_NUMERIC_PRECISION, |
| |
| CONSTANT_FOLDING, |
| |
| QUERY_CACHE_TABLENAME, |
| |
| QUERY_CACHE_RUNTIME, |
| |
| SKIP_UNAVAILABLE_PARTITION, |
| |
| ISOLATION_LEVEL_FOR_UPDATES, |
| |
| //HISTOGRAMS: If the UEC for a column is <= HIST_LOW_UEC_THRESHOLD, then |
| //the histogram generated will have 1 interval per unique value. |
| HIST_LOW_UEC_THRESHOLD, |
| |
| DESTROY_ORDER_AFTER_REPARTITIONING, |
| |
| MERGE_JOIN_WITH_POSSIBLE_DEADLOCK, |
| |
| ALLOW_RANGE_PARTITIONING, |
| |
| |
| SORT_MAX_HEAP_SIZE_MB, //Heap memory for SORT operator in megabytes. |
| |
| |
| // Optimization to expand any "short" rows found in tables with added columns |
| EXPAND_DP2_SHORT_ROWS, |
| |
| MVGROUP_AUTOMATIC_CREATION, |
| |
| |
| // Allow RequireApproximatelyNPartitions::realize() to use one of three |
| // hash partitioning schemes: 0 - HashPartitioningFunction, |
| // 1 - HashDistPartitioningFunction, 2 - Hash2PartitioningFunction. |
| SOFT_REQ_HASH_TYPE, |
| |
| // Use conservative hash2 grouping |
| OLD_HASH2_GROUPING, |
| |
| |
| COMP_INT_10, |
| COMP_INT_11, |
| COMP_INT_14, |
| COMP_INT_15, |
| COMP_INT_16, |
| COMP_INT_17, |
| COMP_INT_18, |
| COMP_INT_19, |
| COMP_INT_20, |
| COMP_INT_21, |
| COMP_INT_22, |
| COMP_INT_23, |
| COMP_INT_24, |
| COMP_INT_26, |
| COMP_INT_30, |
| COMP_INT_31, |
| COMP_INT_32, |
| COMP_INT_34, |
| COMP_INT_35, |
| COMP_INT_36, |
| COMP_INT_38, |
| COMP_INT_39, |
| COMP_INT_40, |
| COMP_INT_43, |
| COMP_INT_44, |
| COMP_INT_45, |
| COMP_INT_46, |
| COMP_INT_47, |
| COMP_INT_48, |
| COMP_INT_50, |
| COMP_INT_51, |
| COMP_INT_54, |
| COMP_INT_60, |
| COMP_INT_61, |
| COMP_INT_62, |
| COMP_INT_63, |
| COMP_INT_66, |
| COMP_INT_67, |
| COMP_INT_70, |
| COMP_INT_71, |
| COMP_INT_73, |
| COMP_INT_74, |
| COMP_INT_77, |
| COMP_INT_79, |
| COMP_INT_80, |
| COMP_INT_89, |
| COMP_INT_90, |
| COMP_INT_95, |
| COMP_INT_98, |
| COMP_INT_99, |
| |
| COMP_BOOL_100, |
| COMP_BOOL_101, |
| COMP_BOOL_102, |
| COMP_BOOL_103, |
| COMP_BOOL_104, |
| COMP_BOOL_106, |
| COMP_BOOL_107, |
| COMP_BOOL_108, |
| COMP_BOOL_110, |
| COMP_BOOL_111, |
| COMP_BOOL_112, |
| COMP_BOOL_113, |
| COMP_BOOL_115, |
| COMP_BOOL_116, |
| COMP_BOOL_117, |
| COMP_BOOL_118, |
| COMP_BOOL_119, |
| COMP_BOOL_120, |
| COMP_BOOL_122, |
| COMP_BOOL_123, |
| COMP_BOOL_124, |
| COMP_BOOL_125, |
| COMP_BOOL_126, |
| COMP_BOOL_127, |
| COMP_BOOL_128, |
| COMP_BOOL_129, |
| COMP_BOOL_130, |
| COMP_BOOL_131, |
| COMP_BOOL_132, |
| COMP_BOOL_133, |
| COMP_BOOL_134, |
| COMP_BOOL_135, |
| COMP_BOOL_136, |
| COMP_BOOL_137, |
| COMP_BOOL_138, |
| COMP_BOOL_139, |
| COMP_BOOL_140, |
| COMP_BOOL_141, |
| COMP_BOOL_144, |
| COMP_BOOL_145, |
| COMP_BOOL_147, |
| COMP_BOOL_148, |
| COMP_BOOL_149, |
| COMP_BOOL_150, |
| COMP_BOOL_151, |
| COMP_BOOL_152, |
| COMP_BOOL_153, |
| COMP_BOOL_154, |
| COMP_BOOL_155, |
| COMP_BOOL_156, |
| COMP_BOOL_158, |
| COMP_BOOL_159, |
| COMP_BOOL_160, |
| COMP_BOOL_161, |
| COMP_BOOL_162, |
| COMP_BOOL_163, |
| COMP_BOOL_164, |
| COMP_BOOL_165, |
| COMP_BOOL_166, |
| COMP_BOOL_167, |
| COMP_BOOL_168, |
| COMP_BOOL_169, |
| COMP_BOOL_171, |
| COMP_BOOL_172, |
| COMP_BOOL_173, |
| COMP_BOOL_174, |
| COMP_BOOL_175, |
| COMP_BOOL_176, |
| COMP_BOOL_177, |
| COMP_BOOL_178, |
| COMP_BOOL_183, |
| COMP_BOOL_184, |
| COMP_BOOL_185, |
| COMP_BOOL_186, |
| COMP_BOOL_187, |
| COMP_BOOL_188, |
| COMP_BOOL_189, |
| COMP_BOOL_190, |
| COMP_BOOL_191, |
| COMP_BOOL_192, |
| COMP_BOOL_193, |
| COMP_BOOL_196, |
| COMP_BOOL_197, |
| COMP_BOOL_198, |
| COMP_BOOL_199, |
| COMP_BOOL_200, |
| COMP_BOOL_201, |
| COMP_BOOL_202, |
| COMP_BOOL_203, |
| |
| COMP_BOOL_206, |
| COMP_BOOL_207, |
| COMP_BOOL_210, |
| COMP_BOOL_211, |
| COMP_BOOL_217, |
| COMP_BOOL_219, |
| |
| HIST_OPTIMISTIC_CARD_OPTIMIZATION, |
| |
| |
| // System IDentity buffer specification |
| GEN_SID_BUFFER_SIZE, |
| GEN_SID_NUM_BUFFERS, |
| |
| // Partial Hash GroupBy. |
| GEN_HGBY_PARTIAL_GROUP_FLUSH_THRESHOLD, |
| GEN_HGBY_PARTIAL_GROUP_ROWS_PER_CLUSTER, |
| |
| |
| ALLOW_DP2_ROW_SAMPLING, |
| |
| INCORPORATE_SKEW_IN_COSTING, |
| TOTAL_RESOURCE_COSTING, |
| |
| |
| |
| USE_PARALLEL_FOR_NUM_PARTITIONS, |
| |
| EXE_DIAGNOSTIC_EVENTS, // Sends various executor diagnostics to EMS |
| |
| SHARE_TEMPLATE_CACHED_PLANS, |
| |
| |
| // to enable special mode 1. Currently enabled for release. |
| MODE_SPECIAL_1, |
| |
| SESSION_ID, |
| |
| SESSION_IN_USE, |
| |
| VOLATILE_SCHEMA_IN_USE, |
| |
| VOLATILE_CATALOG, |
| |
| LAST0_MODE, |
| |
| OUTPUT_DATE_FORMAT, |
| |
| // implicit upd stats on volatile table is only done if the number |
| // of inserted rows exceed this threshold. |
| IMPLICIT_UPD_STATS_THRESHOLD, |
| |
| // POS attributes for temporary/volatile tables |
| POS_NUM_OF_TEMP_TABLE_PARTNS, |
| POS_TEMP_TABLE_SIZE, |
| |
| HIST_DEFAULT_NUMBER_OF_INTERVALS, |
| |
| |
| SESSION_USERNAME, |
| |
| // For DBLimits project |
| DP2_CACHE_8K_BLOCKS , |
| DP2_CACHE_16K_BLOCKS, |
| DP2_CACHE_32K_BLOCKS, |
| |
| // Enable DBLimits functionality |
| CAT_LARGE_BLOCKS_LARGE_KEYS, |
| |
| GEN_DBLIMITS_LARGER_BUFSIZE, |
| |
| |
| |
| FORCE_PARALLEL_INSERT_SELECT, |
| |
| // For stored procedure result sets |
| GEN_UDRRS_BUFFER_SIZE, |
| GEN_UDRRS_NUM_BUFFERS, |
| GEN_UDRRS_SIZE_DOWN , |
| GEN_UDRRS_SIZE_UP , |
| |
| FAST_DELETE, |
| |
| ALLOW_UNEXTERNALIZED_MAINTAIN_OPTIONS, |
| |
| EXE_MEMORY_AVAILABLE_IN_MB, // Mem size (MB) in ESP available for BMOs |
| |
| EXE_MEMORY_FOR_PARTIALHGB_IN_MB, // Mem size (MB) in ESP available |
| // for partial hash groupby. |
| SSD_BMO_MAX_MEM_THRESHOLD_IN_MB, |
| |
| NAR_DEPOBJ_ENABLE , |
| |
| // For Adaptive Segmentation (aka Virtual Segmentation, Adaptive |
| // parallelism control) |
| |
| AFFINITY_VALUE, |
| CYCLIC_ESP_PLACEMENT, |
| DEFAULT_DEGREE_OF_PARALLELISM, |
| USE_OPERATOR_MAX_FOR_DOP, |
| NSK_DBG_GENERIC, |
| MEMORY_UNIT_ESP, |
| WORK_UNIT_ESP, |
| WORK_UNIT_ESP_DATA_COPY_COST, |
| |
| |
| |
| |
| MV_REFRESH_MDELTA_MAX_DELTAS_THRESHOLD, |
| MV_REFRESH_MDELTA_MAX_JOIN_SIZE_FOR_SINGLE_PHASE, |
| MV_REFRESH_MDELTA_MIN_JOIN_SIZE_FOR_SINGLE_PRODUCT_PHASE, |
| MV_REFRESH_MDELTA_PHASE_SIZE_FOR_MID_RANGE, |
| |
| // Enable 'ON' or disable 'OFF' merge join overflow |
| MJ_OVERFLOW, |
| |
| SKEW_EXPLAIN, // embed skew-buster plan details in EXPLAIN output |
| SKEW_ROWCOUNT_THRESHOLD, // minimal row count for skew-buster to be active |
| |
| // Percentage of BMO memory quota "equal share" used by merge join. |
| MJ_BMO_QUOTA_PERCENT, |
| |
| SKEW_SENSITIVITY_THRESHOLD, // skew threshold value |
| |
| // Enable use of internal sorting/grouping for Update Stats instead of doing |
| // it in a query. |
| USTAT_INTERNAL_SORT, |
| |
| // Control percentage of available physical memory to be used by Update |
| // Statistics for internal sort. |
| USTAT_IS_MEMORY_FRACTION, |
| // For Simple Cost Model |
| SIMPLE_COST_MODEL, |
| |
| // Enable creation of intervals by Update Stats representing significant |
| // gaps between values. |
| USTAT_PROCESS_GAPS, |
| |
| // Multiply this value by the average gap area to get the gap areas size threshold |
| // for creating a gap interval. |
| USTAT_GAP_SIZE_MULTIPLIER, |
| |
| // Percentage of intervals to be used for representing gaps. |
| USTAT_GAP_PERCENT, |
| |
| // Create a separate interval in a column's histogram for any distinct value |
| // that has a frequency exceeding this percentage of the total row count for |
| // the table. |
| USTAT_FREQ_SIZE_PERCENT, |
| |
| MAX_SKEW_VALUES_DETECTED, |
| |
| CREATE_OBJECTS_IN_METADATA_ONLY, |
| |
| |
| // ON/OFF flag to invoke ghost objects |
| ALLOW_GHOST_OBJECTS, |
| |
| //Sort to use memory quota system. |
| SORT_MEMORY_QUOTA_SYSTEM, |
| |
| // New charsets |
| INPUT_CHARSET, |
| ISO_MAPPING, |
| DEFAULT_CHARSET, |
| |
| // controls rounding of how arith and cast results. |
| // 0: truncate(no rounding) |
| // 1: round half up (values .5 and up are rounded to nearest high digit). |
| // 2: round half even (values > .5 rounded up, .5 rounded to nearest even |
| // digit) |
| ROUNDING_MODE, |
| |
| // if set, tables are not closed at the end of a query. This allows |
| // the same open to be reused for the next query which accesses that |
| // table. |
| // If the table is shared opened by multiple openers from the same |
| // process, then the share count is decremented until it reaches 1. |
| // At that time, the last open is preserved so it could be reused. |
| // Tables are closed if user id changes. |
| REUSE_OPENS, |
| |
| |
| // Self-referencing updates. |
| BLOCK_TO_PREVENT_HALLOWEEN, |
| R2_HALLOWEEN_SUPPORT, |
| // Adding for RangeSpec transformation of selection predicates. |
| RANGESPEC_TRANSFORMATION, |
| HIST_ASSUME_INDEPENDENT_REDUCTION, |
| HIST_USE_SAMPLE_FOR_CARDINALITY_ESTIMATION , |
| |
| EXE_PARALLEL_DDL, |
| |
| ALLOW_MULTIDEGREE_SUBQ_IN_SELECTLIST, |
| ALLOW_SUBQ_IN_SET, |
| ALLOW_RENAME_OF_MVF_OR_SUBQ, |
| |
| |
| NSK_DBG_SHOW_TREE_AFTER_SEMANTIC_QUERY_OPTIMIZATION, |
| SUBQUERY_UNNESTING, |
| SUBQUERY_UNNESTING_P2, |
| |
| // Defaults for UDF routine costing |
| // The CPU cost values will be taken as milliseconds |
| // The IO cost values are used as the count of IOs per row |
| // The MSG cost values are used as the count of msgs per row |
| // The FANOUT cost value is 1 for a Scalar Routine and higher for |
| // a TableValued UDF. It should be thought of reflecting how many |
| // rows the routine can return for each row passed in (maximum). |
| // The UEC value is an average UEC for a routine. For scalarUDFs it |
| // is usually 1. |
| |
| INITIAL_UDF_CPU_COST, |
| INITIAL_UDF_IO_COST, |
| INITIAL_UDF_MSG_COST, |
| NORMAL_UDF_CPU_COST, |
| NORMAL_UDF_IO_COST, |
| NORMAL_UDF_MSG_COST, |
| UDF_FANOUT, |
| ROUTINE_DEFAULT_UEC, |
| |
| // TableMappingUDF Defaults |
| TMUDF_CARDINALITY_FACTOR, |
| TMUDF_LEAF_CARDINALITY, |
| |
| UDF_SUBQ_IN_AGGS_AND_GBYS, |
| |
| USTAT_FETCHCOUNT_ACTIVE, |
| |
| SEMIJOIN_TO_INNERJOIN_INNER_ALLOWANCE, |
| SEMIJOIN_TO_INNERJOIN_REDUCTION_RATIO, |
| SEMIJOIN_TO_INNERJOIN_TRANSFORMATION, |
| |
| POS_NUM_DISK_POOLS, |
| POS_DISKS_IN_SEGMENT, |
| |
| // query complexity threshold for query caching to match constants |
| // in parameterization of equality predicates |
| MATCH_CONSTANTS_OF_EQUALITY_PREDICATES, |
| // Memory limit per Esp for BMOs |
| BMO_MEMORY_SIZE, |
| |
| |
| // Compress plan fragments downloaded to ESPs (ESP and DP2 frags) |
| FRAG_COMPRESSION_THRESHOLD, |
| |
| |
| // Display only externalized information in SHOWDDL if set to EXTERNAL |
| SHOWDDL_DISPLAY_FORMAT, |
| |
| // Generate leaner expressions in all fragments |
| GEN_LEANER_EXPRESSIONS, |
| |
| |
| |
| POS_DISK_POOL, |
| |
| // |
| // Internal options for BMOs |
| // |
| EXE_BMO_SET_BUFFERED_WRITES, |
| // Disallow overflow (in HJ, SORT) -- thus Virtual Memory is used up to its |
| // limits (may involve costly swapping) |
| EXE_BMO_DISABLE_OVERFLOW, |
| |
| // Disable the mechanism for triggering overflow early based on hints |
| // given by the compiler (currently used only by SORT and (non unique) HJ). |
| EXE_BMO_DISABLE_CMP_HINTS_OVERFLOW_HASH, // for the Hash Operators |
| EXE_BMO_DISABLE_CMP_HINTS_OVERFLOW_SORT, // for Sort |
| |
| // Minimal memory size of a BMO before checking for system memory pressure |
| // and compiler hints for early overflow (to avoid "thrashing" at low mem) |
| EXE_BMO_MIN_SIZE_BEFORE_PRESSURE_CHECK_IN_MB, |
| |
| // The following 3 are only for testing overflow |
| EXE_TEST_FORCE_CLUSTER_SPLIT_AFTER_MB, |
| EXE_TEST_FORCE_HASH_LOOP_AFTER_NUM_BUFFERS, |
| EXE_TEST_HASH_FORCE_OVERFLOW_EVERY, |
| |
| // Force HJ to use at least that many clusters |
| EXE_HJ_MIN_NUM_CLUSTERS, |
| // Override the memory quota system; set a memory limit per each BMO |
| // (including cases of a single BMO in a fragment, and BMOs in the master). |
| // Units are in MegaBytes; zero (default) means that this CQD is OFF !! |
| EXE_MEM_LIMIT_PER_BMO_IN_MB, |
| |
| // Disables use of ProbeCache |
| NESTED_JOIN_CACHE, |
| |
| // Buffer, cache, and queue sizing for the ProbeCache operator. |
| GEN_PROBE_CACHE_NUM_INNER, |
| GEN_PROBE_CACHE_NUM_ENTRIES, |
| GEN_PROBE_CACHE_SIZE_DOWN, |
| GEN_PROBE_CACHE_SIZE_UP, |
| |
| // SQL/MX Compiler/Optimizer Memory Monitor. |
| MEMORY_MONITOR, |
| MEMORY_MONITOR_IN_DETAIL, |
| MEMORY_MONITOR_LOGFILE, |
| MEMORY_MONITOR_LOG_INSTANTLY, |
| MEMORY_MONITOR_AFTER_TASKS, |
| MEMORY_MONITOR_TASK_INTERVAL, |
| MEMORY_USAGE_SAFETY_NET, |
| MEMORY_USAGE_OPT_PASS_FACTOR, |
| MEMORY_USAGE_NICE_CONTEXT_FACTOR, |
| |
| NAR_DEPOBJ_ENABLE2, |
| |
| // Allows update of clustering key or unique index column. |
| UPDATE_CLUSTERING_OR_UNIQUE_INDEX_KEY, |
| |
| // Cost Adjustment factors for obtain a robust parallel groupby |
| // plan i.e. a partial grouping plan |
| ROBUST_PAR_GRPBY_EXCHANGE_FCTR, |
| ROBUST_PAR_GRPBY_LEAF_FCTR, |
| |
| // Histogram boundary value maximum length. |
| USTAT_MAX_CHAR_BOUNDARY_LEN, |
| |
| // When update statistics computes UECs on character columns or |
| // creates a sample table, it limits them to this size in bytes. |
| USTAT_MAX_CHAR_COL_LENGTH_IN_BYTES, |
| |
| // Maximum number of MC histograms to create for any one MC key. |
| USTAT_NUM_MC_GROUPS_FOR_KEYS, |
| |
| // maximum precision that can be specified in a NUMERIC datatype. |
| // Syntax: NUMERIC(p,s), 'p' is the precision, max value defined |
| // by this default. Enforced in parser. |
| // Same thing for max precision of a number literal. |
| MAX_NUMERIC_PRECISION_ALLOWED, |
| |
| // If set to ON, input and output of data from/to user applications |
| // will be done in bignum format. |
| // If set to OFF, input/output will be done with max precision of 18 (same as |
| // from pre-bignum days). |
| // An overflow error will be returned if data would not fit within the |
| // max precision of 18. |
| // If set of SYSTEM (the default), then bignum IO will be done if the input |
| // or output value is a bignum and was derived from a real bignum value |
| // entered by user(bignum literal, bignum column, param...). |
| BIGNUM_IO, |
| |
| IS_DB_TRANSPORTER, |
| |
| // Allow for the setting of the row count in a long running operation |
| MULTI_COMMIT_SIZE, |
| |
| // caller is sqlci |
| IS_SQLCI, |
| |
| // caller is nvci (scripts) process |
| NVCI_PROCESS, |
| |
| // if this is set, then find a suitable key among all the columns of |
| // a volatile table. |
| // If this is not set, and there is no user specified primary key or |
| // store by clause, then make the first column of the volatile table |
| // to be the clustering key. |
| VOLATILE_TABLE_FIND_SUITABLE_KEY, |
| |
| |
| // Allows pcodes for varchars |
| VARCHAR_PCODE, |
| |
| |
| // if set to ON, then isolation level (read committed, etc) could be |
| // specified in a regular CREATE VIEW (not a create MV) statement. |
| ALLOW_ISOLATION_LEVEL_IN_CREATE_VIEW, |
| |
| // For ESP exchanges introduced in the generator. |
| UNOPTIMIZED_ESP_BUFFER_SIZE_DOWN, |
| UNOPTIMIZED_ESP_BUFFER_SIZE_UP, |
| |
| // For special initial queue sizings for ONLJ |
| GEN_ONLJ_LEFT_CHILD_QUEUE_UP, |
| GEN_ONLJ_LEFT_CHILD_QUEUE_DOWN, |
| GEN_ONLJ_RIGHT_SIDE_QUEUE_UP, |
| GEN_ONLJ_RIGHT_SIDE_QUEUE_DOWN, |
| GEN_ONLJ_SET_QUEUE_RIGHT, |
| GEN_ONLJ_SET_QUEUE_LEFT, |
| |
| |
| |
| SORT_REC_THRESHOLD, |
| SORT_MERGE_BUFFER_UNIT_56KB, |
| |
| |
| PARTIAL_SORT_ADJST_FCTR, |
| SCRATCH_MAX_OPENS_HASH, |
| SCRATCH_MAX_OPENS_SORT, |
| SCRATCH_DISK_LOGGING, |
| SCRATCH_MGMT_OPTION, |
| SCRATCH_PREALLOCATE_EXTENTS, |
| SCRATCH_IO_BLOCKSIZE_SORT_MAX, |
| SCRATCH_IO_VECTOR_SIZE_HASH, |
| SCRATCH_IO_VECTOR_SIZE_SORT, |
| |
| OVERRIDE_GENERATED_IDENTITY_VALUES, |
| |
| ELIMINATE_REDUNDANT_JOINS, |
| MULTI_PASS_JOIN_ELIM_LIMIT, |
| // Used to modify the timeout for the internal maintain control |
| // information table |
| |
| MAINTAIN_CONTROL_TABLE_TIMEOUT, |
| |
| //OCB Cost adjustment factor |
| OCB_COST_ADJSTFCTR, |
| |
| |
| // Flags for enabling/disabling optimizations within advanced PCODE |
| // optimization framework |
| PCODE_OPT_FLAGS, |
| |
| USTAT_SAMPLE_PERCENT_DIFF, // percentage diff allowed to use old sample in FetchCount(). |
| USTAT_DEBUG_TEST, // settings for testing ustat, normally empty. |
| |
| // Disallow/Allow left joins in MultiJoin framework |
| LEFT_JOINS_SPOIL_JBB, |
| |
| // Disallow/Allow semi and anti-semi joins in MultiJoin framework |
| SEMI_JOINS_SPOIL_JBB, |
| |
| // Disallow/Allow full outer joins in MultiJoin framework |
| FULL_OUTER_JOINS_SPOIL_JBB, |
| |
| // Disallow/Allow TSJs in MultiJoin framework |
| TSJS_SPOIL_JBB, |
| |
| // Disallow/Allow routine joins in MultiJoin framework |
| ROUTINE_JOINS_SPOIL_JBB, |
| |
| |
| |
| |
| |
| // Specify the node |
| UNIQUE_HASH_JOINS, |
| UNIQUE_HASH_JOIN_MAX_INNER_SIZE, |
| UNIQUE_HASH_JOIN_MAX_INNER_SIZE_PER_INSTANCE, |
| UNIQUE_HASH_JOIN_MAX_INNER_TABLES, |
| |
| // catalog where maintain database is maintained |
| MAINTAIN_CATALOG, |
| |
| |
| |
| // turn on and off lean olt query optimizations. Default is OFF. |
| OLT_QUERY_OPT_LEAN, |
| |
| // Specify the file that logs certain MXCMP errors. |
| CMP_ERR_LOG_FILE, |
| |
| |
| // override the source schema with the target schema |
| // SOURCE_SCHEMA:TARGET_SCHEMA |
| OVERRIDE_SCHEMA, |
| |
| // To handle dynamic resizable hash-table |
| EXE_HGB_INITIAL_HT_SIZE, |
| |
| EXE_NUM_CONCURRENT_SCRATCH_IOS, |
| |
| // in case of an error during query processing, retry the query if |
| // that error is set as a retryable error. |
| // A retry (AQR) would prepare, execute and fetch, depending on which |
| // state the query was in. |
| AUTO_QUERY_RETRY, |
| |
| // return warnings about aqr. |
| // If OFF, no warning is returned. |
| // If ON, warnings are returned for retries due to external events. |
| // If ALL, warnings are returned due to both external and |
| // internal (query cache recompile) events. |
| AUTO_QUERY_RETRY_WARNINGS, |
| |
| |
| DISABLE_READ_ONLY, |
| |
| // perform substring transformation (ICBC PoC) |
| SUBSTRING_TRANSFORMATION, |
| |
| |
| // by default, a primary key or unique constraint must be non-nullable. |
| // This default, if set, allows them to be nullable. |
| // The default value is OFF. |
| ALLOW_NULLABLE_UNIQUE_KEY_CONSTRAINT, |
| |
| // if set to ON, then ORDER BY could be |
| // specified in a regular CREATE VIEW (not a create MV) statement. |
| ALLOW_ORDER_BY_IN_CREATE_VIEW, |
| |
| |
| EXE_LOG_RETRY_IPC, |
| |
| ALLOW_IMPLICIT_CHAR_CASTING, |
| |
| IN_MEMORY_OBJECT_DEFN, |
| |
| // Update statistics command updates the histogram tables of the schema |
| // where the table is created. |
| // |
| // This default points to the schema whose histogram tables, instead of |
| // the original table's histogram tables, are to be updated during an |
| // 'update statistics' command. |
| HISTOGRAMS_SCHEMA, |
| |
| // specifying a pre-existing file with sampled rows for update stats |
| USTAT_SAMPLE_TABLE_NAME, |
| |
| // Can be used to specify the name of the persistent sample table created |
| // by ustat. Used for testing only, to provide a known name that allows the |
| // sample table to be accessed by name after creation in a test script. |
| // Must take care to change this value (or restore default), before issuing |
| // a statement that creates a sample for another table, or the name will be |
| // duplicated. The value used must be an UNQUALIFIED table name. |
| USTAT_SAMPLE_TABLE_NAME_CREATE, |
| |
| // By default (ON), distribute the metadata tables across all |
| // segments. If set to LOCAL_NODE, distribute metadata tables |
| // across volumes in the local segment when the first schema is |
| // created. |
| // If set to OFF, place all metadata tables on the same volume. |
| CAT_DISTRIBUTE_METADATA, |
| |
| |
| |
| // Pubsub holdable cursor is not closed on rollback by default |
| // But, ANSI standard expects the holdable cursor to be closed on rollback |
| PSHOLD_CLOSE_ON_ROLLBACK, |
| // To ensure the Pubsub holdable cursor is fetched after commit in case of |
| // positioned update/deletes. Pubsub holdable cursor is not checked for this |
| // condition by default |
| PSHOLD_UPDATE_BEFORE_FETCH, |
| |
| |
| |
| // Update statistics automation CQDs to allow for automation settings. |
| USTAT_AUTO_READTIME_UPDATE_INTERVAL, |
| USTAT_AUTO_FOR_VOLATILE_TABLES, |
| |
| // Use a compressed data format internally rather than current |
| // SQLARK_EXPLODED_FORMAT |
| COMPRESSED_INTERNAL_FORMAT, |
| |
| |
| // Enables possibility of performing a bulk move of nullable column values |
| // and variable length column values. |
| BULK_MOVE_NULL_VARCHAR, |
| |
| |
| // display detailed MV information. Default is OFF |
| MV_DUMP_DEBUG_INFO, |
| |
| // tracking compilers specific defaults |
| COMPILER_TRACKING_INTERVAL, |
| COMPILER_TRACKING_LOGFILE, |
| COMPILER_TRACKING_LOGTABLE, |
| |
| // allow the frequency of the 1st and the 2nd mostly occurred values to |
| // be used in max cardinality and local predicate evaluation. |
| HIST_USE_HIGH_FREQUENCY_INFO, |
| USTAT_SHOW_MFV_INFO, |
| |
| // These CQDs are reserved for NCM. These are mostly used for |
| // internal testing, turning on/off features for debugging, and for tuning. |
| // In normal situations, these will not be externalized in keeping |
| // with the very few CQDs philosophy of NCM. |
| // These are applicable only in conjunction with SIMPLE_COST_MODEL 'on'. |
| NCM_CACHE_SIZE_IN_BLOCKS, |
| NCM_COSTLIMIT_FACTOR, |
| NCM_ESP_FIXUP_WEIGHT, |
| NCM_ESP_STARTUP_FIX, |
| NCM_EXCH_MERGE_FACTOR, |
| NCM_EXCH_NDCS_FIX, |
| NCM_HGB_OVERFLOW_COSTING, |
| NCM_HJ_OVERFLOW_COSTING, |
| NCM_MAP_CPU_FACTOR, |
| NCM_MAP_MSG_FACTOR, |
| NCM_MAP_RANDIO_FACTOR, |
| NCM_MAP_SEQIO_FACTOR, |
| NCM_MJ_TO_HJ_FACTOR, |
| NCM_NJ_PC_THRESHOLD, |
| // ------------------------------------------------------------------------- |
| // Threshold above which NJ partial order probe is treated as random order |
| // ------------------------------------------------------------------------- |
| NCM_NJ_PROBES_MAXCARD_FACTOR, |
| NCM_NJ_SEQIO_FIX, |
| NCM_NUM_SORT_RUNS, |
| NCM_PAR_GRPBY_ADJ, |
| NCM_PRINT_ROWSIZE, |
| NCM_RAND_IO_ROWSIZE_FACTOR, |
| NCM_RAND_IO_WEIGHT, |
| NCM_SEQ_IO_ROWSIZE_FACTOR, |
| NCM_SEQ_IO_WEIGHT, |
| NCM_SERIAL_NJ_FACTOR, |
| NCM_SGB_TO_HGB_FACTOR, |
| NCM_SORT_OVERFLOW_COSTING, |
| NCM_TUPLES_ROWSIZE_FACTOR, |
| |
| // These CQDs are for Multi-Fragment ESPs |
| ESP_MULTI_FRAGMENTS, |
| ESP_NUM_FRAGMENTS, |
| ESP_MULTI_FRAGMENT_QUOTA_VM, |
| EXE_SINGLE_BMO_QUOTA, // Quota system applys to fragments with single BMO |
| |
| // Fudge factor for tupleList under NJ cost estimation |
| CPUCOST_NJ_TUPLST_FF, |
| |
| //////////////////////////////////////////////////////////////////////// |
| // this cqd returns showddl output for validate or create phase of |
| // a replicate command. |
| // For validate, output is returned without any generated or other names |
| // that can vary from one system to another (like constraint name, or |
| // location clause, or partition name). |
| // For create, output is returned for 'some' generated names, like that |
| // of system created implicit indices or constraints. |
| // Used by bulk replicator to validate that the ddl on source |
| // system is exactly the same as that on the target system. This |
| // validation is done by matching showddl output of the table on the source |
| // and target systems. |
| // Also used by bulk replicator to create the source ddl on the target |
| // system. |
| // |
| // Value of 0: this cqd not specified |
| // Value of 1: return object showddl(base table, internal system indices) |
| // in 'validate' format. |
| // Value of 2: return object showddl(base table, internal system indices) |
| // in 'create' format. |
| // Value of 3: return object showddl(base table, all dependent indices) |
| // in 'validate' format. |
| // Value of 4: return object showddl(base table, all dependent indices) |
| // in 'create' format. |
| // Value of 5: return all dependent objects in 'original' format. |
| SHOWDDL_FOR_REPLICATE, |
| |
| |
| |
| REPLICATE_ALLOW_ROLES, |
| |
| |
| COMP_BOOL_226, // enable UNLOAD feature |
| |
| OR_PRED_TO_JUMPTABLE, |
| OR_PRED_TO_SEMIJOIN, |
| OR_PRED_TO_SEMIJOIN_TABLE_MIN_SIZE, |
| OR_PRED_TO_SEMIJOIN_PROBES_MAX_RATIO, |
| |
| |
| // Total mem size (MB) for a query |
| BMO_MEMORY_LIMIT_PER_NODE_IN_MB, |
| |
| // lower-bound memory limit for BMOs |
| BMO_MEMORY_LIMIT_LOWER_BOUND_HASHJOIN, |
| EXE_MEMORY_LIMIT_LOWER_BOUND_MERGEJOIN, |
| BMO_MEMORY_LIMIT_LOWER_BOUND_HASHGROUPBY , |
| BMO_MEMORY_LIMIT_LOWER_BOUND_SORT , |
| |
| // lower-bound memory limit for nBMOs |
| EXE_MEMORY_LIMIT_LOWER_BOUND_SEQUENCE , |
| EXE_MEMORY_LIMIT_LOWER_BOUND_EXCHANGE , |
| |
| // Limit CPU time a query can use in master, ESP, or DP2. Unit is seconds. |
| QUERY_LIMIT_SQL_PROCESS_CPU, |
| QUERY_LIMIT_SQL_PROCESS_CPU_DEBUG, |
| QUERY_LIMIT_SQL_PROCESS_CPU_XPROD, |
| |
| MV_LOG_CLEANUP_SAFETY_FACTOR, |
| MV_LOG_CLEANUP_USE_MULTI_COMMIT, |
| COMP_BOOL_221, |
| OVERFLOW_MODE, |
| |
| |
| POS_TEST_NUM_NODES, |
| |
| // for default/public schema settings |
| PUBLIC_SCHEMA_NAME, |
| DEFAULT_SCHEMA_NAMETYPE, |
| LDAP_USERNAME, |
| |
| // for schema access control |
| DEFAULT_SCHEMA_ACCESS_ONLY, |
| |
| |
| |
| // To control ESP exchange memory usage |
| GEN_EXCHANGE_MAX_MEM_IN_KB, |
| GEN_EXCHANGE_MSG_COUNT, |
| |
| // Enable PA-DP2 affinity |
| |
| // enable explain for ddl and ctas |
| DDL_EXPLAIN, |
| |
| |
| // the number of ESPs that will be dealing with skew in OCR nested joins |
| NESTED_JOINS_ANTISKEW_ESPS, |
| |
| //ANSI NULL SEMANTICS CQD |
| // hash anti semi join optimization project |
| NOT_IN_ANSI_NULL_SEMANTICS, |
| NOT_IN_OPTIMIZATION, |
| NOT_IN_OUTER_OPTIMIZATION, |
| NOT_IN_SKEW_BUSTER_OPTIMIZATION, |
| |
| // QUERY STRATEGIZER RELATED |
| QUERY_STRATEGIZER, |
| EXPLAIN_STRATEGIZER_PARAMETERS, |
| |
| CASCADED_GROUPBY_TRANSFORMATION, |
| |
| // Use large queues on RHS of Flow/Nested Join when appropriate. |
| USE_LARGE_QUEUES , |
| |
| //OLAP CQDs |
| //GEN_SEQFUNC_OLAP_BUFFER_SIZE, |
| OLAP_BUFFER_SIZE, |
| OLAP_MAX_NUMBER_OF_BUFFERS, |
| OLAP_CAN_INVERSE_ORDER, |
| OLAP_MAX_FIXED_WINDOW_FRAME, |
| //used mainly for testing, ignored when set to 0 |
| //specifies the maximum number of rows per olap buffer |
| OLAP_MAX_ROWS_IN_OLAP_BUFFER, |
| //aplies for fixed window-- number of additional oplap buffers |
| //to allocate on top of the minumum numbers |
| OLAP_MAX_FIXED_WINDOW_EXTRA_BUFFERS, |
| |
| // create frequent value list for tuple list if the elements in the list are |
| // below this threshold |
| HIST_TUPLE_FREQVAL_LIST_THRESHOLD, |
| |
| // Gen Sol:10-100408-9393 |
| ALLOW_RISKY_UPDATE_WITH_NO_ROLLBACK, |
| |
| // used for controlling multi-join transformation level. |
| ASYMMETRIC_JOIN_TRANSFORMATION, |
| |
| // CLI caller to redrive CTAS(create table as) for child query monitoring |
| REDRIVE_CTAS, |
| |
| // type a CASE expression or ValueIdUnion as varchar if its leaves |
| // are of type CHAR of unequal length |
| TYPE_UNIONED_CHAR_AS_VARCHAR, |
| |
| // enable special features to be used for compatability with certain vendors. |
| MODE_SPECIAL_4, |
| |
| // toggle display system grants for SHOWDDL |
| SHOWDDL_DISPLAY_PRIVILEGE_GRANTS, |
| |
| // ***** END REGULAR DEFAULTS ********************************* |
| |
| // Add regular default values (CQDs) before this line. |
| // Add session defaults below this line. |
| |
| // these defaults are set using SET SESSION DEFAULT statement. |
| // They cannot be set using a CQD and are not looked at by mxcmp. |
| // But they can be inserted into |
| // the defaults table which is read by executor at runtime. |
| // ****** BEGIN SET SESSION DEFAULTs *********************************** |
| ALTPRI_ESP, |
| ALTPRI_MASTER, |
| AQR_ENTRIES, |
| ESP_ASSIGN_DEPTH, |
| ESP_FIXUP_PRIORITY_DELTA, |
| ESP_PRIORITY, |
| ESP_PRIORITY_DELTA, |
| ESP_IDLE_TIMEOUT, |
| MASTER_PRIORITY, |
| MASTER_PRIORITY_DELTA, |
| MXCMP_PRIORITY, |
| MXCMP_PRIORITY_DELTA, |
| // ****** END SET SESSION DEFAULTs *********************************** |
| |
| USTAT_AUTO_EMPTYHIST_TWO_TRANS, |
| USTAT_AUTO_MISSING_STATS_LEVEL, |
| MAX_EXPRS_USED_FOR_CONST_FOLDING, |
| HIST_FETCHCOUNT_SCRATCH_VOL_THRESHOLD, |
| |
| EXPLAIN_DISPLAY_FORMAT, |
| HIST_NUM_ADDITIONAL_DAYS_TO_EXTRAPOLATE, |
| NCM_PAR_ADJ_FACTOR, |
| |
| |
| SAP_KEY_NJ_TABLE_SIZE_THRESHOLD, |
| SAP_PREFER_KEY_NESTED_JOIN, |
| SAP_TUPLELIST_SIZE_THRESHOLD, |
| |
| SHOWCONTROL_SHOW_SUPPORT, |
| HIST_FREQ_VALS_NULL_FIX, |
| HIST_MERGE_FREQ_VALS_FIX, |
| HIST_SKEW_COST_ADJUSTMENT, |
| USTAT_AUTO_MC_MAX_WIDTH, |
| USTAT_USE_INTERNAL_SORT_FOR_MC, |
| USTAT_IS_IGNORE_UEC_FOR_MC, |
| |
| |
| NSK_DBG_QUERY_LOGGING_ONLY, |
| RISK_PREMIUM_SERIAL_SCALEBACK_MAXCARD_THRESHOLD, |
| |
| CAT_DEFAULT_COMPRESSION, |
| COMPRESSION_TYPE, |
| |
| OCR_FOR_SIDETREE_INSERT, |
| UNC_PROCESS, |
| USTAT_RETRY_DELAY, |
| USTAT_RETRY_LIMIT, |
| USTAT_RETRY_NEC_COLS_LIMIT, |
| REPLICATE_IO_VERSION, |
| COMPRESSED_INTERNAL_FORMAT_ROOT_DOES_CONVERSION, |
| COMPRESSED_INTERNAL_FORMAT_BULK_MOVE, |
| |
| OR_PRED_ADD_BLOCK_TO_IN_LIST, |
| OR_PRED_KEEP_CAST_VC_UCS2, |
| |
| // SeaMonster messaging |
| SEAMONSTER, |
| |
| CAT_LIBRARY_PATH_RELATIVE, |
| |
| MDAM_UNDER_NJ_PROBES_THRESHOLD, |
| |
| MDOP_CPUS_PENALTY, |
| MDOP_CPUS_SOFT_LIMIT, |
| MDOP_MEMORY_PENALTY, |
| SORT_INTERMEDIATE_SCRATCH_CLEANUP, |
| |
| //CQDs to control CIF for HJ,HGB,Sort and Exchange operators |
| COMPRESSED_INTERNAL_FORMAT_BMO, |
| DISPLAY_DIVISION_BY_COLUMNS, |
| MTD_GENERATE_CC_PREDS, |
| GEN_HSHJ_MIN_MAX_OPT, |
| |
| COMPRESSED_INTERNAL_FORMAT_MIN_ROW_SIZE, |
| COMPRESSED_INTERNAL_FORMAT_ROW_SIZE_ADJ, |
| COMPRESSED_INTERNAL_FORMAT_BMO_AFFINITY, |
| COMPRESSED_INTERNAL_FORMAT_EXPLAIN, |
| COMPRESSED_INTERNAL_FORMAT_DEFRAG_RATIO, |
| |
| |
| // Enable the query invalidation processing in catman |
| CAT_ENABLE_QUERY_INVALIDATION, |
| |
| |
| MC_SKEW_SENSITIVITY_THRESHOLD, // multi-column skew threshold value |
| |
| MTD_MDAM_NJ_UEC_THRESHOLD, // the threshold of the UEC of predicate-less |
| // leading key columns of a MTD table, above |
| // which the MTD table can be the inner table of |
| // NJ. |
| // this should be used for testing only. DML should not be executed on |
| // non-audited tables |
| ALLOW_DML_ON_NONAUDITED_TABLE, |
| |
| CAT_ALLOW_NEW_FEATUREX, // to turn on and off features |
| |
| DOP_REDUCTION_ROWCOUNT_THRESHOLD, // the threshold below which dop can |
| // be reduced |
| |
| MC_SKEW_INNER_BROADCAST_THRESHOLD, // MC-SB inner side broadcast threshold |
| // in bytes |
| |
| NESTED_JOIN_CACHE_PREDS, |
| //Temporary fix to bypass volatile schema name checking for non-table objects - ALM Case#4764 |
| BYPASS_CHECK_FOR_VOLATILE_SCHEMA_NAME, |
| |
| //-------------------------------------------------------------------------- |
| // Query Invalidation - Debug/Regression test CQDs |
| //-------------------------------------------------------------------------- |
| QI_PATH, |
| QI_PRIV, |
| |
| // The switch to control whether N2J (O(n^2) open) nested joins should |
| // be generated. |
| NESTED_JOINS_NO_NSQUARE_OPENS, |
| |
| NESTED_JOINS_OCR_GROUPING, // Hans' fix to check mapped left and right part func. |
| |
| NESTED_JOINS_KEYLESS_INNERJOINS, // When ON, optimistically allow potential keyless joins |
| // when the inner contains joins |
| |
| MERGE_JOIN_ACCEPT_MULTIPLE_NJ_PROBES, // merge join accepts multiple NJ probes |
| |
| |
| // queries coming in from mariaDB interface |
| MARIAQUEST_PROCESS, |
| |
| //fast extract related |
| FAST_EXTRACT_DIAGS, |
| FAST_EXTRACT_IO_BUFFERS, |
| FAST_EXTRACT_IO_TIMEOUT_SEC, |
| |
| |
| REPLICATE_COMPRESSION_TYPE, // Compression type to be used when replicating the DDL |
| // only reorg if ReorgCheck indicates that a reorg is needed. |
| // explore fully covered NJ plan |
| NESTED_JOINS_FULL_INNER_KEY, |
| NESTED_JOINS_CHECK_LEADING_KEY_SKEW, |
| NESTED_JOINS_LEADING_KEY_SKEW_THRESHOLD, |
| |
| // This CQD controls the display of detailed interval information for MC histograms |
| // using showstats output |
| USTAT_SHOW_MC_INTERVAL_INFO, |
| |
| // query must be this old to be canceled if only PID is specified |
| CANCEL_MINIMUM_BLOCKING_INTERVAL, |
| |
| // propagate child available Btree indexes from child for arity 1 ops |
| GA_PROP_INDEXES_ARITY_1, |
| // FAst extract Routines |
| GEN_FE_BUFFER_SIZE, |
| GEN_FE_NUM_BUFFERS, |
| GEN_FE_SIZE_DOWN, |
| GEN_FE_SIZE_UP, |
| // WMS query monitoring |
| WMS_QUERY_MONITORING, |
| //WMS child query monitoring, |
| WMS_CHILD_QUERY_MONITORING, |
| |
| // size in Mb of the file containing a blob/clob column. |
| // size is for all rows for a particular column. |
| // Size is expressed in Mbs |
| LOB_MAX_SIZE, |
| //Max memory used to tranfer data/perform I/O to lob data file. |
| LOB_MAX_CHUNK_MEM_SIZE, |
| LOB_STORAGE_TYPE, |
| LOB_STORAGE_FILE_DIR, |
| |
| LOB_HDFS_SERVER, |
| LOB_HDFS_PORT, |
| LOB_GC_LIMIT_SIZE, |
| |
| LOB_INPUT_LIMIT_FOR_BATCH, |
| // Should the DISK POOL be turned on when replicating the DDL using COPY DDL |
| REPLICATE_DISK_POOL, |
| |
| NESTED_JOINS_PLAN3_TRY_SORT, // try sort when plan2 produces a non-sort plan |
| |
| HJ_NEW_MCSB_PLAN, // control the new MCSB feature |
| |
| USTAT_INCREMENTAL_UPDATE_STATISTICS, // main control switch for |
| // incremental update stats (IUS): on / off |
| |
| USTAT_INCREMENTAL_FALSE_PROBABILITY, |
| |
| USTAT_IUS_INTERVAL_ROWCOUNT_CHANGE_THRESHOLD, |
| USTAT_IUS_TOTAL_ROWCOUNT_CHANGE_THRESHOLD, |
| |
| USTAT_IUS_INTERVAL_UEC_CHANGE_THRESHOLD, |
| USTAT_IUS_TOTAL_UEC_CHANGE_THRESHOLD, |
| |
| USTAT_IUS_MAX_NUM_HASH_FUNCS, |
| |
| USTAT_IUS_PERSISTENT_CBF_PATH, |
| |
| USTAT_IUS_USE_PERIODIC_SAMPLING, |
| |
| USTAT_IUS_MAX_TRANSACTION_DURATION, |
| |
| USTAT_IUS_MAX_PERSISTENT_DATA_IN_MB, |
| |
| USTAT_IUS_MAX_PERSISTENT_DATA_IN_PERCENTAGE, |
| |
| USTAT_COLLECT_MC_SKEW_VALUES, // controls MC skew values |
| |
| HIST_MIN_MAX_OPTIMIZATION, |
| |
| // Maximum number of PCODE Branch Instructions in an Expr |
| // for which we will attempt PCODE optimizations. |
| PCODE_MAX_OPT_BRANCH_CNT, |
| |
| // Maximum number of PCODE Instructions in an Expr |
| // for which we will attempt PCODE optimizations. |
| PCODE_MAX_OPT_INST_CNT, |
| |
| USTAT_USE_GROUPING_FOR_SAMPLING, |
| |
| USTAT_IUS_NO_BLOCK, |
| |
| HIVE_MAX_STRING_LENGTH_IN_BYTES, |
| HIVE_USE_FAKE_TABLE_DESC, |
| HIVE_LIB_HDFS_PORT_OVERRIDE, |
| HIVE_HDFS_STATS_LOG_FILE, |
| HIVE_MIN_BYTES_PER_ESP_PARTITION, |
| HIVE_NUM_ESPS_PER_DATANODE, |
| HIVE_MAX_ESPS, |
| |
| // buffer size to do hdfs io. In K bytes. 64M = 65536. |
| HDFS_IO_BUFFERSIZE, |
| HDFS_USE_CURSOR_MULTI, |
| HDFS_PREFETCH, |
| |
| HIVE_NUM_ESPS_ROUND_DEVIATION, |
| |
| HDFS_REPLICATION, |
| HIVE_USE_FAKE_SQ_NODE_NAMES, |
| HIVE_LOCALITY_BALANCE_LEVEL, |
| HDFS_IO_BUFFERSIZE_BYTES, // test boundaries. |
| HDFS_IO_RANGE_TAIL, |
| HIVE_METADATA_REFRESH_INTERVAL, |
| |
| HIVE_USE_HASH2_AS_PARTFUNCION, |
| |
| MODE_SEAHIVE, |
| HIVE_CATALOG, |
| HIVE_DEFAULT_SCHEMA, |
| HIVE_DEFAULT_CHARSET, |
| |
| // size of the DESCRIPTION field of explain output. Default is 3000. |
| EXPLAIN_DESCRIPTION_COLUMN_SIZE, |
| // size of each row in full explain output. Default is 80. |
| EXPLAIN_OUTPUT_ROW_SIZE, |
| |
| // to avoid stackoverflow when statement is an insert with a large |
| // tuple list |
| EXPLAIN_ROOT_INPUT_VARS_MAX, |
| |
| // enable exeutil(explain, reorg, maintain...) output in rwrs mode. |
| EXE_UTIL_RWRS, |
| |
| MODE_SEABASE, |
| SEABASE_CATALOG, |
| HBASE_CATALOG, |
| // HBASE_DEFAULT_CHARSET, |
| |
| HBASE_SERVER, |
| |
| HBASE_MAX_COLUMN_NAME_LENGTH, |
| HBASE_MAX_COLUMN_VAL_LENGTH, |
| HBASE_MAX_COLUMN_INFO_LENGTH, |
| |
| // Hbase silently inserts a duplicate row. |
| // Hbase doesn't tell whether a row got deleted. |
| // if set to ON, follow SQL semantics. |
| // Return an error when a duplicate row is inserted. |
| // Also, return indication whether a row got deleted or not. |
| // This requires a check to be made before doing the IUD operation. |
| HBASE_SQL_IUD_SEMANTICS, |
| |
| HBASE_ROWSET_VSBB_OPT, |
| HBASE_UPDEL_CURSOR_OPT, |
| HBASE_CHECK_AND_UPDEL_OPT, |
| |
| HIVE_SORT_HDFS_HOSTS, |
| HBASE_MAX_NUM_SEARCH_KEYS, |
| CALL_EMBEDDED_ARKCMP, |
| |
| // ON, if blocks should be cached for this scan. This includes subset scans used by Update and Delete |
| HBASE_CACHE_BLOCKS, |
| |
| // minimum number of rows to cache for a scan. Default is 100. |
| // This includes subset scans used by Update and Delete |
| HBASE_NUM_CACHE_ROWS_MIN, |
| // maximum number of rows to cache for a scan. Default is 10000. |
| // The actual number of cache rows will be in the range [min, max] and |
| // is determined by the cardinality estimate available to the generator. |
| // Without stats the size of the cache will be typically min. |
| HBASE_NUM_CACHE_ROWS_MAX, |
| // if ON, create volatile tables in seabase. Otherwise create them in Seaquest. |
| // OFF by default, in closed source. ON by default, in open source. |
| SEABASE_VOLATILE_TABLES, |
| |
| // During a drop of seabase table or index, the object is first removed from |
| // seabase metadata. If that succeeds, the corresponding hbase object is dropped. |
| // if set, this drop of hbase table is done in another worker thread. That speeds up the |
| // over drop. If a create of the same table comes in later and an error is returned |
| // during create, we delay and retry for a fixed number of times since that table |
| // may still be dropped by the worked thread. |
| HBASE_ASYNC_DROP_TABLE, |
| |
| // if ON, hbase coprocessors could be used, if the query allows it. |
| HBASE_COPROCESSORS, |
| |
| // if ON, use an HBase coprocessor when estimating row counts; if OFF use |
| // client-side code (the latter does not work if HBase encryption is in use) |
| HBASE_ESTIMATE_ROW_COUNT_VIA_COPROCESSOR, |
| |
| // if OFF or '0' is disabled, ON or '1' is simple pushdown, '2' is for advance pushdown |
| // It will depends on the query on which predicates or sub-predicates could be pushed. |
| HBASE_FILTER_PREDS, |
| |
| // If ON, mark all columns that could be serialized as being declared with |
| // SERIALIZED option. |
| // This option is currently internal and used for testing without having to change |
| // all DDL statements. |
| HBASE_SERIALIZATION, |
| |
| |
| SQLMX_REGRESS, |
| |
| // For PCODE - Native Expressions work |
| PCODE_NE_DBG_LEVEL, |
| |
| |
| HBASE_ZOOKEEPER_PORT, |
| |
| // Set to a posotive value to allow mdam scan on table with no stats. |
| // Set to 0 to disable the feature. |
| // |
| // The total number of positions has to be <= the thresold, where |
| // The number of positions is computed as |
| // |
| // #UECs for the first n-1 MDAM columns * |
| // # of ranges for the last MDAM column |
| MDAM_NO_STATS_POSITIONS_THRESHOLD, |
| |
| HBASE_USE_FAKED_REGIONS, |
| |
| // use MC stats to decide on the partitioning function range splits |
| HBASE_RANGE_PARTITIONING_MC_SPLIT, |
| |
| HBASE_NATIVE_IUD, |
| |
| AQR_WNR, |
| AQR_WNR_DELETE_NO_ROWCOUNT, |
| AQR_WNR_INSERT_CLEANUP, |
| AQR_WNR_LOCK_INSERT_TARGET, |
| AQR_WNR_EXPLAIN_INSERT, |
| |
| MDAM_TRACING, |
| NCM_MDAM_COST_ADJ_FACTOR, |
| |
| // Include skew info for non-inner join card estimation |
| HIST_INCLUDE_SKEW_FOR_NON_INNER_JOIN, |
| |
| // By default, the control info table for Maintain operations is not used, |
| // but can be enabled via this CQD. |
| USE_MAINTAIN_CONTROL_TABLE, |
| |
| |
| // if set, then constr validation is skipped during unique, ri or check constr |
| // creation. Done if constraints are being created during CREATE TABLE time. |
| TRAF_NO_CONSTR_VALIDATION, |
| |
| |
| HBASE_MIN_BYTES_PER_ESP_PARTITION, |
| HBASE_MAX_ESPS, |
| |
| |
| |
| // for testing setjmp/longjmp compiler logic |
| MEMORY_LIMIT_CMPCTXT_UPPER_KB, |
| MEMORY_LIMIT_CMPSTMT_UPPER_KB, |
| MEMORY_LIMIT_HISTCACHE_UPPER_KB, |
| MEMORY_LIMIT_NATABLECACHE_UPPER_KB, |
| MEMORY_LIMIT_QCACHE_UPPER_KB, |
| |
| // if set, change blob/clob datatype to varchar. This is needed until blob/clob |
| // support is externalized. |
| TRAF_BLOB_AS_VARCHAR, |
| TRAF_CLOB_AS_VARCHAR, |
| |
| // for internal use only. |
| // execute a create table statement and create the table with this UID. |
| TRAF_CREATE_TABLE_WITH_UID, |
| |
| // if set, do not use natable cache. Reload it. |
| // Used internally until full Xn support for DDL is in. |
| TRAF_RELOAD_NATABLE_CACHE, |
| |
| TRAF_UPSERT_ADJUST_PARAMS, |
| TRAF_UPSERT_WB_SIZE, |
| TRAF_UPSERT_WRITE_TO_WAL, |
| TRAF_LOAD_PREP_ADJUST_PART_FUNC, |
| TRAF_LOAD_PREP_TMP_LOCATION, |
| TRAF_LOAD_USE_FOR_INDEXES, |
| //log only the overall time of a compilation. |
| COMPILE_TIME_MONITOR_LOG_ALLTIME_ONLY, |
| |
| TRAF_LOAD_PREP_KEEP_HFILES, |
| |
| // if an explicit salt option is not specified in create stmt and this cqd is |
| // specified with a value > 0, then that value is used to create the number |
| // of salted partitions on primary key columns. |
| TRAF_NUM_OF_SALT_PARTNS, |
| TRAF_LOAD_PREP_CLEANUP, |
| |
| // HDFS root location of backing sample tables. |
| TRAF_SAMPLE_TABLE_LOCATION, |
| |
| HBASE_SALTED_TABLE_MAX_FILE_SIZE, |
| HBASE_SALTED_TABLE_SET_SPLIT_POLICY, |
| |
| HBASE_DATA_BLOCK_ENCODING_OPTION, |
| HBASE_COMPRESSION_OPTION, |
| HQC_LOG, |
| HQC_LOG_FILE, // specify the HQC log file name |
| HYBRID_QUERY_CACHE, |
| HQC_MAX_VALUES_PER_KEY, |
| HQC_CONVDOIT_DISABLE_NUMERIC_CHECK, // TEMPORARY CQD - SHOULD REMOVE |
| |
| // if ON limits DoP of Hbase scan to number of partitions |
| LIMIT_HBASE_SCAN_DOP, |
| TRAF_LOAD_TAKE_SNAPSHOT, |
| TRAF_LOAD_PREP_SKIP_DUPLICATES, |
| |
| // if not set to UNKNOWN, then this is the charset of a column that is not |
| // being declared with an explicit charset. |
| TRAF_DEFAULT_COL_CHARSET, |
| |
| // if set to ON, then the length specified for a char/varchar datatype is |
| // in characters unless it is explicitly qualified as BYTES or CHARACTERS. |
| TRAF_COL_LENGTH_IS_CHAR, |
| |
| // if set to on, table will be created in aligned row format. |
| // SQ row will be created in aligned format and stored as a single col in hbase. |
| TRAF_ALIGNED_ROW_FORMAT, |
| |
| // this is used to change cache size of sequence numbers for a session. |
| // It overwrites the cache size that was specified during sequence creation. |
| TRAF_SEQUENCE_CACHE_SIZE, |
| |
| TRAF_LOAD_MAX_HFILE_SIZE, |
| |
| |
| USTAT_USE_BULK_LOAD, |
| |
| // if not null, then add this suffix to the original name and select from that hive table. |
| USE_HIVE_SOURCE, |
| |
| // if set to ON, then query is not run as part of an enclosing DTM transaction |
| // nor is a transaction started to execute it. |
| // It is run using underlying hbase single row transaction consistency. |
| TRAF_NO_DTM_XN, |
| |
| // if set to ON, then query is run as part of localized region transaction. |
| // No external transaction is started to run it. |
| TRAF_USE_REGION_XN, |
| |
| // HBASE_HASH2_PARTITIONING (ON - OFF for now): |
| // - OFF: Treat salted table like a non-salted table |
| // - ON: Always use HASH2 for salted table |
| |
| // HBASE_RANGE_PARTITIONING (ON): |
| // - OFF: Never use HBase ranges for partitioning |
| // - ON: Use HBase ranges (stats may override) |
| |
| // HBASE_STATS_PARTITIONING (ON): |
| // - OFF: Don't use stats split |
| // - ON: Use stats split if possible, except for HASH2 |
| HBASE_HASH2_PARTITIONING, |
| HBASE_RANGE_PARTITIONING, |
| HBASE_STATS_PARTITIONING, |
| |
| // ignore conversion errors when rows are read from hdfs. |
| HDFS_READ_CONTINUE_ON_ERROR, |
| |
| TRAF_LOAD_USE_FOR_STATS, |
| |
| ASG_FEATURE, |
| |
| TRAF_UNLOAD_HDFS_COMPRESS, |
| |
| NCM_IND_JOIN_COST_ADJ_FACTOR, |
| NCM_IND_SCAN_COST_ADJ_FACTOR, |
| GROUP_BY_PARTIAL_ROOT_THRESHOLD, |
| TRAF_UNLOAD_DEF_DELIMITER, |
| TRAF_UNLOAD_DEF_RECORD_SEPARATOR, |
| TRAF_LOAD_FORCE_CIF, |
| TRAF_ENABLE_ORC_FORMAT, |
| TRAF_LOAD_LOG_ERROR_ROWS, |
| TRAF_LOAD_MAX_ERROR_ROWS, |
| TRAF_LOAD_CONTINUE_ON_ERROR, |
| TRAF_LOAD_ERROR_COUNT_ID, |
| TRAF_LOAD_ERROR_COUNT_TABLE, |
| TRAF_LOAD_ERROR_LOGGING_LOCATION, |
| |
| TRAF_TRANS_TYPE, |
| |
| // max size in bytes of a char or varchar column in a trafodion table. |
| // Valid values are 0 through MAX_CHAR_COL_LENGTH_IN_BYTES. |
| // (defined in common/ComSmallDefs.h) |
| TRAF_MAX_CHARACTER_COL_LENGTH, |
| |
| // In special cases, previous default value could be overridden. |
| // Internal use only or use only under trafodion supervision. |
| TRAF_MAX_CHARACTER_COL_LENGTH_OVERRIDE, |
| |
| // set when metadata definition is to be read from hardcoded structs |
| // and not from metadata. |
| TRAF_BOOTSTRAP_MD_MODE, |
| |
| UDR_DEBUG_FLAGS, |
| |
| // The threshold on the number of rows scanned in an index join scan. |
| // If the estimated value is below the threshold, the index will be |
| // subjected to the elimination heuristics. |
| INDEX_ELIMINATION_THRESHOLD, |
| |
| NSK_DBG_PRINT_INDEX_ELIMINATION, |
| |
| NSK_DBG_COMPILE_INSTANCE, |
| |
| NSK_DBG_QUERY_PREFIX, |
| |
| EXPLAIN_IN_RMS, |
| NCM_HBASE_COSTING, |
| NCM_IND_JOIN_SELECTIVITY, |
| NCM_IND_SCAN_SELECTIVITY, |
| NCM_SKEW_COST_ADJ_FOR_PROBES, |
| PCODE_NE_IN_SHOWPLAN, |
| TRAF_TABLE_SNAPSHOT_SCAN, |
| TRAF_TABLE_SNAPSHOT_SCAN_TMP_LOCATION, |
| TRAF_TABLE_SNAPSHOT_SCAN_SNAP_SUFFIX, |
| TRAF_TABLE_SNAPSHOT_SCAN_TIMEOUT, |
| HBASE_REGION_SERVER_MAX_HEAP_SIZE, |
| |
| TRAF_TABLE_SNAPSHOT_SCAN_TABLE_SIZE_THRESHOLD, |
| |
| TRAF_USE_RWRS_FOR_MD_INSERT, |
| |
| |
| PCODE_DEBUG_LOGDIR, |
| PCODE_EXPR_CACHE_CMP_ONLY, |
| PCODE_EXPR_CACHE_DEBUG, |
| PCODE_EXPR_CACHE_ENABLED, |
| PCODE_NE_ENABLED, |
| PCODE_EXPR_CACHE_SIZE, |
| |
| // if on, store only the needed explain data. See ExplainTuple::genExplainTupleData. |
| EXPLAIN_SPACE_OPT, |
| HBASE_ROWSET_VSBB_SIZE, |
| // hbase table block size, default is 64KB |
| HBASE_BLOCK_SIZE, |
| // hbase table index level, when zero, index level will be read from Hfile |
| HBASE_INDEX_LEVEL, |
| |
| // enable self referencing foreign key constraints |
| TRAF_ALLOW_SELF_REF_CONSTR, |
| // enable ESP-RegionServer colocation logic |
| TRAF_ALLOW_ESP_COLOCATION, |
| |
| // number of hbase versions of rows to be retrieved. |
| // -1, get max number of versions. |
| // -2, get all versions including those marked for deletion. |
| // N, get N versions. N > 0 |
| TRAF_NUM_HBASE_VERSIONS, |
| |
| // if set, index population step is skipped for external and internal index creates. |
| // Should be set as an opt when objects are being |
| // created in one session (create table, create index, add constraints, etc). |
| // Does a fast check to see if source table is empty to validate. |
| TRAF_INDEX_CREATE_OPT, |
| |
| // truncate strings on insert and updates without returning an error. |
| TRAF_STRING_AUTO_TRUNCATE, |
| // return a warning on truncation. |
| TRAF_STRING_AUTO_TRUNCATE_WARNING, |
| NCM_UDR_NANOSEC_FACTOR, |
| HBASE_ASYNC_OPERATIONS, |
| |
| //control lob output size when converting to string/memory |
| LOB_OUTPUT_SIZE, |
| |
| TRAF_MULTI_COL_FAM, |
| |
| // estimated max naheap memory, used as a limit for update stats utility |
| USTAT_NAHEAP_ESTIMATED_MAX, |
| |
| EXE_MEMORY_FOR_PROBE_CACHE_IN_MB, |
| |
| TRAF_INDEX_ALIGNED_ROW_FORMAT, |
| |
| UDR_JVM_DEBUG_PORT, |
| UDR_JVM_DEBUG_TIMEOUT, |
| //enable HBASE Small Scanner, optimizing scans of size below HFile block size |
| HBASE_SMALL_SCANNER, |
| |
| TRAF_LOAD_ALLOW_RISKY_INDEX_MAINTENANCE, |
| HBASE_RANGE_PARTITIONING_PARTIAL_COLS, |
| MERGE_WITH_UNIQUE_INDEX, |
| |
| USTAT_MAX_CHAR_DATASIZE_FOR_IS, |
| |
| // If the next two are 'ON' we use the HBase costing code; if they |
| // are 'OFF' we use a stub cost of 1 for Updates and Deletes to |
| // Trafodion or HBase tables instead. We'll remove these once the |
| // costing code has broader exposure. |
| HBASE_DELETE_COSTING, |
| HBASE_UPDATE_COSTING, |
| TRAF_LOAD_FLUSH_SIZE_IN_KB, |
| |
| // if ON, then trafodion views on hive objects are supported. |
| HIVE_VIEWS, |
| |
| // Specify whic additional restriction check to apply |
| // 0: no check |
| // 1: apply majority of keys with predicates check |
| // 2: apply total UECs on keyless key columns check |
| // 3: apply both 1) and 2) |
| MDAM_APPLY_RESTRICTION_CHECK, |
| |
| // A threshold of total UECs on keyless key columns above which MDAM will not be considered. |
| // The threshold is expressed as a percentage of the total RC. |
| MDAM_TOTAL_UEC_CHECK_UEC_THRESHOLD, |
| |
| // A threshold of minitmal RC above which the above total UEC check will be applied. |
| MDAM_TOTAL_UEC_CHECK_MIN_RC_THRESHOLD, |
| |
| // A multiplier of cumulative probe cost for MDAM |
| MDAM_PROBE_TAX, |
| |
| // set to ON to aggressively allocate ESP per core |
| AGGRESSIVE_ESP_ALLOCATION_PER_CORE, |
| |
| // if ON, use older datetime value constructor in DatetimeValue::DatetimeValue |
| // Default is OFF. This cqd is used in case there are problems. |
| // It will be removed after testing is complete. |
| USE_OLD_DT_CONSTRUCTOR, |
| |
| // real charset in the HIVE table |
| HIVE_FILE_CHARSET, |
| |
| // By default only alter of varchar col length is supported. |
| // If this cqd is on, then other alters (name, datatype) are also supported. |
| TRAF_ALTER_COL_ATTRS, |
| |
| // Controls the behavior of upsert - MERGE, REPLACE, OPTIMAL |
| TRAF_UPSERT_MODE, |
| // if set, let users create system reserved names. Default is OFF. |
| // This cqd should only be used to debug or if system column names are |
| // REALLY needed by users. |
| // Currently syskey, _salt_, _division_. |
| TRAF_ALLOW_RESERVED_COLNAMES, |
| |
| // enable support for hbase tables mapped to relational traf tables |
| TRAF_HBASE_MAPPED_TABLES, |
| TRAF_HBASE_MAPPED_TABLES_IUD, |
| |
| //if 0, regular scanner is used. From 0.x to 1.0, percentage of regions that need to be scanned that will be done in parallel. |
| //if >= 2, set a fixed number of thread, real DOP. 2.0 2 thread, 3.0 3 thread etc. |
| HBASE_DOP_PARALLEL_SCANNER, |
| |
| // bitmap to control various special behavior of HIVE_SCAN |
| // // 1 : DOS FORMAT conversion on |
| // // 2 : todo |
| HIVE_SCAN_SPECIAL_MODE, |
| |
| // if set, data modification check is done at runtime before running |
| // a query. |
| HIVE_DATA_MOD_CHECK, |
| |
| COMPILER_IDLE_TIMEOUT, |
| |
| // TINYINT cqds are added until all components can handle this datatype |
| // for various actions (listed below). |
| |
| // if OFF, tinyint is not supported. It is treated as smallint. |
| // if ON, tinyint is supported as table cols and in cast stmts. |
| TRAF_TINYINT_SUPPORT, |
| |
| // If ON, tinyint is supported as returned datatype from a select stmt. |
| // otherwise returned as smallint. |
| TRAF_TINYINT_RETURN_VALUES, |
| |
| // if ON, input params are typed as tinyint. |
| // Otherwise typed as smallint. |
| TRAF_TINYINT_INPUT_PARAMS, |
| |
| // if ON, spj input/output params are typed as tinyint. |
| // Otherwise typed as smallint. |
| TRAF_TINYINT_SPJ_SUPPORT, |
| |
| // use info from external table created on this hive table |
| HIVE_USE_EXT_TABLE_ATTRS, |
| |
| // if 0, datatype error check is not done during inserts into hive tables. |
| // Invalid values may get inserted. |
| // if 1, error check done, row is not inserted if conversion error, |
| // and further processing stops. |
| // if 2, error check done, row is not inserted if conversion error, |
| // and further processing continues. |
| // if 3, null inserted if conversion error, and processing continues. |
| HIVE_INSERT_ERROR_MODE, |
| |
| // If ON, largeint unsigned is supported as returned datatype for a select |
| // stmt, and for input params. |
| // Otherwise typed as bignum |
| TRAF_LARGEINT_UNSIGNED_IO, |
| |
| // If ON, boolean is supported as returned datatype for a select |
| // stmt, and for input params. |
| // Otherwise typed as char |
| TRAF_BOOLEAN_IO, |
| |
| // if TRUE, create signed numeric literal for both +ve and -ve numbers. |
| // if FALSE, create unsigned literal for +ve and signed literal for -ve nums. |
| TRAF_CREATE_SIGNED_NUMERIC_LITERAL, |
| |
| |
| TRAF_UPSERT_TO_EFF_TREE, |
| |
| // if TRUE, create tinyint literal insteadl of smallint. |
| TRAF_CREATE_TINYINT_LITERAL, |
| |
| // if ON, generate object descriptor during DDL and store it in metadata. |
| TRAF_STORE_OBJECT_DESC, |
| |
| // if ON, read object descriptor from metadata, if it was stored. |
| TRAF_READ_OBJECT_DESC, |
| |
| ALLOW_INCOMPATIBLE_OPERATIONS, |
| |
| // if ON: expr and renamed cols allowed in groupby/orderby expr. |
| GROUP_OR_ORDER_BY_EXPR, |
| |
| // allow ORDER BY in subqueries. |
| ALLOW_ORDER_BY_IN_SUBQUERIES, |
| |
| // if the schema specified in a create stmt doesn't exist, automatically |
| // create it. |
| TRAF_AUTO_CREATE_SCHEMA, |
| |
| // controls if sim check is to be done and where (root or leaf) |
| TRAF_SIMILARITY_CHECK, |
| |
| // Common subexpressions in RelExpr trees |
| CSE_DEBUG_WARNINGS, |
| CSE_FOR_WITH, |
| CSE_USE_TEMP, |
| CSE_HIVE_TEMP_TABLE, |
| CSE_PRINT_DEBUG_INFO, |
| CSE_CLEANUP_HIVE_TABLES, |
| CSE_CACHE_TEMP_QUERIES, |
| |
| |
| // mode for AES_ENCRYPT/AED_DECRYPT |
| BLOCK_ENCRYPTION_MODE, |
| |
| GROUP_BY_PUSH_TO_BOTH_SIDES_OF_JOIN, |
| |
| CSE_TEMP_TABLE_MAX_SIZE, |
| CSE_TEMP_TABLE_MAX_MAX_SIZE, |
| CSE_COMMON_KEY_PRED_CONTROL, |
| CSE_PCT_KEY_COL_PRED_CONTROL, |
| |
| TRANSLATE_ERROR, |
| TRANSLATE_ERROR_UNICODE_TO_UNICODE, |
| INDEX_HINT_WARNINGS, |
| |
| // Operations on hive objects also register it in traf OBJECTS metadata table, |
| // if not already registered. create external table, grant, upd stats, create |
| // views are the current operations that also register hive objects. |
| // |
| // This default is used to simulate the |
| // scenario prior to 'hive registration' change. At that time, hive objects |
| // were represented by an external table. With this default set, operations |
| // on hive could be created without registering them. |
| // This default is for internal testing usage only and not externalized. |
| HIVE_NO_REGISTER_OBJECTS, |
| |
| BMO_MEMORY_LIMIT_UPPER_BOUND, |
| BMO_MEMORY_ESTIMATE_RATIO_CAP, |
| |
| // if set, cleanse output of explain text by filtering values that |
| // may not be deterministic on different systems. |
| // Same as explain format: options 'c' |
| // Used during dev regressions to cleanse explain output. |
| EXPLAIN_OPTION_C, |
| |
| // Threshold when TOPN sort becomes a regular sort |
| GEN_SORT_TOPN_THRESHOLD, |
| |
| // Ratio of BMO_MEMORY_LIMIT_PER_NODE_IN_MB that will be divided |
| // equally across all BMO operators |
| BMO_MEMORY_EQUAL_QUOTA_SHARE_RATIO, |
| |
| EXE_MEMORY_FOR_UNPACK_ROWS_IN_MB, |
| MEMORY_LIMIT_ROWSET_IN_MB, |
| |
| SUPPRESS_CHAR_LIMIT_CHECK, |
| |
| // Allow users to grant privileges to roles using the With Grant Option |
| ALLOW_WGO_FOR_ROLES, |
| |
| BMO_MEMORY_ESTIMATE_OUTLIER_FACTOR, |
| |
| // Use the earlier implementation of HdfsScan via libhdfs |
| USE_LIBHDFS_SCAN, |
| |
| // This enum constant must be the LAST one in the list; it's a count, |
| // not an Attribute (it's not IN DefaultDefaults; it's the SIZE of it)! |
| // Size of byte[] in java when direct byteBuffer can't be used |
| // Used to read compressed hdfs text files and to write |
| // both compressed and uncompressed hdfs files |
| HDFS_IO_INTERIM_BYTEARRAY_SIZE_IN_KB, |
| |
| __NUM_DEFAULT_ATTRIBUTES |
| }; |
| |
| |
| ////////////////////////////////////////////////////////////////////// |
| // options to be used with QUERY_OPTIMIZATION_OPTIONS CQD |
| // |
| ////////////////////////////////////////////////////////////////////// |
| enum QueryOptimizationOptions |
| { |
| QO_NO_OPT = 0x0000, |
| QO_EXPR_OPT = 0x0001, |
| QO_PARAM_NULLABILITY_OPT = 0x0002, |
| QO_LEAN_EXEINDP2_FROM_JDBC_OPT = 0x0004, |
| QO_LEAN_EXEINDP2_FROM_EMB_OPT = 0x0008, |
| QO_LEAN_EXEINMASTER_OPT = 0x0010, |
| QO_OLT_WAITED_OPT = 0x0020, |
| QO_DO_NT_OLT_OPT = 0x0040 |
| }; |
| |
| |
| // *************************************************************************** |
| // *************************************************************************** |
| // |
| // HAVE YOU READ THE NOTE ABOVE THIS ENUM DECLARATION???? |
| // |
| // *************************************************************************** |
| // *************************************************************************** |
| |
| |
| // Defaults Tokens |
| // There is a set of keywords which can appear as values of Defaults entries |
| // in the Defaults Table. We declare, for each such token, a string (the |
| // keyword), and an enumeration value. The string values belong in an |
| // array, DFkeywords, in sorted order. The idea is we can use binary |
| // search in order to obtain the index of a string to the matching |
| // entry in this sorted array. |
| // |
| // If we define the enumerations carefully (pay attention here!), then |
| // that index we just found (see previous paragraph) is the enum value |
| // of the token. |
| |
| // These enums and the strings, below, had *BETTER* be declared in the |
| // SAME order, and that order *BETTER BE* alphabetical! |
| |
| // In simple words: this has to be in identical order with enum |
| // NADefaults::keywords_ in nadefaults.cpp |
| |
| |
| enum DefaultToken { |
| DF_noSuchToken = -1, // Negative; not in DFkeywords array |
| DF_ACCUMULATED, |
| DF_ADVANCED, |
| DF_AGGRESSIVE, |
| DF_ALL, |
| DF_ANSI, |
| DF_BEGINNER, |
| DF_BOTH, |
| DF_CLEAR, |
| DF_DEBUG, |
| DF_DISK, |
| DF_DISK_POOL, |
| DF_DUMP, |
| DF_DUMP_MV, |
| DF_EXTERNAL, |
| DF_EXTERNAL_DETAILED, |
| DF_FIRSTROW, |
| DF_HARDWARE, |
| DF_HEAP, |
| DF_HIGH, |
| DF_HYBRID, |
| DF_IEEE, |
| DF_INDEXES, |
| DF_INTERNAL, |
| DF_IQS, |
| DF_JNI, |
| DF_JNI_TRX, |
| DF_KEYINDEXES, |
| DF_LASTROW, |
| DF_LATEST, |
| DF_LEAF, |
| DF_LOADNODUP, |
| DF_LOCAL, |
| DF_LOCAL_NODE, |
| DF_LOG, |
| DF_MAXIMUM, |
| DF_MEDIUM, |
| DF_MEDIUM_LOW, |
| DF_MERGE, |
| DF_MINIMUM, |
| DF_MMAP, |
| DF_MULTI_NODE, |
| DF_MVCC, |
| DF_NONE, |
| DF_OFF, |
| DF_ON, |
| DF_OPENS_FOR_WRITE, |
| DF_OPERATOR, |
| DF_OPTIMAL, |
| DF_ORDERED, |
| DF_PERTABLE, |
| DF_PRINT, |
| DF_PRIVATE, |
| DF_PUBLIC, |
| DF_QS, |
| DF_READ_COMMITTED, |
| DF_READ_UNCOMMITTED, |
| DF_RELEASE, |
| DF_REMOTE, |
| DF_REPEATABLE_READ, |
| DF_REPLACE, |
| DF_REPSEL, |
| DF_RESOURCES, |
| DF_RETURN, |
| DF_ROOT, |
| DF_SAMPLE, |
| DF_SERIALIZABLE, |
| DF_SHORTANSI, |
| DF_SIMPLE, |
| DF_SKIP, |
| DF_SMD, |
| DF_SOFTWARE, |
| DF_SOURCE, |
| DF_SQLMP, |
| DF_SSCC, |
| DF_SSD, |
| DF_STOP, |
| DF_SUFFIX, |
| DF_SYSTEM, |
| DF_TANDEM, |
| DF_THRIFT, |
| DF_USER, |
| DF_VERTICAL, |
| DF_WAIT, |
| DF_WARN, |
| DF_XML, |
| DF_lastToken, |
| // Synonyms must NOT be (and are not) present |
| // in the DFkeywords array in the .cpp file! |
| DF_COMPAQ = DF_TANDEM, |
| DF_DISABLE = DF_OFF, // Notice that DISABLE = OFF, but |
| DF_ENABLE = DF_SYSTEM, // ENABLE means let the SYSTEM provide the value |
| DF_FALSE = DF_OFF, |
| DF_FULL = DF_MAXIMUM, |
| DF_TRUE = DF_ON |
| }; |
| |
| #endif // DEFAULTCONSTANTS_H |