<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="double">

  <title>DOUBLE Data Type</title>
  <titlealts audience="PDF"><navtitle>DOUBLE</navtitle></titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Data Types"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="Data Analysts"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Schemas"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      A double precision floating-point data type used in <codeph>CREATE TABLE</codeph> and <codeph>ALTER
      TABLE</codeph> statements.
    </p>

    <p conref="../shared/impala_common.xml#common/syntax_blurb"/>

    <p>
      In the column definition of a <codeph>CREATE TABLE</codeph> statement:
    </p>

<codeblock><varname>column_name</varname> DOUBLE</codeblock>

    <p>
      <b>Range:</b> 4.94065645841246544e-324d .. 1.79769313486231570e+308, positive or negative
    </p>

    <p>
      <b>Precision:</b> 15 to 17 significant digits, depending on usage. The number of significant digits does
      not depend on the position of the decimal point.
    </p>

    <p>
      <b>Representation:</b> The values are stored in 8 bytes, using
      <xref href="https://en.wikipedia.org/wiki/Double-precision_floating-point_format" scope="external" format="html">IEEE 754 Double Precision Binary Floating Point</xref> format.
    </p>

    <p>
      <b>Conversions:</b> Impala does not automatically convert <codeph>DOUBLE</codeph> to any other type. You can
      use <codeph>CAST()</codeph> to convert <codeph>DOUBLE</codeph> values to <codeph>FLOAT</codeph>,
      <codeph>TINYINT</codeph>, <codeph>SMALLINT</codeph>, <codeph>INT</codeph>, <codeph>BIGINT</codeph>,
      <codeph>STRING</codeph>, <codeph>TIMESTAMP</codeph>, or <codeph>BOOLEAN</codeph>. You can use exponential
      notation in <codeph>DOUBLE</codeph> literals or when casting from <codeph>STRING</codeph>, for example
      <codeph>1.0e6</codeph> to represent one million.
      <ph conref="../shared/impala_common.xml#common/cast_int_to_timestamp"/>
    </p>

    <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/>

    <p>
      The data type <codeph>REAL</codeph> is an alias for <codeph>DOUBLE</codeph>.
    </p>

    <!--Below conref'd content fixes IMPALA-3603-->
    <p conref="../shared/impala_common.xml#common/how_impala_handles_nan_values"/>

<codeblock>
SELECT CAST('nan' AS DOUBLE)=CAST('nan' AS DOUBLE);
</codeblock>

    <p conref="../shared/impala_common.xml#common/example_blurb"/>

<codeblock>CREATE TABLE t1 (x DOUBLE);
SELECT CAST(1000.5 AS DOUBLE);
</codeblock>

    <p conref="../shared/impala_common.xml#common/partitioning_imprecise"/>

    <p conref="../shared/impala_common.xml#common/hbase_ok"/>

    <p conref="../shared/impala_common.xml#common/parquet_ok"/>

    <p conref="../shared/impala_common.xml#common/text_bulky"/>

<!-- <p conref="../shared/impala_common.xml#common/compatibility_blurb"/> -->

    <p conref="../shared/impala_common.xml#common/internals_8_bytes"/>

<!-- <p conref="../shared/impala_common.xml#common/added_in_20"/> -->

    <p conref="../shared/impala_common.xml#common/column_stats_constant"/>

    <p conref="../shared/impala_common.xml#common/restrictions_blurb"/>

<!-- This conref appears under SUM(), AVG(), FLOAT, and DOUBLE topics. -->

    <p conref="../shared/impala_common.xml#common/sum_double"/>

    <p conref="../shared/impala_common.xml#common/float_double_decimal_caveat"/>

    <p conref="../shared/impala_common.xml#common/kudu_blurb"/>
    <p conref="../shared/impala_common.xml#common/kudu_non_pk_data_type"/>

    <p conref="../shared/impala_common.xml#common/related_info"/>

    <p>
      <xref href="impala_literals.xml#numeric_literals"/>, <xref href="impala_math_functions.xml#math_functions"/>,
      <xref href="impala_float.xml#float"/>
    </p>
  </conbody>
</concept>
