#
# 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.
#

#  This file tells Drill to consider this module when class path scanning.
#  This file can also include any supplementary configuration information.
#  This file is in HOCON format, see https://github.com/typesafehub/config/blob/master/HOCON.md for more information.

drill {
  classpath.scanning {
    base.classes: ${?drill.classpath.scanning.base.classes} [
      org.apache.drill.exec.expr.DrillFunc,
      org.apache.drill.exec.expr.fn.PluggableFunctionRegistry,
      org.apache.drill.exec.physical.base.PhysicalOperator,
      org.apache.drill.exec.physical.impl.BatchCreator,
      org.apache.drill.exec.physical.impl.RootCreator,
      org.apache.drill.exec.rpc.user.security.UserAuthenticator,
      org.apache.drill.exec.rpc.security.AuthenticatorFactory,
      org.apache.drill.exec.server.rest.auth.DrillHttpConstraintSecurityHandler,
      org.apache.drill.exec.store.dfs.FormatPlugin,
      org.apache.drill.exec.store.StoragePlugin,
      org.apache.drill.exec.coord.zk.ZKACLProvider
    ],

    annotations: ${?drill.classpath.scanning.annotations} [
      org.apache.drill.exec.expr.annotations.FunctionTemplate,
      org.apache.drill.exec.store.SystemPlugin
    ],

    packages: ${?drill.classpath.scanning.packages} [
      org.apache.drill.exec.expr,
      org.apache.drill.exec.physical,
      org.apache.drill.exec.store,
      org.apache.drill.exec.rpc.user.security,
      org.apache.drill.exec.rpc.security,
      org.apache.drill.exec.server.rest.auth,
      org.apache.drill.exec.coord.zk,
      org.apache.drill.exec.store.security
    ],

    # caches scanned result during build time
    # set to false to avoid the need for a full Drill build during development
    cache.enabled: true
  }
}

drill.client: {
  supports-complex-types: true
}

