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

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

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


  
  <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.1</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.DayTimeIntervalArrayBuilder.html">DayTimeIntervalArrayBuilder</a>
  </div>
</div>
<div class="section">
  <h5>Methods</h5>
  <div class="links">
  
    <a class="method" href="method.DayTimeIntervalArrayBuilder.append_value.html">append_value</a>
  
    <a class="method current" href="method.DayTimeIntervalArrayBuilder.append_values.html">append_values</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.DayTimeIntervalArrayBuilder.html">DayTimeIntervalArrayBuilder</a><span class="sep"></span>append_values</h1>
  </header>

  <section>
    <div class="docblock">
      <p><span class="emblem available">since: 8.0.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/array-builder.h#L1404">[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_day_time_interval_array_builder_append_values</span><span class="w"> </span><span class="p">(</span>
<span class="w">  </span><span class="n">GArrowDayTimeIntervalArrayBuilder</span><span class="o">*</span><span class="w"> </span><span class="n">builder</span><span class="p">,</span>
<span class="w">  </span><span class="k">const</span><span class="w"> </span><span class="n">GArrowDayMillisecond</span><span class="o">**</span><span class="w"> </span><span class="n">values</span><span class="p">,</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">values_length</span><span class="p">,</span>
<span class="w">  </span><span class="k">const</span><span class="w"> </span><span class="n">gboolean</span><span class="o">*</span><span class="w"> </span><span class="n">is_valids</span><span class="p">,</span>
<span class="w">  </span><span class="n">gint64</span><span class="w"> </span><span class="n">is_valids_length</span><span class="p">,</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>
        
        <a class="srclink" title="go to source location" href="https://github.com/apache/arrow/blob/main/c_glib/arrow-glib/array-builder.cpp#L4671">[src]</a>
        
      </h4>

      <div class="docblock">
        <p>Append multiple values at once. It&#8217;s more efficient than multiple
<code>append</code> calls.</p>
      </div>

      <div class="docblock">
        
        <p>Available since: 8.0.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>values</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;An array of&nbsp;<code>GArrowDayMillisecond*</code></p>
            <p>The array of a <code>GArrowDayMillisecond</code>.</p>
            <table>
            
            
            
            
            
            
            <tr><td>The length of the array is specified in the <code>values_length</code> argument.</td></tr>
            <tr><td title="transfer: none">The data is owned by the caller of the method.</td></tr>
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>values_length</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The length of <code>values</code>.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>is_valids</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;An array of&nbsp;<code>gboolean</code></p>
            <p>The array of
  boolean that shows whether the Nth value is valid or not. If the
  Nth <code>is_valids</code> is <code>TRUE</code>, the Nth <code>values</code> is valid value. Otherwise
  the Nth value is null&nbsp;value.</p>
            <table>
            
            <tr><td>The argument can be <code>NULL</code>.</td></tr>
            
            
            
            
            <tr><td>The length of the array is specified in the <code>is_valids_length</code> argument.</td></tr>
            <tr><td title="transfer: none">The data is owned by the caller of the method.</td></tr>
            
            </table>
          </dd>
          
          <dt class="arg-name"><code>is_valids_length</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gint64</code></p>
            <p>The length of <code>is_valids</code>.</p>
            <table>
            
            
            
            
            
            
            
            
            
            </table>
          </dd>
          

          
          <dt class="arg-name"><code>error</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="javascript:void(0)" data-namespace="GLib" data-link="struct.Error.html" class="external"><code>GError **</code></a></p>
            <p>The return location for <a href="https://docs.gtk.org/glib/error-reporting.html#rules-for-use-of-gerror">a recoverable error</a>.</p>
            <table>
              <tr><td>The argument can be <code>NULL</code>.</td></tr>
              <tr><td>If the return location is not <code>NULL</code>, then you must initialize it to a <code>NULL</code> <code>GError*</code>.</td></tr>
              <tr><td>The argument will be left initialized to <code>NULL</code> by the method if there are no errors.</td></tr>
              <tr><td>In case of error, the argument will be set to a newly allocated <code>GError</code>; the caller will take ownership of the data, and be responsible for freeing it.</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><code>TRUE</code> on success, <code>FALSE</code> if there was an&nbsp;error.</p>
          </div>
          <div>
            <table>
            
            
            
            
            
            
            </table>
          </div>
        </div>
      </div>
    </div>
    

  </section>
</section>


    

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

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