<!--
SPDX-FileCopyrightText: 2021 GNOME Foundation

SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later
-->

<!--
SPDX-FileCopyrightText: 2021 GNOME Foundation

SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later
-->

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

  <meta charset="utf-8" />

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

  

  
  <meta property="og:title" content="ArrowDataset.Partitioning.create_default"/>
  <meta property="og:description" content="Reference for ArrowDataset.Partitioning.create_default"/>
  <meta name="twitter:title" content="ArrowDataset.Partitioning.create_default"/>
  <meta name="twitter:description" content="Reference for ArrowDataset.Partitioning.create_default"/>


  
  <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">ArrowDataset</a></h3>
        <p>API Version: 1.0</p>
        
        <p>Library Version: 16.0.0</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.Partitioning.html">Partitioning</a>
  </div>
</div>
<div class="section">
  <h5>Functions</h5>
  <div class="links">
  
    <a class="method current" href="type_func.Partitioning.create_default.html">create_default</a>
  
  </div>
</div>

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

    
<section id="main" class="content">
  <header>
    <h3>Function</h3>
    <h1><a href="index.html">ArrowDataset</a><span class="sep"></span><a href="class.Partitioning.html">Partitioning</a><span class="sep"></span>create_default</h1>
  </header>

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

      <div class="docblock">
        <pre><code><div class="highlight"><pre><span></span><span class="n">GADatasetPartitioning</span><span class="o">*</span><span class="w"></span>
<span class="n">gadataset_partitioning_create_default</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
<span class="w">  </span><span class="kt">void</span><span class="w"></span>
<span class="p">)</span><span class="w"></span>
</pre></div>
</code></pre>
      </div>
    </div>

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

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

      <div class="docblock">
        <table>
          
          
          <tr><td>Available since:</td><td>12.0.0</td></tr>
          
          
        </table>
      </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">
        <table class="returns">
          <tr class="arg-name">
            <td>Returns:</td>
            <td><a href="class.Partitioning.html"><code>GADatasetPartitioning</code></a></td>
          </tr>
          <tr class="arg-description">
            <td>&nbsp;</td>
            <td><p>The newly created <code>GADatasetPartitioning</code>
  that doesn&#8217;t&nbsp;partition.</p></td>
          </tr>
          
          
          
          <tr><td>&nbsp;</td><td title="transfer: full">The caller of the function takes ownership of the data, and is responsible for freeing it.</td></tr>
          
          
        </table>
      </div>
    </div>
    
  </section>
</section>


    

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

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