# Location Drill uses for temporary files, such as downloaded dynamic UDFs jars.
# By default ${DRILL_TMP_DIR} is used if set or ${drill.tmp-dir} if it's been overridden.
drill.tmp-dir: "/tmp"
drill.tmp-dir: ${?DRILL_TMP_DIR}
drill.exec: {
  cluster-id: "drillbits1",
  rpc: {
    user: {
      timeout: 30,
      server: {
        port: 31010
        threads: 1,
        memory: {
          reservation: 0,
          maximum: 9223372036854775807
        }
      }
      client: {
        threads: 1
      }
    },
    bit: {
      timeout: 300,
      server: {
        port: 31011,
        retry:{
          count: 7200,
          delay: 500
        },
        threads: 8
        memory: {
          control: {
            reservation: 0,
            maximum: 9223372036854775807
          },
          data: {
            reservation: 0,
            maximum: 9223372036854775807
          }
        }
      }
    },
    use.ip: false
  },
  optimizer: {
    implementation: "org.apache.drill.exec.opt.IdentityOptimizer"
  },
  storage: {
    registry: "org.apache.drill.exec.store.StoragePluginRegistryImpl",
    file: {
      text: {
        buffer.size: 262144,
        batch.size: 4000
      },
      enable_mount_commands: false
    },
    # The name of the file to scan for "classic" storage plugins
    # Configured here for ease of testing. Users should NEVER change
    # this setting.
    bootstrap: {
      storage: "bootstrap-storage-plugins.json",
      # Not actually supported
      format: "bootstrap-format-plugins.json"
    },
    # The name of the upgrade (override) file for changes to an
    # existing system
    upgrade: {
      storage: "storage-plugins-override.conf"
    },
    # The action on the storage-plugins-override.conf after it's use.
    # Possible values are "none" (default), "rename", "remove"
    action_on_plugins_override_file: "none"
  },
  zk: {
    connect: "localhost:2181",
    root: "drill",
    refresh: 500,
    timeout: 5000,
    retry: {
      count: 7200,
      delay: 500
    },
    apply_secure_acl: false,
    acl_provider: "creator-all"
  },
  http: {
    enabled: true,
    client: {
      timeout: 5000
    },
    ssl_enabled: false,
    porthunt: false,
    port: 8047,
    jetty : {
      server : {
        acceptors : 1,
        selectors : 1,
        handlers : 5,
        dumpAfterStart: false
      }
    }
    max_profiles: 100,
    profiles_per_page: [10, 25, 50, 100],
    profile.statistics.estimated_rows.show : false,
    profile.warning: {
      progress.threshold: 300,
      time.skew: {
        min: 2,
        ratio: {
          process: 2
          wait: 2
        }
      },
      scan.wait.min: 60
    },
    session_max_idle_secs: 3600, # Default value 1hr
    cors: {
      enabled: false,
      allowedOrigins: ["null"],
      allowedMethods: ["GET", "POST", "HEAD", "OPTIONS"],
      allowedHeaders: ["X-Requested-With", "Content-Type", "Accept", "Origin"],
      credentials: true
    },
    session: {
        memory: {
            reservation: 0,
            maximum: 9223372036854775807
        }
    },
    # Default to failing queries only at 100% heap usage, i.e. the heap usage
    # limiting logic in the REST API is disabled by default.
    memory.heap.failure.threshold: 1.0,
    web.client.resultset: {
        autolimit {
            checked: false,
            rows: 1000
        },
        rowsPerPageValues: [10, 25, 50, 75, 100]
    },
    web.options.filters: ["planner", "store", "parquet", "hashagg", "hashjoin"]
  },
  # setting javax variables for ssl configurations is being deprecated.
  ssl: {
    keyStoreType = ${?javax.net.ssl.keyStoreType},
    keyStorePath = ${?javax.net.ssl.keyStore},
    keyStorePassword = ${?javax.net.ssl.keyStorePassword},
    trustStoreType = ${?javax.net.ssl.trustStoreType},
    trustStorePath = ${?javax.net.ssl.trustStore},
    trustStorePassword =  ${?javax.net.ssl.trustStorePassword}
    # default key password to keystore password
    keyPassword = ${?javax.net.ssl.keyStorePassword},
    protocol: "TLSv1.3",
    # if true, then Drill will read SSL parameters from the
    # Hadoop configuration files.
    useHadoopConfig : true,
    # Use keyStore and trustStore credentials provided by MapR platform.
    useMapRSSLConfig : false,
    #Drill can use either the JDK implementation or the OpenSSL implementation.
    provider: "JDK"
  },
  network: {
    start: 35000
  },
  work: {
    affinity.factor: 1.2
  },
  sys.store.provider: {
    class: "org.apache.drill.exec.store.sys.store.provider.ZookeeperPersistentStoreProvider",
    local: {
      path: "/tmp/drill",
      write: true
    }
  },
  profiles.store: {
    inmemory: false,
    capacity: 1000
  },
  impersonation: {
    enabled: false,
    max_chained_user_hops: 3
  },
  security.user.auth: {
    enabled: false
  },
  security.bit.auth: {
    enabled: false
    use_login_principal: false
  }
  security.user.encryption.sasl: {
    enabled: false,
    max_wrapped_size: 65536
  }
  security.bit.encryption.sasl: {
    enabled: false,
    max_wrapped_size: 65536
  }
  security.user.encryption.ssl: {
    enabled: false
  }
  trace: {
    directory: "/tmp/drill-trace",
    filesystem: "file:///"
  },
  tmp: {
    directories: ["/tmp/drill"],
    filesystem: "drill-local:///"
  },
  buffer:{
    size: "6",
    spooling: {
      delete: true,
      size: 100000000
    },
    unlimited_receiver: {
      max_size: 500000000
    }
  },
  compile: {
    codegen.debug.topn: false,
    compiler: "DEFAULT",
    debug: true,
    janino_maxsize: 262144,
    cache_max_size: 1000,
    # Where to save the generated source. See ClassBuilder
    code_dir: "/tmp/drill/codegen"
    # Disable code cache. Only for testing.
    disable_cache: false,
    # Use plain Java compilation where available
    prefer_plain_java: false
  },
  debug: {
    # If true, inserts the iterator validator atop each operator.
    # Primarily used for testing.
    validate_iterators: false,
    # If iterator validation is enabled, also validates the vectors
    # in each batch. Primarily used for testing. To enable from
    # the command line:
    # java ... -ea -Ddrill.exec.debug.validate_vectors=true ...
    validate_vectors: false
    # If true, dumps several record batches when an operator fails.
    # Generally disabled in testing, especially when we expect
    # a failure
    dump_batches: true
  },
  spill: {
    # *** Options common to all the operators that may spill
    # File system to use. Local file system by default.
    fs: "file:///",
    # List of directories to use. Directories are created
    # if they do not exist.
    directories: [ "/tmp/drill/spill" ]
  },
  hashjoin: {
    spill: {
      # -- The 2 options below can be used to override the common ones
      # -- (common to all spilling operators)
      # File system to use. Local file system by default.
      fs: ${drill.exec.spill.fs},
      # List of directories to use. Directories are created
      # if they do not exist.
      directories:  ${drill.exec.spill.directories},
    }
  },
  hashagg: {
    spill: {
      # -- The 2 options below can be used to override the common ones
      # -- (common to all spilling operators)
      # File system to use. Local file system by default.
      fs: ${drill.exec.spill.fs},
      # List of directories to use. Directories are created
      # if they do not exist.
      directories:  ${drill.exec.spill.directories},
    }
  },
  sort: {
    purge.threshold : 10,
    external: {
      # Limit on the number of batches buffered in memory.
      # Primarily for testing.
      # 0 = unlimited
      batch_limit: 0,
      # Limit on the amount of memory used for xsort. Overrides the
      # value provided by Foreman. Primarily for testing.
      # 0 = unlimited, Supports HOCON memory suffixes.
      mem_limit: 0,
      # Limit on the number of batches that can be merged in
      # a single pass. Limits the number of open file handles.
      # 0 = unlimited
      merge_limit: 128,
      spill: {
        # Deprecated for managed xsort; used only by legacy xsort
        group.size: 40000,
        # Deprecated for managed xsort; used only by legacy xsort
        threshold: 40000,
        # -- The two options below can be used to override the options common
        # -- for all spilling operators (see "spill" above).
        # -- This is done for backward compatibility; in the future they
        # -- would be deprecated (you should be using only the common ones)
        # File system to use. Local file system by default.
        fs: ${drill.exec.spill.fs},
        # List of directories to use. Directories are created
        # if they do not exist.
        directories:  ${drill.exec.spill.directories},
        # Size of the batches written to, and read from, the spill files.
        # Determines the ratio of memory to input data size for a single-
        # generation sort. Smaller values are better, but too small
        # incurs per-batch overhead.
        spill_batch_size = 1M,
        # Preferred file size for "first-generation" spill files.
        # Set large enough to get long, continuous writes, but not so
        # large as to overwhelm a temp directory.
        # Supports HOCON memory suffixes.
        file_size: 256M
      }
    }
  },
  queue : {
    # Settings for the local query queue available for embedded drillbits.
    embedded : {
      # Enable the local query queue
      enable: false,
      # Maximum number of queries that can run simultaneously.
      # All others queue.
      size: 2,
      # Maximum wait time in the queue before the query times out and
      # fails.
      timeout_ms: 5000 # 5 seconds
    }
  }
  memory: {
    operator: {
      max: 20000000000,
      initial: 10000000
    },
    fragment: {
      max: 20000000000,
      initial: 20000000
    }
  },
  debug: {
    return_error_for_failure_in_cancelled_fragments: false
  },
  scan: {
    threadpool_size: 8,
    decode_threadpool_size: 1
  },
  udf: {
    retry-attempts: 5,
    # Disables (parts of) the dynamic UDF functionality.
    # Primarily for testing.
    disable_dynamic: false,
    directory: {
      # Base directory for remote and local udf directories, unique among clusters.
      base: ${drill.exec.zk.root}"/udf",

      # Path to local udf directory, always created on local file system.
      # Root for these directory is generated at runtime unless Drill temporary directory is set.
      local: ${drill.exec.udf.directory.base}"/local",

      # Set this property if custom file system should be used to create remote directories, ex: fs: "file:///".
      # fs: "",
      # Set this property if custom absolute root should be used for remote directories, ex: root: "/app/drill".
      # root: "",

      # Relative path to all remote udf directories.
      # Directories are created under default file system taken from Hadoop configuration
      # unless ${drill.exec.udf.directory.fs} is set.
      # User home directory is used as root unless ${drill.exec.udf.directory.root} is set.
      staging: ${drill.exec.udf.directory.base}"/staging",
      registry: ${drill.exec.udf.directory.base}"/registry",
      tmp: ${drill.exec.udf.directory.base}"/tmp"
    }
  },
  # Temporary table can be created ONLY in default temporary workspace.
  # Full workspace name should be indicated (including schema and workspace separated by dot).
  # Workspace MUST be file-based and writable. Workspace name is case-sensitive.
  default_temporary_workspace: "dfs.tmp"

  # Resource management
  rm : {
    # Enables Drill RM feature by default. To disable it set the below parameter to false
    enabled: false
    # Memory per node normally comes from the direct memory alloated on the JVM
    # command line. This parameter, if other than 0, further limits the amount.
    # Primarily for testing.
    memory_per_node: 0,
    # The number of available CPUs normally comes directly from the system itself.
    # This parameter, if other than 0, further limits the number of CPUs will
    # will consider when planning. Note that, sadly, this parameter does not
    # limit *actual* CPU usage; only the amount of CPU assumed to exist when
    # planning and managing queries. Primarily for testing.
    cpus_per_node: 0,
  }
  # Grace period is the amount of time where the drillbit accepts work after
  # the shutdown request is triggered. The primary use of grace period is to
  # avoid the race conditions caused by zookeeper delay in updating the state
  # information of the drillbit that is shutting down. So, it is advisable
  # to have a grace period that is atleast twice the amount of zookeeper
  # refresh time.
  grace_period_ms : 0,

  # port hunting for drillbits. Enabled only for testing purposes.
  port_hunt : false,

  # Allow drillbit to bind to loopback address in distributed mode. Enabled only for testing purposes.
  allow_loopback_address_binding : false

  # HTTP client proxy configuration
  net_proxy: {

    # HTTP URL, usually from a Linux env var
    # See https://www.shellhacks.com/linux-proxy-server-settings-set-proxy-command-line/
    http_url: "",
    http_url: ${?HTTP_PROXY},
    http_url: ${?http_proxy},
    http_url: ${?all_proxy},
    http_url: ${?ALL_PROXY},

    # Explicit HTTP setup, used if URL is not set
    http: {
      type: "none", # none, http, socks. Blank same as none.
      host: "",
      port: 80,
      user_name: "",
      password: ""
    },

    # HTTPS URL, usually from a Linux env var
    https_url: "",
    https_url: ${?HTTPS_PROXY},
    https_url: ${?https_proxy},
    https_url: ${?all_proxy},
    https_url: ${?ALL_PROXY},

    # Explicit HTTPS setup, used if URL is not set
    https: {
      type: "none", # none, http, socks. Blank same as none.
      host: "",
      port: 80,
      user_name: "",
      password: ""
    }
  }
}

