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

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

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


  
  <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: 25.0</p>
        
        <p>Library Version: 25.0.0.dev</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.Table.html">Table</a>
  </div>
</div>
<div class="section">
  <h5>Methods</h5>
  <div class="links">
  
    <a class="method" href="method.Table.add_column.html">add_column</a>
  
    <a class="method" href="method.Table.combine_chunks.html">combine_chunks</a>
  
    <a class="method" href="method.Table.concatenate.html">concatenate</a>
  
    <a class="method" href="method.Table.equal.html">equal</a>
  
    <a class="method" href="method.Table.equal_metadata.html">equal_metadata</a>
  
    <a class="method" href="method.Table.filter.html">filter</a>
  
    <a class="method" href="method.Table.filter_chunked_array.html">filter_chunked_array</a>
  
    <a class="method" href="method.Table.get_column_data.html">get_column_data</a>
  
    <a class="method" href="method.Table.get_n_columns.html">get_n_columns</a>
  
    <a class="method" href="method.Table.get_n_rows.html">get_n_rows</a>
  
    <a class="method" href="method.Table.get_schema.html">get_schema</a>
  
    <a class="method" href="method.Table.remove_column.html">remove_column</a>
  
    <a class="method" href="method.Table.replace_column.html">replace_column</a>
  
    <a class="method current" href="method.Table.slice.html">slice</a>
  
    <a class="method" href="method.Table.sort_indices.html">sort_indices</a>
  
    <a class="method" href="method.Table.take.html">take</a>
  
    <a class="method" href="method.Table.take_chunked_array.html">take_chunked_array</a>
  
    <a class="method" href="method.Table.to_string.html">to_string</a>
  
    <a class="method" href="method.Table.validate.html">validate</a>
  
    <a class="method" href="method.Table.validate_full.html">validate_full</a>
  
    <a class="method" href="method.Table.write_as_feather.html">write_as_feather</a>
  
  </div>
</div>

      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2025.3</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.Table.html">Table</a><span class="sep"></span>slice</h1>
  </header>

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

      <div class="docblock c-decl">
        <pre><code><div class="highlight"><pre><span></span><span class="n">GArrowTable</span><span class="o">*</span>
<span class="n">garrow_table_slice</span><span class="w"> </span><span class="p">(</span>
<span class="w">  </span><span class="n">GArrowTable</span><span class="o">*</span><span class="w"> </span><span class="n">table</span><span class="p">,</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">offset</span><span class="p">,</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">length</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">
        <p>No description available.</p>
      </div>

      <div class="docblock">
        
        <p>Available since: 0.14.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>offset</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The offset of sub <code>GArrowTable</code>. If the offset is negative,
  the offset is counted from the&nbsp;last.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>length</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The length of sub <code>GArrowTable</code>.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </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;<a href="class.Table.html"><code>GArrowTable</code></a></p>
            <p>The sub <code>GArrowTable</code>. It covers
  only from <code>offset</code> to <code>offset + length</code> range. The sub
  <code>GArrowTable</code> shares values with the base
  <code>GArrowTable</code>.</p>
          </div>
          <div>
            <table>
            
            
            
            <tr><td title="transfer: full">The caller of the method takes ownership of the returned data, and is responsible for freeing it.</td></tr>
            
            
            </table>
          </div>
        </div>
      </div>
    </div>
    

  </section>
</section>


    

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

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