<!--
SPDX-FileCopyrightText: The Apache Software Foundation

SPDX-License-Identifier: Apache-2.0
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Arrow.Array.equal</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta charset="utf-8" />

  
  <meta property="og:type" content="website"/>

  

  
  <meta priority="og:title" content="Arrow.Array.equal"/>
  <meta priority="og:description" content="Reference for Arrow.Array.equal"/>
  <meta name="twitter:title" content="Arrow.Array.equal"/>
  <meta name="twitter:description" content="Reference for Arrow.Array.equal"/>


  
  <meta name="twitter:card" content="summary"/>

  
  
  
  

  <link rel="stylesheet" href="style.css" type="text/css" />

  

  
  <script src="urlmap.js"></script>
  
  
  <script src="fzy.js"></script>
  <script src="search.js"></script>
  
  <script src="main.js"></script>
</head>

<body>
  <div id="body-wrapper" tabindex="-1">

    <nav class="sidebar devhelp-hidden">
      
      
      <div class="search section">
        <form id="search-form" autocomplete="off">
          <input id="search-input" type="text" name="do-not-autocomplete" placeholder="Click, or press 's' to search" autocomplete="off"/>
        </form>
      </div>
      
      <div class="section namespace">
        <h3><a href="index.html">Arrow</a></h3>
        <p>API Version: 1.0</p>
        
        <p>Library Version: 23.0.0.dev</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.Array.html">Array</a>
  </div>
</div>
<div class="section">
  <h5>Methods</h5>
  <div class="links">
  
    <a class="method" href="method.Array.cast.html">cast</a>
  
    <a class="method" href="method.Array.concatenate.html">concatenate</a>
  
    <a class="method" href="method.Array.count.html">count</a>
  
    <a class="method" href="method.Array.count_values.html">count_values</a>
  
    <a class="method" href="method.Array.dictionary_encode.html">dictionary_encode</a>
  
    <a class="method" href="method.Array.diff_unified.html">diff_unified</a>
  
    <a class="method current" href="method.Array.equal.html">equal</a>
  
    <a class="method" href="method.Array.equal_approx.html">equal_approx</a>
  
    <a class="method" href="method.Array.equal_options.html">equal_options</a>
  
    <a class="method" href="method.Array.equal_range.html">equal_range</a>
  
    <a class="method" href="method.Array.export.html">export</a>
  
    <a class="method" href="method.Array.filter.html">filter</a>
  
    <a class="method" href="method.Array.get_length.html">get_length</a>
  
    <a class="method" href="method.Array.get_n_nulls.html">get_n_nulls</a>
  
    <a class="method" href="method.Array.get_null_bitmap.html">get_null_bitmap</a>
  
    <a class="method" href="method.Array.get_offset.html">get_offset</a>
  
    <a class="method" href="method.Array.get_statistics.html">get_statistics</a>
  
    <a class="method" href="method.Array.get_value_data_type.html">get_value_data_type</a>
  
    <a class="method" href="method.Array.get_value_type.html">get_value_type</a>
  
    <a class="method" href="method.Array.is_in.html">is_in</a>
  
    <a class="method" href="method.Array.is_in_chunked_array.html">is_in_chunked_array</a>
  
    <a class="method" href="method.Array.is_null.html">is_null</a>
  
    <a class="method" href="method.Array.is_valid.html">is_valid</a>
  
    <a class="method" href="method.Array.run_end_encode.html">run_end_encode</a>
  
    <a class="method" href="method.Array.slice.html">slice</a>
  
    <a class="method" href="method.Array.sort_indices.html">sort_indices</a>
  
    <a class="method" href="method.Array.sort_to_indices.html">sort_to_indices</a>
  
    <a class="method" href="method.Array.take.html">take</a>
  
    <a class="method" href="method.Array.take_chunked_array.html">take_chunked_array</a>
  
    <a class="method" href="method.Array.to_string.html">to_string</a>
  
    <a class="method" href="method.Array.unique.html">unique</a>
  
    <a class="method" href="method.Array.validate.html">validate</a>
  
    <a class="method" href="method.Array.validate_full.html">validate_full</a>
  
    <a class="method" href="method.Array.view.html">view</a>
  
  </div>
</div>

      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2023.1</p>
      </div>
    </nav>

    <button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>

    
<section id="main" class="content">
  <header>
    <h3>Method</h3>
    <h1><a href="index.html">Arrow</a><span class="sep"></span><a href="class.Array.html">Array</a><span class="sep"></span>equal</h1>
  </header>

  <section>
    <div class="docblock">
      <p><span class="emblem available">since: 0.4.0</span></p>
    </div>

    <div class="declaration toggle-wrapper">
      <h4 style="display:flex;" id="declaration">
        Declaration
        <a class="anchor" href="#declaration"></a>
        
        <a class="srclink" title="go to source location" href="https://github.com/apache/arrow/blob/main/c_glib/arrow-glib/basic-array.h#L105">[src]</a>
        
      </h4>

      <div class="docblock c-decl">
        <pre><code><div class="highlight"><pre><span></span><span class="n">gboolean</span>
<span class="n">garrow_array_equal</span><span class="w"> </span><span class="p">(</span>
<span class="w">  </span><span class="n">GArrowArray</span><span class="o">*</span><span class="w"> </span><span class="n">array</span><span class="p">,</span>
<span class="w">  </span><span class="n">GArrowArray</span><span class="o">*</span><span class="w"> </span><span class="n">other_array</span>
<span class="p">)</span>
</pre></div>
</code></pre>
      </div>
    </div>

    <div class="description toggle-wrapper">
      <h4 style="display:flex;" id="description">
        Description
        <a class="anchor" href="#description"></a>
        
      </h4>

      <div class="docblock">
        No description available.
      </div>

      <div class="docblock">
        
        <p>Available since: 0.4.0</p>
        
        
        
        
      </div>

      
    </div>

    
    <div class="parameters toggle-wrapper">
      <h4 id="parameters">
        Parameters
        <a href="#parameters" class="anchor"></a>
      </h4>

      <div class="docblock">
        <dl class="arguments">
          
          <dt class="arg-name"><code>other_array</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="class.Array.html"><code>GArrowArray</code></a></p>
            <p><p>A <code>GArrowArray</code> to be&nbsp;compared.</p></p>
            <table>
            
            
            
            
            
            
            
            <tr><td title="transfer: none">The data is owned by the caller of the function.</td></tr>
            
            </table>
          </dd>
          

          
        </dl>
      </div>
    </div>
    

    
    <div class="return-value toggle-wrapper">
      <h4 id="return-value">
        Return value
        <a href="#return-value" class="anchor"></a>
      </h4>

      <div class="docblock">
        <div class="returns">
          <div class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gboolean</code></p>
            <p><p><code>TRUE</code> if both of them have the same data, <code>FALSE</code>
  otherwise.</p></p>
          </div>
          <div>
            <table>
            
            
            
            
            
            
            </table>
          </div>
        </div>
      </div>
    </div>
    

  </section>
</section>


    

    <section id="search" class="content hidden"></section>

    <footer>
    
    </footer>
  </div>
</body>
</html>