drill.jdbc: {
  batch_queue_throttling_threshold: 100,
  query_timeout: 600000
}

# The following are defaults for system and session options.
# Provided here for easy customization in Drill distributions
# like the drill-distrib.conf file.
# An addition of new system option should go through following procedure.
# Before adding a system option a validator should be added for that
# option and then the option should be configured below under the name
# space drill.exec.options. When the system options are being loaded
# options config options are read to find the default value for a give option
# if the option is not set using ALTER SYSTEM or ALTER SESSION.But
# if the option is not configured in the conf file under the name space
# "drill.exec.options", option missing exception will be thrown.
# Users are not supposed to set these options in the drill-override.conf file.
# Users should use ALTER SYSTEM and ALTER SESSION to set the options.

drill.exec.options: {
    debug.validate_iterators: false,
    debug.validate_vectors: false,
    drill.exec.functions.cast_empty_string_to_null: false,
    drill.exec.rpc.fragrunner.timeout: 10000,
    drill.exec.hashjoin.mem_limit: 0,
    # Setting to control if HashJoin should fallback to older behavior of consuming
    # unbounded memory. By default it's set to false such that the
    # query will fail if there is not enough memory
    drill.exec.hashjoin.fallback.enabled: false
    # Setting to control if HashAgg should fallback to older behavior of consuming
    # unbounded memory. In case of 2 phase Agg when available memory is not enough
    # to start at least 2 partitions then HashAgg fallbacks to this case. It can be
    # enabled by setting this flag to true. By default it's set to false such that
    # query will fail if there is not enough memory
    drill.exec.hashagg.fallback.enabled: false,
    drill.exec.storage.file.partition.column.label: "dir",
    drill.exec.storage.implicit.filename.column.label: "filename",
    drill.exec.storage.implicit.filepath.column.label: "filepath",
    drill.exec.storage.implicit.fqn.column.label: "fqn",
    drill.exec.storage.implicit.suffix.column.label: "suffix",
    drill.exec.storage.implicit.row_group_index.column.label: "rgi",
    drill.exec.storage.implicit.row_group_start.column.label: "rgs",
    drill.exec.storage.implicit.row_group_length.column.label: "rgl",
    drill.exec.storage.implicit.last_modified_time.column.label: "lmt",
    drill.exec.storage.implicit.project_metadata.column.label: "$project_metadata$",
    drill.exec.testing.controls: "{}",
    drill.exec.memory.operator.output_batch_size : 16777216, # 16 MB
    drill.exec.memory.operator.output_batch_size_avail_mem_factor : 0.1,
    exec.bulk_load_table_list.bulk_size: 1000,
    exec.enable_bulk_load_table_list: false,
    exec.enable_union_type: false,
    exec.errors.verbose: false,
    drill.exec.http.rest.errors.verbose: false,
    exec.hashjoin.mem_limit: 0,
    exec.hashjoin.hash_table_calc_type: "LEAN",
    exec.hashjoin.safety_factor: 1.0,
    exec.hashjoin.fragmentation_factor: 1.33,
    exec.hashjoin.hash_double_factor: 2.0,
    exec.hashjoin.num_partitions: 32,
    exec.hashjoin.num_rows_in_batch: 1024,
    exec.hashjoin.max_batches_in_memory: 0,
    exec.hashjoin.enable.runtime_filter: false,
    exec.hashjoin.bloom_filter.fpp: 0.75,
    exec.hashjoin.bloom_filter.max.size: 33554432, #32 MB
    exec.hashjoin.runtime_filter.waiting.enable: true,
    exec.hashjoin.runtime_filter.max.waiting.time: 300, #400 ms
    exec.hashagg.mem_limit: 0,
    exec.hashagg.min_batches_per_partition: 2,
    exec.hashagg.num_partitions: 32,
    exec.hashagg.num_rows_in_batch: 128,
    exec.hashagg.max_batches_in_memory: 65536,
    exec.hashagg.use_memory_prediction: true,
    exec.impersonation.inbound_policies: "[]",
    exec.java.compiler.exp_in_method_size: 50,
    exec.java_compiler: "DEFAULT",
    exec.java_compiler_debug: true,
    exec.java_compiler_janino_maxsize: 262144,
    exec.max_hash_table_size: 1073741824,
    exec.min_hash_table_size: 65536,
    exec.partition.mem_throttle: 0,
    exec.persistent_table.umask: "002",
    exec.query.progress.update: true,
    exec.query_profile.debug_mode: false,
    exec.query_profile.save: true,
    exec.query_profile.alter_session.skip: true,
    exec.enable_dynamic_fc: false,
    exec.enable_aliases: true,
    exec.queue.enable: false,
    # Default queue values for an 8 GB direct memory default
    # Drill install. Users are expected to adjust these based
    # on load and available resources.
    exec.queue.large: 2,
    exec.queue.small: 4,
    exec.queue.threshold: 30000000,
    exec.queue.timeout_millis: 300000,
    exec.queue.memory_ratio: 10.0,
    exec.queue.memory_reserve_ratio: 0.2,
    # Deprecated
    exec.sort.disable_managed : false,
    # Deprecated
    exec.storage.enable_new_text_reader: true,
    # Deprecated
    exec.storage.enable_v3_text_reader: false,
    exec.storage.min_width: 1,
    exec.storage.skip_runtime_rowgroup_pruning: false,
    exec.udf.enable_dynamic_support: true,
    exec.udf.use_dynamic: true,
    drill.exec.stats.logging.batch_size: false,
    drill.exec.stats.logging.fine_grained.batch_size: false,
    drill.exec.stats.logging.enabled_operators: all,
    new_view_default_permissions: 700,
    org.apache.drill.exec.compile.ClassTransformer.scalar_replacement: "try",
    planner.add_producer_consumer: false,
    planner.affinity_factor: 1.2,
    planner.broadcast_factor: 1.0,
    planner.broadcast_threshold: 10000000,
    planner.cpu_load_average: 0.70,
    planner.disable_exchanges: false,
    planner.enable_broadcast_join: true,
    planner.enable_constant_folding: true,
    planner.enable_decimal_data_type: true,
    planner.enable_demux_exchange: false,
    planner.enable_hash_single_key: true,
    planner.enable_hashagg: true,
    planner.enable_hashjoin: true,
    planner.enable_semijoin: true,
    planner.enable_hashjoin_swap: true,
    planner.enable_hep_opt: true,
    planner.enable_hep_partition_pruning: true,
    planner.enable_rowkeyjoin_conversion: true,
    planner.rowkeyjoin_conversion_using_hashjoin: false,
    planner.rowkeyjoin_conversion_selectivity_threshold: 0.01,
    planner.enable_join_optimization: true,
    planner.enable_limit0_optimization: true,
    planner.enable_limit0_on_scan: true,
    planner.enable_file_listing_limit0_optimization: false,
    planner.enable_mergejoin: true,
    planner.enable_multiphase_agg: true,
    planner.enable_mux_exchange: true,
    planner.enable_ordered_mux_exchange: true,
    planner.enable_nestedloopjoin: true,
    planner.enable_nljoin_for_scalar_only: true,
    planner.enable_streamagg: true,
    planner.enable_topn: true,
    planner.enable_type_inference: true,
    planner.enable_unionall_distribute: false,
    planner.enable_unnest_lateral: true,
    planner.filter.max_selectivity_estimate_factor: 1.0,
    planner.filter.min_selectivity_estimate_factor: 0.0,
    planner.force_2phase_aggr: false,
    planner.identifier_max_length: 1024,
    planner.in_subquery_threshold: 20,
    planner.join.hash_join_swap_margin_factor: 10,
    planner.join.row_count_estimate_factor: 1.0,
    planner.memory.average_field_width: 8,
    planner.memory.enable_memory_estimation: false,
    planner.memory.hash_agg_table_factor: 1.1d,
    planner.memory.hash_join_table_factor: 1.1d,
    planner.memory.max_query_memory_per_node: 2147483648, # 2 GB
    planner.memory.percent_per_query: 0.05, # 5%
    planner.memory.min_memory_per_buffered_op: 41943040, # 40 MB
    planner.memory.non_blocking_operators_memory: 64,
    planner.memory_limit: 268435456,
    planner.nestedloopjoin_factor: 100.0,
    planner.parser.quoting_identifiers: "`",
    planner.partitioner_sender_max_threads: 8,
    planner.partitioner_sender_set_threads: -1,
    planner.partitioner_sender_threads_factor: 2,
    planner.producer_consumer_queue_size: 10,
    planner.slice_target: 100000,
    planner.statistics.use: false,
    planner.statistics.multicol_ndv_adjustment_factor: 1.0,
    planner.store.parquet.rowgroup.filter.pushdown.enabled: true,
    planner.store.parquet.rowgroup.filter.pushdown.threshold: 10000,
    # Max per node should always be configured as zero and
    # it is dynamically computed based on cpu_load_average
    planner.width.max_per_node: 0,
    planner.width.max_per_query: 1000,
    prepare.statement.create_timeout_ms: 30000,
    security.admin.user_groups: "%drill_process_user_groups%",
    security.admin.users: "%drill_process_user%",
    store.format: "parquet",
    store.hive.optimize_scan_with_native_readers: false,
    store.hive.parquet.optimize_scan_with_native_reader: false,
    store.hive.maprdb_json.optimize_scan_with_native_reader: false,
    store.hive.maprdb_json.read_timestamp_with_timezone_offset: false,
    store.hive.maprdb_json.all_text_mode: false,
    # Properties values should NOT be set in double-quotes or any other quotes.
    # Property name and value should be separated by =.
    # Properties should be separated by new line (\n).
    store.hive.conf.properties: "",
    store.json.enable_v2_reader: true,
    store.json.all_text_mode: false,
    store.json.writer.allow_nan_inf: true,
    store.json.reader.allow_nan_inf: true,
    store.json.reader.allow_escape_any_char: false,
    store.json.extended_types: false,
    store.json.read_numbers_as_double: false,
    store.json.reader.print_skipped_invalid_record_number: false,
    store.json.reader.skip_invalid_records: false,
    store.json.writer.skip_null_fields: true,
    store.json.writer.uglify: false,
    store.mongo.all_text_mode: false,
    store.mongo.bson.record.reader: true,
    store.mongo.read_numbers_as_double: false,
    store.parquet.block-size:  536870912,
    store.parquet.compression: "none",
    store.parquet.dictionary.page-size: 1048576,
    store.parquet.enable_dictionary_encoding: false,
    store.parquet.page-size: 1048576,
    store.parquet.reader.columnreader.async: false,
    store.parquet.reader.int96_as_timestamp: false,
    store.parquet.reader.strings_signed_min_max: "",
    store.parquet.reader.pagereader.async: true,
    store.parquet.reader.pagereader.bufferedread: true,
    store.parquet.reader.pagereader.buffersize: 1048576,
    store.parquet.reader.pagereader.enforceTotalSize: false,
    store.parquet.reader.pagereader.queuesize: 2,
    store.parquet.reader.pagereader.usefadvise: false,
    store.parquet.reader.enable_map_support: true,
    store.parquet.use_new_reader: false,
    store.parquet.vector_fill_check_threshold: 10,
    store.parquet.vector_fill_threshold: 85,
    store.parquet.writer.use_primitive_types_for_decimals: true,
    store.parquet.writer.logical_type_for_decimals: "fixed_len_byte_array",
    store.parquet.writer.use_single_fs_block: false,
    store.parquet.writer.format_version: "v1",
    store.parquet.flat.reader.bulk: true,
    store.parquet.flat.batch.num_records: 32767,
    store.parquet.complex.batch.num_records: 4000,
    # Using common operators batch configuration unless the Parquet specific
    # configuration is used
    store.parquet.flat.batch.memory_size: 0,
    store.table.use_schema_file: false,
    store.partition.hash_distribute: false,
    store.text.estimated_row_size_bytes: 100.0,
    store.text.writer.add_header: true,
    store.text.writer.force_quotes: false,
    store.kafka.all_text_mode: false,
    store.kafka.read_numbers_as_double: false,
    store.kafka.record.reader: "org.apache.drill.exec.store.kafka.decoders.JsonMessageReader",
    store.kafka.poll.timeout: 200,
    store.kafka.reader.skip_invalid_records: false,
    store.kafka.reader.allow_nan_inf: true,
    store.kafka.reader.allow_escape_any_char: false,
    web.logs.max_lines: 10000,
    web.display_format.timestamp: "",
    web.display_format.date: "",
    web.display_format.time: "",
    window.enable: true,
    storage.list_files_recursively: false,
    storage.plugin_retry_attempts: 1,
    storage.plugin_retry_attempt_delay: 2000,
    storage.plugin_auto_disable: false,
    # ============ index plan related options ==============
    planner.use_simple_optimizer: false,
    planner.enable_index_planning: true,
    planner.enable_statistics: true,
    planner.disable_full_table_scan: false,
    planner.index.max_chosen_indexes_per_table: 5,
    planner.index.force_sort_noncovering: false,
    planner.index.use_hashjoin_noncovering: false,
    planner.index.covering_selectivity_threshold: 1.0,
    planner.index.noncovering_selectivity_threshold: 0.025,
    planner.index.rowkeyjoin_cost_factor: 0.1,
    planner.index.statistics_rowcount_scaling_factor: 0.1,
    planner.index.prefer_intersect_plans: false,
    planner.index.max_indexes_to_intersect: 5,
    exec.query.rowkeyjoin_batchsize: 128,
    exec.query.return_result_set_for_ddl: true,
    exec.query.max_rows: 0,
    exec.return_result_set_for_ddl: true,
    exec.statistics.ndv_accuracy: 20,
    exec.statistics.ndv_extrapolation_bf_elements: 1000000,
    exec.statistics.ndv_extrapolation_bf_fpprobability: 10,
    exec.statistics.deterministic_sampling: false,
    exec.query.return_result_set_for_ddl: true,
    # ========= rm related options ===========
    exec.rm.queryTags: "",
    exec.rm.queues.wait_for_preferred_nodes: true,
    exec.statistics.tdigest_compression: 100,
    # ========= Metastore related options ===========
    metastore.enabled: false,
    metastore.retrieval.retry_attempts: 5
    metastore.metadata.store.depth_level: "ALL",
    metastore.metadata.use_schema: true,
    metastore.metadata.use_statistics: true,
    metastore.metadata.ctas.auto-collect: "NONE",
    metastore.metadata.fallback_to_file_metadata: true
}
