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

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

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Arrow.Array.dictionary_encode</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.dictionary_encode"/>
  <meta priority="og:description" content="Reference for Arrow.Array.dictionary_encode"/>
  <meta name="twitter:title" content="Arrow.Array.dictionary_encode"/>
  <meta name="twitter:description" content="Reference for Arrow.Array.dictionary_encode"/>


  
  <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 current" href="method.Array.dictionary_encode.html">dictionary_encode</a>
  
    <a class="method" href="method.Array.diff_unified.html">diff_unified</a>
  
    <a class="method" 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>dictionary_encode</h1>
  </header>

  <section>
    <div class="docblock">
      <p><span class="emblem available">since: 0.8.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/compute.h#L855">[src]</a>
        
      </h4>

      <div class="docblock c-decl">
        <pre><code><div class="highlight"><pre><span></span><span class="n">GArrowDictionaryArray</span><span class="o">*</span>
<span class="n">garrow_array_dictionary_encode</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="w">  </span><span class="n">GError</span><span class="o">**</span><span class="w"> </span><span class="n">error</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.8.0</p>
        
        
        
        
      </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;<a href="class.DictionaryArray.html"><code>GArrowDictionaryArray</code></a></p>
            <p><p>A newly created <code>GArrowDictionaryArray</code> for the <code>array</code> on success,
  <code>NULL</code> on&nbsp;error.</p></p>
          </div>
          <div>
            <table>
            
            
            
            <tr><td title="transfer: full">The caller of the method takes ownership of the data, and is responsible for freeing it.</td></tr>
            <tr><td>The return value can be <code>NULL</code>.</td></tr>
            
            </table>
          </div>
        </div>
      </div>
    </div>
    

  </section>
</section>


    

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

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