> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# updateRecords

<div className="kinetica-doxygen">
  <div id="aa82b29b715fe503ada9587cd7ac8e5f7" />

  <h2 className="memtitle"><span className="permalink"><a href="#aa82b29b715fe503ada9587cd7ac8e5f7">◆ </a></span>updateRecords() <span className="overload">\[1/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <div className="memtemplate"> template\<typename TRequest> </div>

      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> gpudb::GPUdb::updateRecords </td>
                <td>(</td>
                <td className="paramtype">const std::string &</td>
                <td className="paramname"><span className="paramname"><span className="em">tableName</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< std::string > &</td>
                <td className="paramname"><span className="paramname"><span className="em">expressions</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< std::map\< std::string, boost::optional\< std::string > > > &</td>
                <td className="paramname"><span className="paramname"><span className="em">newValuesMaps</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< TRequest > &</td>
                <td className="paramname"><span className="paramname"><span className="em">data</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::map\< std::string, std::string > &</td>
                <td className="paramname"><span className="paramname"><span className="em">options</span></span> ) const</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <span className="em arg">newValuesMaps</span>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <span className="em arg">options</span>.</p>
      <p>The <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl tparams">
        <div className="dt">Template Parameters</div>

        <div className="dd">
          <table className="tparams">
            <tr>
              <td className="paramname">TRequest</td>
              <td>The type of object being added.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">tableName</td>
              <td>Name of table to be updated, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be a currently existing table and not a view. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">expressions</td>
              <td>A list of the actual predicates, one for each update; format should follow the guidelines <a className="el" href="#ac5b65e73c01c331f1fcfb21b0e8d67ce">here</a>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">newValuesMaps</td>
              <td>List of new values for the matching records. Each element is a map with (key, value) pairs where the keys are the names of the columns whose values are to be updated; the values are the new values. The number of elements in the list should match the length of <span className="em arg">expressions</span>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">data</td>
              <td>An <span className="em">optional</span> list of new binary-avro encoded records to insert, one for each update. If one of <span className="em arg">expressions</span> does not yield a matching record to be updated, then the corresponding element from this list will be added to the table. The default value is an empty vector. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afcbdcbe97048f032546d0d11edf6c365">update\_records\_global\_expression</a>: An optional global expression to reduce the search space of the predicates listed in <span className="em arg">expressions</span>. The default value is ''. </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a3b69b89e59b979d4b18cb472ac74e3f7">update\_records\_bypass\_safety\_checks</a>: When set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, all predicates are available for primary key updates. Keep in mind that it is possible to destroy data in this case, since a single predicate may match multiple objects (potentially all of records of a table), and then updating all of those records to have the same primary key will, due to the primary key uniqueness constraints, effectively delete all but one of those updated records. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#abb40caf1f8c69661ca410ffc19ea9d0f">update\_records\_error\_handling</a>: Specifies how record errors are handled during the update's reinsert (including any alternate insert records supplied via <span className="em arg">data</span>). When set, this option is authoritative for the reinsert. Primary-key collision behavior is governed by <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> and <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6f0b4c7326c0de0eefe77ffc7a2bccb2">update\_records\_permissive</a>: Records with bad column values are kept when possible: the offending column is filled with its default value if one exists, otherwise with null if the column is nullable; if neither is possible the record is skipped and reported. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab629a2a88c015e4833dbec0731799e9a">update\_records\_skip</a>: Records with bad values are skipped and reported; the rest of the batch is applied. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a512234873c8cc9a421649fbac2fd02b1">update\_records\_abort</a>: Stops the update and rejects the remaining batch when any record is incorrect. </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a512234873c8cc9a421649fbac2fd02b1">update\_records\_abort</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_records\_update\_on\_existing\_pk</a>: Specifies the record collision policy for updating a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. There are two ways that a record collision can occur. The first is an "update collision", which happens when the update changes the value of the updated record's primary key, and that new primary key already exists as the primary key of another record in the table. The second is an "insert collision", which occurs when a given filter in <span className="em arg">expressions</span> finds no records to update, and the alternate insert record given in <span className="em arg">data</span> (or <span className="em arg">recordsToInsertStr</span>) contains a primary key matching that of an existing record in the table. If <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, "update collisions" will result in the existing record collided into being removed and the record updated with values specified in <span className="em arg">newValuesMaps</span> taking its place; "insert collisions" will result in the collided-into record being updated with the values in <span className="em arg">data</span> / <span className="em arg">recordsToInsertStr</span> (if given). If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the existing collided-into record will remain unchanged, while the update will be rejected and the error handled as determined by <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>: Overwrite the collided-into record when updating a record's primary key or inserting an alternate record causes a primary key collision between the record being updated/inserted and another existing record in the table </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>: Reject updates which cause primary key collisions between the record being updated/inserted and an existing record in the table </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a2de71c9660b5fe22e9b81a193883b0b2">update\_records\_pk\_conflict\_predicate\_higher</a>: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a57249f8219482449d3a883f1c1a9073d">update\_records\_pk\_conflict\_predicate\_lower</a>: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''. </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">update\_records\_ignore\_existing\_pk</a>: Specifies the record collision error-suppression policy for updating a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when primary key record collisions are rejected (<a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>). If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, any record update that is rejected for resulting in a primary key collision with an existing table record will be ignored with no error generated. If <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the rejection of any update for resulting in a primary key collision will cause an error to be reported. If the specified table does not have a primary key or if <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, then this option has no effect. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>: Ignore updates that result in primary key collisions with existing records. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>: Treat as errors any updates that result in primary key collisions with existing records. </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a8563f5f0f820e418db2f279f6e50ed46">update\_records\_update\_partition</a>: Force qualifying records to be deleted and reinserted so their partition membership will be reevaluated. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a867bf5271cecb6a47d7254dd0a2a80e6">update\_records\_enable\_inplace\_updates</a>: If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, qualifying records are modified in place. If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, they are updated by deleting the existing record and inserting a replacement (delete and insert), which prevents the change from being reflected in dependent materialized views until they are refreshed. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a8dee87951398b8f91f1076d69884a1ce">update\_records\_enable\_worker\_oop\_update</a>: For an out-of-place update (delete and insert), controls where the replacement records are reinserted. If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, the workers that own the data reinsert them directly, avoiding a round trip through the head node; a shard-key change reshards the replacements to their new owning workers. If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the replacement records are reinserted from the head node. Overrides the {"{"}feature.enable\_worker\_oop\_update{"}"}@ configuration default. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#add7d9885f8ee4c8626ca1382f1f2b693">update\_records\_truncate\_strings</a>: If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, any strings which are too long for their charN string fields will be truncated to fit. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#acb63acfa8b6cde789b126ee99561d5de">update\_records\_use\_expressions\_in\_new\_values\_maps</a>: When set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, all new values in <span className="em arg">newValuesMaps</span> are considered as expression values. When set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, all new values in <span className="em arg">newValuesMaps</span> are considered as constants. NOTE: When <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, string constants will need to be quoted to avoid being evaluated as expressions. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7e44ada8bf08b366e29972017837ba70">update\_records\_record\_id</a>: ID of a single record to be updated (returned in the call to <a className="el" href="#a1cbbfefa7a3d6b4570f1be6734a8d849">insertRecords</a> or <a className="el" href="#ad07e8ca5da326049590fc62762c630a1">getRecordsFromCollection</a>). </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the result of the operation. </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">53667</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">GPUdb.hpp</a>.</p>
    </div>
  </div>

  <div id="a6d725e31070f46da74ac0b24254711da" />

  <h2 className="memtitle"><span className="permalink"><a href="#a6d725e31070f46da74ac0b24254711da">◆ </a></span>updateRecords() <span className="overload">\[2/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <div className="memtemplate"> template\<typename TRequest> </div>

      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> & gpudb::GPUdb::updateRecords </td>
                <td>(</td>
                <td className="paramtype">const std::string &</td>
                <td className="paramname"><span className="paramname"><span className="em">tableName</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< std::string > &</td>
                <td className="paramname"><span className="paramname"><span className="em">expressions</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< std::map\< std::string, boost::optional\< std::string > > > &</td>
                <td className="paramname"><span className="paramname"><span className="em">newValuesMaps</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::vector\< TRequest > &</td>
                <td className="paramname"><span className="paramname"><span className="em">data</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">const std::map\< std::string, std::string > &</td>
                <td className="paramname"><span className="paramname"><span className="em">options</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> &</td>
                <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <span className="em arg">newValuesMaps</span>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <span className="em arg">options</span>.</p>
      <p>The <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl tparams">
        <div className="dt">Template Parameters</div>

        <div className="dd">
          <table className="tparams">
            <tr>
              <td className="paramname">TRequest</td>
              <td>The type of object being added.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">tableName</td>
              <td>Name of table to be updated, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Must be a currently existing table and not a view. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">expressions</td>
              <td>A list of the actual predicates, one for each update; format should follow the guidelines <a className="el" href="#ac5b65e73c01c331f1fcfb21b0e8d67ce">here</a>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">newValuesMaps</td>
              <td>List of new values for the matching records. Each element is a map with (key, value) pairs where the keys are the names of the columns whose values are to be updated; the values are the new values. The number of elements in the list should match the length of <span className="em arg">expressions</span>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">data</td>
              <td>An <span className="em">optional</span> list of new binary-avro encoded records to insert, one for each update. If one of <span className="em arg">expressions</span> does not yield a matching record to be updated, then the corresponding element from this list will be added to the table. The default value is an empty vector. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afcbdcbe97048f032546d0d11edf6c365">update\_records\_global\_expression</a>: An optional global expression to reduce the search space of the predicates listed in <span className="em arg">expressions</span>. The default value is ''. </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a3b69b89e59b979d4b18cb472ac74e3f7">update\_records\_bypass\_safety\_checks</a>: When set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, all predicates are available for primary key updates. Keep in mind that it is possible to destroy data in this case, since a single predicate may match multiple objects (potentially all of records of a table), and then updating all of those records to have the same primary key will, due to the primary key uniqueness constraints, effectively delete all but one of those updated records. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#abb40caf1f8c69661ca410ffc19ea9d0f">update\_records\_error\_handling</a>: Specifies how record errors are handled during the update's reinsert (including any alternate insert records supplied via <span className="em arg">data</span>). When set, this option is authoritative for the reinsert. Primary-key collision behavior is governed by <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> and <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6f0b4c7326c0de0eefe77ffc7a2bccb2">update\_records\_permissive</a>: Records with bad column values are kept when possible: the offending column is filled with its default value if one exists, otherwise with null if the column is nullable; if neither is possible the record is skipped and reported. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab629a2a88c015e4833dbec0731799e9a">update\_records\_skip</a>: Records with bad values are skipped and reported; the rest of the batch is applied. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a512234873c8cc9a421649fbac2fd02b1">update\_records\_abort</a>: Stops the update and rejects the remaining batch when any record is incorrect. </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a512234873c8cc9a421649fbac2fd02b1">update\_records\_abort</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_records\_update\_on\_existing\_pk</a>: Specifies the record collision policy for updating a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>. There are two ways that a record collision can occur. The first is an "update collision", which happens when the update changes the value of the updated record's primary key, and that new primary key already exists as the primary key of another record in the table. The second is an "insert collision", which occurs when a given filter in <span className="em arg">expressions</span> finds no records to update, and the alternate insert record given in <span className="em arg">data</span> (or <span className="em arg">recordsToInsertStr</span>) contains a primary key matching that of an existing record in the table. If <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, "update collisions" will result in the existing record collided into being removed and the record updated with values specified in <span className="em arg">newValuesMaps</span> taking its place; "insert collisions" will result in the collided-into record being updated with the values in <span className="em arg">data</span> / <span className="em arg">recordsToInsertStr</span> (if given). If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the existing collided-into record will remain unchanged, while the update will be rejected and the error handled as determined by <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a>. If the specified table does not have a primary key, then this option has no effect. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>: Overwrite the collided-into record when updating a record's primary key or inserting an alternate record causes a primary key collision between the record being updated/inserted and another existing record in the table </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>: Reject updates which cause primary key collisions between the record being updated/inserted and an existing record in the table </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a2de71c9660b5fe22e9b81a193883b0b2">update\_records\_pk\_conflict\_predicate\_higher</a>: The record with higher value for the column resolves the primary-key insert conflict. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a57249f8219482449d3a883f1c1a9073d">update\_records\_pk\_conflict\_predicate\_lower</a>: The record with lower value for the column resolves the primary-key insert conflict. The default value is ''. </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">update\_records\_ignore\_existing\_pk</a>: Specifies the record collision error-suppression policy for updating a table with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, only used when primary key record collisions are rejected (<a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>). If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, any record update that is rejected for resulting in a primary key collision with an existing table record will be ignored with no error generated. If <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the rejection of any update for resulting in a primary key collision will cause an error to be reported. If the specified table does not have a primary key or if <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> is <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, then this option has no effect. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>: Ignore updates that result in primary key collisions with existing records. </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>: Treat as errors any updates that result in primary key collisions with existing records. </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a8563f5f0f820e418db2f279f6e50ed46">update\_records\_update\_partition</a>: Force qualifying records to be deleted and reinserted so their partition membership will be reevaluated. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a867bf5271cecb6a47d7254dd0a2a80e6">update\_records\_enable\_inplace\_updates</a>: If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, qualifying records are modified in place. If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, they are updated by deleting the existing record and inserting a replacement (delete and insert), which prevents the change from being reflected in dependent materialized views until they are refreshed. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a8dee87951398b8f91f1076d69884a1ce">update\_records\_enable\_worker\_oop\_update</a>: For an out-of-place update (delete and insert), controls where the replacement records are reinserted. If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, the workers that own the data reinsert them directly, avoiding a round trip through the head node; a shard-key change reshards the replacements to their new owning workers. If set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, the replacement records are reinserted from the head node. Overrides the {"{"}feature.enable\_worker\_oop\_update{"}"}@ configuration default. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#add7d9885f8ee4c8626ca1382f1f2b693">update\_records\_truncate\_strings</a>: If set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, any strings which are too long for their charN string fields will be truncated to fit. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#acb63acfa8b6cde789b126ee99561d5de">update\_records\_use\_expressions\_in\_new\_values\_maps</a>: When set to <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, all new values in <span className="em arg">newValuesMaps</span> are considered as expression values. When set to <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">false</a>, all new values in <span className="em arg">newValuesMaps</span> are considered as constants. NOTE: When <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">true</a>, string constants will need to be quoted to avoid being evaluated as expressions. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#a285c1caa5b443115c8d8f7c8638740e6">update\_records\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#abb0d038b0eefbedd53545f6ec7e312b6">update\_records\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7e44ada8bf08b366e29972017837ba70">update\_records\_record\_id</a>: ID of a single record to be updated (returned in the call to <a className="el" href="#a1cbbfefa7a3d6b4570f1be6734a8d849">insertRecords</a> or <a className="el" href="#ad07e8ca5da326049590fc62762c630a1">getRecordsFromCollection</a>). </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">54015</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">GPUdb.hpp</a>.</p>
    </div>
  </div>

  <div id="a9db9f3f48674be912871065a523157bd" />

  <h2 className="memtitle"><span className="permalink"><a href="#a9db9f3f48674be912871065a523157bd">◆ </a></span>updateRecords() <span className="overload">\[3/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <div className="memtemplate"> template\<typename TRequest> </div>

      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> gpudb::GPUdb::updateRecords </td>
                <td>(</td>
                <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest">UpdateRecordsRequest</a>\< TRequest > &</td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span></td>
                <td>)</td>
                <td> const</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest#aa8c782f275a2cdb43c450e327b9ed9af">newValuesMaps</a>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest#a18fb3a3ccb139b176ff6368ad015cc49">options</a>.</p>
      <p>The <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl tparams">
        <div className="dt">Template Parameters</div>

        <div className="dd">
          <table className="tparams">
            <tr>
              <td className="paramname">TRequest</td>
              <td>The type of object being added.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest">Request</a> object containing the parameters for the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the result of the operation. </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">53270</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">GPUdb.hpp</a>.</p>
    </div>
  </div>

  <div id="a4807b97a4e4bf7fc1c59f216850e17e8" />

  <h2 className="memtitle"><span className="permalink"><a href="#a4807b97a4e4bf7fc1c59f216850e17e8">◆ </a></span>updateRecords() <span className="overload">\[4/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <div className="memtemplate"> template\<typename TRequest> </div>

      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> & gpudb::GPUdb::updateRecords </td>
                <td>(</td>
                <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest">UpdateRecordsRequest</a>\< TRequest > &</td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> &</td>
                <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest#aa8c782f275a2cdb43c450e327b9ed9af">newValuesMaps</a>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest#a18fb3a3ccb139b176ff6368ad015cc49">options</a>.</p>
      <p>The <a className="el" href="/content/api/cpp/namespacegpudb#a7605a7a3a0274ce44efaa471344dcef2">update\_on\_existing\_pk</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cpp/namespacegpudb#aba9511e40d021bad06b9dc8680f20ded">ignore\_existing\_pk</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl tparams">
        <div className="dt">Template Parameters</div>

        <div className="dd">
          <table className="tparams">
            <tr>
              <td className="paramname">TRequest</td>
              <td>The type of object being added.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsRequest">Request</a> object containing the parameters for the operation. </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1UpdateRecordsResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">53325</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cpp/blob/master/gpudb/GPUdb.hpp">GPUdb.hpp</a>.</p>
    </div>
  </div>
</div>
